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

Merge branch 'main' of https://github.com/nicolas-chaulet/openapi-typescript-codegen into fix/client-beta-2

Lubos a0421224 28fd8dd1

+6139 -1635
+14 -9
.changeset/config.json
··· 1 1 { 2 - "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", 3 - "changelog": ["@svitejs/changesets-changelog-github-compact", { "repo": "hey-api/openapi-ts" }], 4 - "commit": false, 5 - "fixed": [], 6 - "linked": [], 7 - "access": "public", 8 - "baseBranch": "main", 9 - "updateInternalDependencies": "patch", 10 - "ignore": [] 2 + "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", 3 + "access": "public", 4 + "baseBranch": "main", 5 + "changelog": [ 6 + "@changesets/changelog-github", 7 + { 8 + "repo": "hey-api/openapi-ts" 9 + } 10 + ], 11 + "commit": false, 12 + "fixed": [], 13 + "ignore": [], 14 + "linked": [], 15 + "updateInternalDependencies": "patch" 11 16 }
-5
.changeset/rich-grapes-matter.md
··· 1 - --- 2 - '@hey-api/client-fetch': patch 3 - --- 4 - 5 - fix: export Client interface
+1 -1
README.md
··· 10 10 11 11 ## Features 12 12 13 - - works with CLI, Node.js, or npx 13 + - works with CLI, Node.js 18+, or npx 14 14 - supports OpenAPI 2.0, 3.0, and 3.1 specifications 15 15 - supports both JSON and YAML input files 16 16 - generates TypeScript interfaces, REST clients, and JSON Schemas
+13 -2
docs/.vitepress/config/en.ts
··· 10 10 items: [ 11 11 { link: '/openapi-ts/get-started', text: 'Get Started' }, 12 12 { link: '/openapi-ts/configuration', text: 'Configuration' }, 13 + ], 14 + text: '@hey-api/openapi-ts', 15 + }, 16 + { 17 + items: [ 18 + { link: '/openapi-ts/output', text: 'Output' }, 13 19 { link: '/openapi-ts/clients', text: 'Clients' }, 14 20 { link: '/openapi-ts/interceptors', text: 'Interceptors' }, 21 + { link: '/openapi-ts/migrating', text: 'Migrating' }, 22 + ], 23 + text: 'Guides and Concepts', 24 + }, 25 + { 26 + items: [ 15 27 { 16 28 link: '/openapi-ts/integrations', 17 29 text: 'Integrations <span class="soon">soon</span>', ··· 20 32 link: '/openapi-ts/tanstack-query', 21 33 text: 'TanStack Query <span class="soon">soon</span>', 22 34 }, 23 - { link: '/openapi-ts/migrating', text: 'Migrating' }, 24 35 ], 25 - text: 'openapi-ts', 36 + text: 'Plugins', 26 37 }, 27 38 { 28 39 items: [
+2 -2
docs/.vitepress/config/shared.ts
··· 1 - import { defineConfig } from 'vitepress'; 1 + import { defineConfig, type HeadConfig } from 'vitepress'; 2 2 3 3 export default defineConfig({ 4 4 head: [ ··· 25 25 'script', 26 26 { defer: '', src: '/_vercel/insights/script.js' }, 27 27 ], 28 - ].filter(Boolean), 28 + ].filter(Boolean) as HeadConfig[], 29 29 lastUpdated: false, 30 30 sitemap: { 31 31 hostname: 'https://heyapi.vercel.app',
+6
docs/CHANGELOG.md
··· 1 1 # @hey-api/docs 2 2 3 + ## 0.5.7 4 + 5 + ### Patch Changes 6 + 7 + - [#632](https://github.com/hey-api/openapi-ts/pull/632) [`9c16bc7`](https://github.com/hey-api/openapi-ts/commit/9c16bc71cde48c0cb700b7e720a9e2ad56ec5f02) Thanks [@mrlubos](https://github.com/mrlubos)! - docs: add output page 8 + 3 9 ## 0.5.6 4 10 5 11 ### Patch Changes
+2 -2
docs/about.md
··· 3 3 description: Hello from Hey API. 4 4 --- 5 5 6 - # About Hey API 6 + # About 7 7 8 - Hey API's objective is to provide a set of TypeScript tools to manage API interactions. Whether you're building a front-end application, API-to-API service, or micro-frontends, we want Hey API to be your go-to resource. 8 + Hey API's objective is to provide a suite of TypeScript tools to manage API interactions. Whether you're building a front-end application, API-to-API service, or micro-frontends, we want Hey API to be your go-to resource. 9 9 10 10 Typically, developers of such applications want to: 11 11
+2
docs/embed.ts
··· 1 1 import sdk from '@stackblitz/sdk'; 2 2 3 + // https://api.npmjs.org/versions/@hey-api%2Fopenapi-ts/last-week 4 + 3 5 export const embedProject = (projectId: string) => async (event: Event) => { 4 6 const container = document.createElement('div'); 5 7
+3
docs/examples.md
··· 1 + ## Examples 2 + 3 + You can view live examples on [StackBlitz](https://stackblitz.com/orgs/github/hey-api/collections/openapi-ts-examples).
+5 -7
docs/index.md
··· 24 24 - icon: <svg fill="none" height="24" viewBox="0 0 128 128" width="24" xmlns="http://www.w3.org/2000/svg"><rect fill="#3178c6" height="128" rx="6" width="128"/><path clip-rule="evenodd" d="m74.2622 99.468v14.026c2.2724 1.168 4.9598 2.045 8.0625 2.629 3.1027.585 6.3728.877 9.8105.877 3.3503 0 6.533-.321 9.5478-.964 3.016-.643 5.659-1.702 7.932-3.178 2.272-1.476 4.071-3.404 5.397-5.786 1.325-2.381 1.988-5.325 1.988-8.8313 0-2.5421-.379-4.7701-1.136-6.6841-.758-1.9139-1.85-3.6159-3.278-5.1062-1.427-1.4902-3.139-2.827-5.134-4.0104-1.996-1.1834-4.246-2.3011-6.752-3.353-1.8352-.7597-3.4812-1.4975-4.9378-2.2134-1.4567-.7159-2.6948-1.4464-3.7144-2.1915-1.0197-.7452-1.8063-1.5341-2.3598-2.3669-.5535-.8327-.8303-1.7751-.8303-2.827 0-.9643.2476-1.8336.7429-2.6079s1.1945-1.4391 2.0976-1.9943c.9031-.5551 2.0101-.9861 3.3211-1.2929 1.311-.3069 2.7676-.4603 4.3699-.4603 1.1658 0 2.3958.0877 3.6928.263 1.296.1753 2.6.4456 3.911.8109 1.311.3652 2.585.8254 3.824 1.3806 1.238.5552 2.381 1.198 3.43 1.9285v-13.1051c-2.127-.8182-4.45-1.4245-6.97-1.819s-5.411-.5917-8.6744-.5917c-3.3211 0-6.4674.3579-9.439 1.0738-2.9715.7159-5.5862 1.8336-7.844 3.353-2.2578 1.5195-4.0422 3.4553-5.3531 5.8075-1.311 2.3522-1.9665 5.1646-1.9665 8.4373 0 4.1785 1.2017 7.7433 3.6052 10.6945 2.4035 2.9513 6.0523 5.4496 10.9466 7.495 1.9228.7889 3.7145 1.5633 5.375 2.323 1.6606.7597 3.0954 1.5486 4.3044 2.3668s2.1628 1.7094 2.8618 2.6736c.7.9643 1.049 2.06 1.049 3.2873 0 .9062-.218 1.7462-.655 2.5202s-1.1 1.446-1.9885 2.016c-.8886.57-1.9956 1.016-3.3212 1.337-1.3255.321-2.8768.482-4.6539.482-3.0299 0-6.0305-.533-9.0021-1.6-2.9715-1.066-5.7245-2.666-8.2591-4.799zm-23.5596-34.9136h18.2974v-11.5544h-51v11.5544h18.2079v51.4456h14.4947z" fill="#fff" fill-rule="evenodd"/></svg> 25 25 title: TypeScript Interfaces 26 26 details: Ensure code correctness without runtime overhead. No manual maintenance required. 27 - link: https://stackblitz.com/edit/hey-api-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fservices.gen.ts,src%2Fclient%2Ftypes.gen.ts 28 - linkText: View demo 27 + link: /openapi-ts/output 28 + linkText: Learn more 29 29 - icon: 🦴 30 30 title: Data Fetching 31 - details: Typesafe data with our REST clients. Fetch, axios, angular, node, and xhr are available. 32 - link: /openapi-ts/configuration#clients 33 - # TODO: update link after releasing clients 34 - # link: /openapi-ts/clients 31 + details: Typesafe data with our REST clients. Fetch, Axios, Angular, Node, and XHR are available. 32 + link: /openapi-ts/clients 35 33 linkText: See all clients 36 34 - icon: <svg class="icon-json-schema xmlns="http://www.w3.org/2000/svg" viewBox="0 0 70.423 70.423" height="24" width="24"><g fill="#fff"><path d="M122.994 114.19c-4.329-.94-7.58-3.479-8.712-6.801-.79-2.316-.677-6.072.333-11.15.485-2.439.882-5.349.882-6.467-.001-3.718-1.712-5.736-5.1-6.017l-1.955-.162v-4.785l1.852-.251c2.702-.366 3.744-1.029 4.576-2.91.611-1.38.689-2.068.505-4.472-.119-1.562-.535-4.349-.924-6.192-.99-4.683-.949-8.485.117-10.773 1.568-3.369 5.437-5.855 9.932-6.383l1.933-.227v5.036h-1.3c-1.771 0-4.25 1.262-4.883 2.488-.608 1.176-.654 2.864-.158 5.802.783 4.644 1.047 9.099.676 11.422-.425 2.658-1.975 5.796-3.68 7.448l-1.18 1.144 1.615 1.983c1.99 2.443 2.765 4.148 3.243 7.142.378 2.369.085 7.283-.67 11.214-1.054 5.485.162 7.652 4.661 8.306l1.676.244v2.448c0 2.792.171 2.697-3.439 1.913z" style="stroke-width:.35277775" transform="translate(-104.228 -45.508)"/><path d="M152.23 112.25v-2.43l2.05-.424c2.263-.467 4.054-1.863 4.459-3.475.127-.507-.113-3.164-.534-5.903-1.372-8.93-.611-13.537 2.855-17.297l1.482-1.608-1.11-1.266c-3.98-4.53-4.67-8.552-3.154-18.37.763-4.945.764-4.993.087-6.173-.797-1.388-3.284-2.776-4.975-2.776h-1.16v-2.47c0-2.81-.058-2.773 3.246-2.072 3.965.841 6.805 2.853 8.278 5.865.846 1.728.973 2.4.95 5.01-.016 1.66-.358 4.683-.762 6.72-1.499 7.564-1.365 9.576.765 11.533.99.908 1.64 1.173 3.37 1.368l2.145.243v4.848h-1.676c-2.151.001-3.932.91-4.838 2.47-.952 1.637-.893 5.206.173 10.406.907 4.422 1.053 8.459.389 10.729-.701 2.394-3.82 5.296-6.748 6.277-1.261.423-2.968.871-3.792.996l-1.5.228z" style="stroke-width:.35277778" transform="translate(-104.228 -45.508)"/><path d="M131.742 108.266c-1.021-1.299-.873-3.537.381-5.732.928-1.624 4.809-6.948 7.61-10.44l1.132-1.41-1.802-5.226c-2.022-5.86-2.01-5.974.656-6.372l1.468-.219 1.64 3.35c.903 1.843 1.77 3.351 1.928 3.351.158 0 1.775-1.755 3.594-3.9 3.16-3.727 3.357-3.892 4.426-3.694.645.12 1.218.047 1.354-.173.318-.515 1.23.247 1.23 1.027 0 .32-.453 1.134-1.009 1.81-2.267 2.755-7.104 9.27-7.104 9.57 0 .177.975 2.454 2.167 5.059l2.166 4.736-.658.985c-.362.541-.662 1.126-.667 1.299-.005.173-.278.483-.606.69-.832.525-1.447-.115-3.99-4.153-1.164-1.848-2.231-3.365-2.372-3.37-.313-.01-3.79 5.133-6.48 9.581-2.37 3.924-1.938 3.42-3.265 3.801-.956.274-1.194.199-1.799-.57zM131.986 83.677c-2.152-3.847-6.019-9.428-7.579-10.938-.792-.767-1.44-1.575-1.44-1.796 0-.601 1.616-1.22 3.19-1.22 1.698 0 3.496 1.479 5.1 4.193.582.985 1.156 1.794 1.276 1.798.12.004.809-1.651 1.53-3.678 1.547-4.34 5.624-12.778 7.225-14.951 1.373-1.863 3.43-2.865 5.903-2.876 3.234-.013 3.243.13.205 3.297-4.636 4.832-6.764 8.81-11.252 21.037-1.246 3.396-2.39 6.48-2.542 6.852-.23.566-.498.281-1.616-1.718z" style="stroke-width:.35277775" transform="translate(-104.228 -45.508)"/></g></svg> 37 35 title: JSON Schemas 38 36 details: Export OpenAPI schemas as JavaScript objects. JSON Schema 2020-12 supported. 39 - link: /openapi-ts/configuration#json-schemas 37 + link: /openapi-ts/output#json-schemas 40 38 linkText: Learn more 41 39 - icon: <svg class="icon-github" width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 98 98"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#24292f"/></svg> 42 40 title: GitHub Integration <span class="soon">Soon</span>
+36 -7
docs/openapi-ts/clients.md
··· 27 27 Fetch API client is currently in beta. The interface might change before it becomes stable. We encourage you to leave feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues). 28 28 ::: 29 29 30 - Start by adding `@hey-api/client-fetch` into your project's dependencies. 30 + Start by adding `@hey-api/client-fetch` to your dependencies. 31 31 32 32 ::: code-group 33 33 ··· 49 49 50 50 ::: 51 51 52 - Ensure you have already [installed](/openapi-ts/get-started) and configured `@hey-api/openapi-ts`. Update your configuration to use the client package. 52 + Ensure you have already [configured](/openapi-ts/get-started) `@hey-api/openapi-ts`. Update your configuration to use the Fetch API client package. 53 53 54 54 ```js{2} 55 55 export default { ··· 59 59 } 60 60 ``` 61 61 62 - You can now run `openapi-ts` as usual to generate the new services. 62 + You can now run `openapi-ts` to use the new Fetch API client. 🎉 63 63 64 64 ### Configuration 65 65 66 - You will most likely want to configure the global client instance used by services. You can do that with the `createClient()` method. Call it at the beginning of your program. 66 + You will most likely want to configure the global client instance used by services. You can do that with the `createClient()` method. Call it at the beginning of your application. 67 67 68 68 ```js 69 69 import { createClient } from '@hey-api/client-fetch'; ··· 96 96 97 97 ## Legacy Clients 98 98 99 - Before standalone client packages, clients were generated using `@hey-api/openapi-ts`. If you want to generate a legacy client that isn't published as a standalone package, you can use the `client` config option. 99 + Before standalone client packages, clients were generated using `@hey-api/openapi-ts`. In fact, `@hey-api/openapi-ts` still generates a legacy Fetch API client by default. You can generate other legacy clients with the `client` config option. 100 100 101 101 ::: code-group 102 102 103 + ```js{2} [fetch] 104 + export default { 105 + client: 'fetch', 106 + input: 'path/to/openapi.json', 107 + output: 'src/client', 108 + } 109 + ``` 110 + 111 + ```js{2} [axios] 112 + export default { 113 + client: 'axios', 114 + input: 'path/to/openapi.json', 115 + output: 'src/client', 116 + } 117 + ``` 118 + 103 119 ```js{2} [angular] 104 120 export default { 105 121 client: 'angular', ··· 124 140 } 125 141 ``` 126 142 143 + ::: 144 + 127 145 The following legacy clients are available: 128 146 129 147 - [angular](https://angular.io/) (using [RxJS](https://rxjs.dev/)) 148 + - [axios](https://axios-http.com/) 149 + - [fetch](https://developer.mozilla.org/docs/Web/API/Fetch_API) 130 150 - [node](https://nodejs.org/) (using [node-fetch](https://www.npmjs.com/package/node-fetch)) 131 151 - [xhr](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest) 132 152 153 + Please be aware that legacy clients are missing some features: 154 + 155 + - no typesafe errors 🚫 156 + - no access to the original request and response 🚫 157 + - hard to configure individual requests 👎 158 + - inconsistent interceptors and response APIs 👎 159 + 133 160 If you'd like a standalone package for your client, let us know by [opening an issue](https://github.com/hey-api/openapi-ts/issues). 134 161 135 - ## Examples 162 + ::: tip 163 + You might not need a `node` client. Fetch API is [experimental](https://nodejs.org/docs/latest-v18.x/api/globals.html#fetch) in Node.js v18 and [stable](https://nodejs.org/docs/latest-v21.x/api/globals.html#fetch) in Node.js v21. We recommend upgrading to the latest Node.js version. 164 + ::: 136 165 137 - You can view live examples on [StackBlitz](https://stackblitz.com/orgs/github/hey-api/collections/openapi-ts-examples). 166 + <!--@include: ../examples.md-->
+71 -135
docs/openapi-ts/configuration.md
··· 40 40 41 41 ## Clients 42 42 43 - By default, `@hey-api/openapi-ts` will generate a Fetch API client. If you want a different client, you can specify it using the `client` option. 43 + Clients are responsible for sending the actual HTTP requests. By default, `@hey-api/openapi-ts` will generate a Fetch API client. We are moving away from generated clients toward standalone packages. This approach has many benefits over the current default. You can learn more on the [Clients](/openapi-ts/clients) page. 44 + 45 + <!-- 46 + TODO: uncomment after c12 supports multiple configs 47 + see https://github.com/unjs/c12/issues/92 48 + --> 49 + <!-- ### Multiple Clients 50 + 51 + If you want to generate multiple clients with a single `openapi-ts` command, you can provide an array of configuration objects. 52 + 53 + ```js 54 + import { defineConfig } from '@hey-api/openapi-ts'; 55 + 56 + export default defineConfig([ 57 + { 58 + client: 'fetch', 59 + input: 'path/to/openapi_one.json', 60 + output: 'src/client_one', 61 + }, 62 + { 63 + client: 'axios', 64 + input: 'path/to/openapi_two.json', 65 + output: 'src/client_two', 66 + }, 67 + ]) 68 + ``` --> 69 + 70 + ## Services 71 + 72 + Services are abstractions on top of clients and serve the same purpose. By default, `@hey-api/openapi-ts` will generate a flat service layer. Your choice to use services comes down to personal preferences and bundle size considerations. You can learn more on the [Output](/openapi-ts/output#api-services) page. 73 + 74 + ## Enums 75 + 76 + By default, `@hey-api/openapi-ts` will only emit enums as types. You may want to generate runtime artifacts. A good use case is iterating through possible field values without manually typing arrays. To emit runtime enums, set `types.enums` to a valid option. 44 77 45 78 ::: code-group 46 79 47 - ```js{2} [fetch] 80 + ```js{5} [disabled] 48 81 export default { 49 - client: 'fetch', 50 82 input: 'path/to/openapi.json', 51 83 output: 'src/client', 84 + types: { 85 + enums: false, 86 + }, 52 87 } 53 88 ``` 54 89 55 - ```js{2} [fetch (beta)] 90 + ```js{5} [javascript] 56 91 export default { 57 - client: '@hey-api/client-fetch', 58 92 input: 'path/to/openapi.json', 59 93 output: 'src/client', 94 + types: { 95 + enums: 'javascript', 96 + }, 60 97 } 61 98 ``` 62 99 63 - ```js{2} [axios] 100 + ```js{5} [typescript] 64 101 export default { 65 - client: 'axios', 66 102 input: 'path/to/openapi.json', 67 103 output: 'src/client', 104 + types: { 105 + enums: 'typescript', 106 + }, 68 107 } 69 108 ``` 70 109 71 - ```js{2} [angular] 110 + ::: 111 + 112 + We recommend exporting enums as plain JavaScript objects. [TypeScript enums](https://www.typescriptlang.org/docs/handbook/enums.html) are not a type-level extension of JavaScript and pose [typing challenges](https://dev.to/ivanzm123/dont-use-enums-in-typescript-they-are-very-dangerous-57bh). 113 + 114 + ## JSON Schemas 115 + 116 + By default, `@hey-api/openapi-ts` generates schemas from your OpenAPI specification. A great use case for schemas is client-side form input validation. If you're using OpenAPI 3.1, your [schemas](/openapi-ts/output#json-schemas) are JSON Schema compliant and can be used with other tools supporting JSON Schema. However, if you only want to validate form input, you probably don't want to include string descriptions inside your bundle. You can choose your preferred type using `schemas.type` option. 117 + 118 + ::: code-group 119 + 120 + ```js{5} [json] 72 121 export default { 73 - client: 'angular', 74 122 input: 'path/to/openapi.json', 75 123 output: 'src/client', 124 + schemas: { 125 + type: 'json' 126 + }, 76 127 } 77 128 ``` 78 129 79 - ```js{2} [node] 130 + ```js{5} [form] 80 131 export default { 81 - client: 'node', 82 132 input: 'path/to/openapi.json', 83 133 output: 'src/client', 134 + schemas: { 135 + type: 'form' 136 + }, 84 137 } 85 138 ``` 86 139 87 - ```js{2} [xhr] 140 + ```js{4} [disabled] 88 141 export default { 89 - client: 'xhr', 90 142 input: 'path/to/openapi.json', 91 143 output: 'src/client', 144 + schemas: false, 92 145 } 93 146 ``` 94 147 95 148 ::: 96 149 97 - We support these clients: 98 - 99 - - [angular](https://angular.io/) (using [RxJS](https://rxjs.dev/)) 100 - - [axios](https://axios-http.com/) 101 - - [fetch](https://developer.mozilla.org/docs/Web/API/Fetch_API) 102 - 103 - We also support the legacy Node.js and XHR clients: 104 - 105 - - [node](https://nodejs.org/) (using [node-fetch](https://www.npmjs.com/package/node-fetch)) 106 - - [xhr](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest) 107 - 108 - Optionally, you can use client packages to avoid generating a new client on every run: 109 - 110 - - [fetch (beta)](https://developer.mozilla.org/docs/Web/API/Fetch_API) 111 - 112 - ::: tip 113 - You might not need a `node` client. Fetch API is [experimental](https://nodejs.org/docs/latest-v18.x/api/globals.html#fetch) in Node.js v18 and [stable](https://nodejs.org/docs/latest-v21.x/api/globals.html#fetch) in Node.js v21. We recommend upgrading to the latest Node.js version. 114 - ::: 115 - 116 - <!-- 117 - TODO: uncomment after c12 supports multiple configs 118 - see https://github.com/unjs/c12/issues/92 119 - --> 120 - <!-- ### Multiple Clients 121 - 122 - If you want to generate multiple clients with a single `openapi-ts` command, you can provide an array of configuration objects. 123 - 124 - ```js 125 - import { defineConfig } from '@hey-api/openapi-ts'; 126 - 127 - export default defineConfig([ 128 - { 129 - client: 'fetch', 130 - input: 'path/to/openapi_one.json', 131 - output: 'src/client_one', 132 - }, 133 - { 134 - client: 'axios', 135 - input: 'path/to/openapi_two.json', 136 - output: 'src/client_two', 137 - }, 138 - ]) 139 - ``` --> 140 - 141 150 ## Formatting 142 151 143 - By default, `@hey-api/openapi-ts` will not automatically format your client. To enable this feature, set `output.format` to a valid formatter. 152 + By default, `@hey-api/openapi-ts` will not automatically format your output. To enable this feature, set `output.format` to a valid formatter. 144 153 145 154 ::: code-group 146 155 ··· 176 185 177 186 ::: 178 187 179 - You can also prevent your client from being processed by formatters by adding your output path to the tool's ignore file (e.g. `.prettierignore`). 188 + You can also prevent your output from being formatted by adding your output path to the formatter's ignore file. 180 189 181 190 ## Linting 182 191 183 - For performance reasons, `@hey-api/openapi-ts` does not automatically lint your client. To enable this feature, set `output.lint` to a valid linter. 192 + By default, `@hey-api/openapi-ts` will not automatically lint your output. To enable this feature, set `output.lint` to a valid linter. 184 193 185 194 ::: code-group 186 195 ··· 216 225 217 226 ::: 218 227 219 - You can also prevent your client from being processed by linters by adding your output path to the tool's ignore file (e.g. `.eslintignore`). 220 - 221 - ## Enums 222 - 223 - If you need to iterate through possible field values without manually typing arrays, you can export enums with 224 - 225 - ```js{5} 226 - export default { 227 - input: 'path/to/openapi.json', 228 - output: 'src/client', 229 - types: { 230 - enums: 'javascript', 231 - }, 232 - } 233 - ``` 234 - 235 - This will export enums as plain JavaScript objects. For example, `Foo` would become 236 - 237 - ```js 238 - export const Foo = { 239 - FOO: 'foo', 240 - BAR: 'bar', 241 - } as const; 242 - ``` 243 - 244 - We discourage generating [TypeScript enums](https://www.typescriptlang.org/docs/handbook/enums.html) because they are not standard JavaScript and pose [typing challenges](https://dev.to/ivanzm123/dont-use-enums-in-typescript-they-are-very-dangerous-57bh). If you really need TypeScript enums, you can export them with 245 - 246 - ```js{5} 247 - export default { 248 - input: 'path/to/openapi.json', 249 - output: 'src/client', 250 - types: { 251 - enums: 'typescript', 252 - }, 253 - } 254 - ``` 255 - 256 - ## JSON Schemas 257 - 258 - By default, `@hey-api/openapi-ts` exports schemas from your OpenAPI specification as plain JavaScript objects. A great use case for schemas is client-side form input validation. 259 - 260 - ```ts 261 - import { $Schema } from 'client/schemas'; 262 - 263 - const maxInputLength = $Schema.properties.text.maxLength; 264 - 265 - if (userInput.length > maxInputLength) { 266 - throw new Error(`String length cannot exceed ${maxInputLength} characters!`); 267 - } 268 - ``` 269 - 270 - If you're using OpenAPI v3.1, your schemas are JSON Schema compliant and can be used with other tools supporting JSON Schema. However, if you only want to validate form input, you don't want to include string descriptions inside your bundle. Instead, use `form` type. 271 - 272 - ```js{5} 273 - export default { 274 - input: 'path/to/openapi.json', 275 - output: 'src/client', 276 - schemas: { 277 - type: 'form' 278 - }, 279 - } 280 - ``` 281 - 282 - If you don't need schemas at all, you can disable them with 283 - 284 - ```js{4} 285 - export default { 286 - input: 'path/to/openapi.json', 287 - output: 'src/client', 288 - schemas: false, 289 - } 290 - ``` 228 + You can also prevent your output from being linted by adding your output path to the linter's ignore file. 291 229 292 230 ## Config API 293 231 294 232 You 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.ts) interface. 295 233 296 - ## Examples 297 - 298 - You can view live examples on [StackBlitz](https://stackblitz.com/orgs/github/hey-api/collections/openapi-ts-examples). 234 + <!--@include: ../examples.md-->
+18 -10
docs/openapi-ts/get-started.md
··· 17 17 18 18 ## Features 19 19 20 - - works with CLI, Node.js, or npx 20 + - works with CLI, Node.js 18+, or npx 21 21 - supports OpenAPI 2.0, 3.0, and 3.1 specifications 22 22 - supports both JSON and YAML input files 23 23 - generates TypeScript interfaces, REST clients, and JSON Schemas ··· 31 31 npx @hey-api/openapi-ts -i path/to/openapi.json -o src/client 32 32 ``` 33 33 34 - Congratulations on creating your first client! 🎉 34 + Congratulations on creating your first client! 🎉 You can learn more about the generated files on the [Output](/openapi-ts/output) page. 35 + 36 + While you can already make API requests with the client you've just created, you will probably want to configure it or pin a specific version. Let's start by adding `@hey-api/openapi-ts` to your dependencies. 35 37 36 38 ## Installation 37 39 ··· 55 57 56 58 ::: 57 59 58 - If you want to use `@hey-api/openapi-ts` with CLI, add a script to your `package.json` file 60 + 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. 61 + 62 + ### CLI 63 + 64 + Most people run `@hey-api/openapi-ts` via CLI. To do that, add a script to your `package.json` file which will make `openapi-ts` executable through script. 59 65 60 66 ```json 61 67 "scripts": { 62 - "openapi-ts": "openapi-ts" 68 + "openapi-ts": "openapi-ts -i path/to/openapi.json -o src/client" 63 69 } 64 70 ``` 65 71 66 - You can also generate your client programmatically by importing `@hey-api/openapi-ts` in a TypeScript file. 72 + The above script can be executed by running `npm run openapi-ts` or equivalent command if you're not using npm. 73 + 74 + ### Node.js 75 + 76 + You can also generate clients programmatically by importing `@hey-api/openapi-ts` in a TypeScript file. 67 77 68 78 ```ts 69 79 import { createClient } from '@hey-api/openapi-ts'; ··· 74 84 }); 75 85 ``` 76 86 77 - ::: warning 78 - You need to be running Node.js v18 or newer 79 - ::: 87 + ### Configuration 80 88 81 - ## Examples 89 + It is 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. 82 90 83 - You can view live examples on [StackBlitz](https://stackblitz.com/orgs/github/hey-api/collections/openapi-ts-examples). 91 + <!--@include: ../examples.md-->
+1 -3
docs/openapi-ts/interceptors.md
··· 109 109 Angular client does not currently support request interceptors. 110 110 ::: 111 111 112 - ## Examples 113 - 114 - You can view live examples on [StackBlitz](https://stackblitz.com/orgs/github/hey-api/collections/openapi-ts-examples). 112 + <!--@include: ../examples.md-->
+5 -5
docs/openapi-ts/migrating.md
··· 34 34 35 35 You don't have to update imports from `core` directory. These will be addressed in later releases. 36 36 37 - ### Deprecated `useOptions` 37 + ### Deprecated `base` 38 38 39 - This config option is deprecated and will be removed. 39 + This config option is deprecated and will be removed in favor of [clients](./clients). 40 40 41 - ### Deprecated `base` 41 + ### Deprecated `name` 42 42 43 43 This config option is deprecated and will be removed in favor of [clients](./clients). 44 44 ··· 46 46 47 47 This config option is deprecated and will be removed in favor of [clients](./clients). 48 48 49 - ### Deprecated `name` 49 + ### Deprecated `useOptions` 50 50 51 - This config option is deprecated and will be removed in favor of [clients](./clients). 51 + This config option is deprecated and will be removed. 52 52 53 53 ## v0.46.0 54 54
+262
docs/openapi-ts/output.md
··· 1 + --- 2 + title: Output 3 + description: Learn about files generated with @hey-api/openapi-ts. 4 + --- 5 + 6 + # Output 7 + 8 + Learn about files generated with `@hey-api/openapi-ts`. 9 + 10 + ::: tip 11 + 12 + Your actual output depends on your OpenAPI specification and Hey API configuration. It may contain a different number of files and their contents might differ. 13 + 14 + ::: 15 + 16 + ### Example 17 + 18 + If you use the default configuration, your [project](https://stackblitz.com/edit/hey-api-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fservices.gen.ts,src%2Fclient%2Ftypes.gen.ts) might look something like this. 19 + 20 + ```md 21 + my-app/ 22 + ├── node_modules/ 23 + ├── src/ 24 + │ ├── client/ 25 + │ │ ├── core/ 26 + │ │ ├── index.ts 27 + │ │ ├── schemas.gen.ts 28 + │ │ ├── services.gen.ts 29 + │ │ └── types.gen.ts 30 + │ └── index.ts 31 + └── package.json 32 + ``` 33 + 34 + Let's go through each file in the `src/client` folder and explain what it looks like, what it does, and how to use it. 35 + 36 + ## TypeScript interfaces 37 + 38 + TypeScript interfaces are located in the `types.gen.ts` file. This is the only file that does not impact your bundle size and runtime performance. It will get discarded during build time, unless you configured to emit runtime [enums](/openapi-ts/configuration#enums). 39 + 40 + This file contains three different categories of interfaces created from your OpenAPI specification: 41 + 42 + - components, parameters, and enums 43 + - operation request, response, and error data 44 + - operation tree interface 45 + 46 + Depending on your OpenAPI specification and configuration, some of these categories might be missing or differ in your output (and that's okay!). 47 + 48 + ::: code-group 49 + 50 + ```ts [types.gen.ts] 51 + export type Pet = { 52 + id?: number; 53 + name: string; 54 + }; 55 + 56 + export type AddPetData = { 57 + body: Pet; 58 + }; 59 + 60 + export type AddPetResponse = Pet; 61 + 62 + export type $OpenApiTs = { 63 + '/foo': { 64 + post: { 65 + req: AddPetData; 66 + res: { 67 + 200: Pet; 68 + }; 69 + }; 70 + }; 71 + }; 72 + ``` 73 + 74 + ::: 75 + 76 + As you can see, everything is exported from `types.gen.ts`. You can import individual exports in your application and use them as necessary. 77 + 78 + ## API Services 79 + 80 + API services are located in the `services.gen.ts` file. This file contains abstractions for sending API requests which can be called instead of using the client directly. Whether you should use API services comes down to your personal preference and bundle size considerations. You have three options to choose from. 81 + 82 + ### Flat Services 83 + 84 + This is the default setting. It supports tree-shaking and can lead to reduced bundle size over duplicated client calls. The method names are generated from operation IDs. 85 + 86 + ### Class Services 87 + 88 + The previous default setting. It does not support tree-shaking which will lead to increased bundle sizes, but some prefer this option for syntax reasons. The class names are generated from operation tags and method names are generated from operation IDs. 89 + 90 + ### No Services 91 + 92 + If you prefer to use clients directly or do not need the service layer, this is the option for you. Type support for clients is currently limited due to popularity of other options. If you'd like to use this option and need better types, [open an issue](https://github.com/hey-api/openapi-ts/issues). 93 + 94 + ### Configuration 95 + 96 + You can choose your preferred style using the `services` config option. 97 + 98 + ::: code-group 99 + 100 + ```js{5} [flat] 101 + export default { 102 + input: 'path/to/openapi.json', 103 + output: 'src/client', 104 + services: { 105 + asClass: false, 106 + }, 107 + } 108 + ``` 109 + 110 + ```js{5} [class] 111 + export default { 112 + input: 'path/to/openapi.json', 113 + output: 'src/client', 114 + services: { 115 + asClass: true, 116 + }, 117 + } 118 + ``` 119 + 120 + ```js{4} [none] 121 + export default { 122 + input: 'path/to/openapi.json', 123 + output: 'src/client', 124 + services: false, 125 + } 126 + ``` 127 + 128 + ::: 129 + 130 + ### Output 131 + 132 + Below are different outputs depending on your chosen style. No services approach will not generate the `services.gen.ts` file. 133 + 134 + ::: code-group 135 + 136 + ```ts [flat] 137 + import { client, type Options } from '@hey-api/client-fetch'; 138 + 139 + import type { AddPetData, AddPetError, AddPetResponse } from './types.gen'; 140 + 141 + export const addPet = (options: Options<AddPetData>) => 142 + (options?.client ?? client).post<AddPetResponse, AddPetError>({ 143 + ...options, 144 + url: '/pet', 145 + }); 146 + ``` 147 + 148 + ```ts [class] 149 + import { client, type Options } from '@hey-api/client-fetch'; 150 + 151 + import type { AddPetData, AddPetError, AddPetResponse } from './types.gen'; 152 + 153 + export class PetService { 154 + public static addPet(options: Options<AddPetData>) { 155 + return (options?.client ?? client).post<AddPetResponse, AddPetError>({ 156 + ...options, 157 + url: '/pet', 158 + }); 159 + } 160 + } 161 + ``` 162 + 163 + ::: 164 + 165 + ### Usage 166 + 167 + This is how you'd make the same request using each approach. 168 + 169 + ::: code-group 170 + 171 + ```ts [flat] 172 + import { addPet } from './client/services.gen'; 173 + 174 + addPet({ 175 + body: { 176 + name: 'Kitty', 177 + }, 178 + }); 179 + ``` 180 + 181 + ```ts [class] 182 + import { PetService } from './client/services.gen'; 183 + 184 + PetService.addPet({ 185 + body: { 186 + name: 'Kitty', 187 + }, 188 + }); 189 + ``` 190 + 191 + ```ts [none] 192 + import { client } from '@hey-api/client-fetch'; 193 + 194 + client.post({ 195 + body: { 196 + name: 'Kitty', 197 + }, 198 + url: '/pet', 199 + }); 200 + ``` 201 + 202 + ::: 203 + 204 + ## JSON Schemas 205 + 206 + Schemas are located in the `schemas.gen.ts` file. This file contains runtime schemas generated from your OpenAPI specification definitions located in `#/components/schemas`. Starting with OpenAPI 3.1, these schemas are JSON Schema compliant. 207 + 208 + ```ts 209 + export const $Pet = { 210 + required: ['name'], 211 + properties: { 212 + id: { 213 + type: 'integer', 214 + format: 'int64', 215 + example: 10, 216 + }, 217 + name: { 218 + type: 'string', 219 + example: 'doggie', 220 + }, 221 + }, 222 + type: 'object', 223 + } as const; 224 + ``` 225 + 226 + You may want to use schemas if you want to enforce form validations that aren't possible using only types, such as maximum field length. 227 + 228 + ```ts 229 + import { $Schema } from './client/schemas.gen'; 230 + 231 + const maxInputLength = $Schema.properties.text.maxLength; 232 + 233 + if (userInput.length > maxInputLength) { 234 + throw new Error(`Text length can't exceed ${maxInputLength} characters!`); 235 + } 236 + ``` 237 + 238 + ## Index 239 + 240 + For convenience, every generated artifact is re-exported from `index.ts`. We recommend importing types, services, and schemas from their respective files to avoid ambiguity, but you can also use the index file. 241 + 242 + ```ts 243 + import type { Pet } from './client/types.gen'; 244 + // or 245 + import type { Pet } from './client'; 246 + ``` 247 + 248 + ## Core 249 + 250 + Client core files are located in the `core` folder. This folder will include different files depending on which client you're using. If you're using standalone packages, this folder will not be generated at all. 251 + 252 + For legacy clients, the [`OpenAPI`](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/templates/core/OpenAPI.hbs#L68-L84) configuration object will be most likely of interest. You can change its properties to set authorization tokens, base URL, and more. 253 + 254 + ```ts 255 + import { OpenAPI } from './client/core/OpenAPI'; 256 + ``` 257 + 258 + ## Plugins 259 + 260 + Different plugins may emit their own artifacts. These will be documented in their respective pages. 261 + 262 + <!--@include: ../examples.md-->
+1 -1
docs/package.json
··· 1 1 { 2 2 "name": "@hey-api/docs", 3 - "version": "0.5.6", 3 + "version": "0.5.7", 4 4 "description": "Documentation for OpenaAPI TypeScript.", 5 5 "private": true, 6 6 "type": "module",
+3 -3
examples/openapi-ts-axios/package.json
··· 13 13 }, 14 14 "dependencies": { 15 15 "@hey-api/client-axios": "workspace:*", 16 - "axios": "1.7.1", 16 + "axios": "1.7.2", 17 17 "react": "18.3.1", 18 18 "react-dom": "18.3.1" 19 19 }, 20 20 "devDependencies": { 21 21 "@hey-api/openapi-ts": "workspace:*", 22 - "@types/react": "18.3.2", 22 + "@types/react": "18.3.3", 23 23 "@types/react-dom": "18.3.0", 24 24 "@typescript-eslint/eslint-plugin": "7.10.0", 25 25 "@typescript-eslint/parser": "7.10.0", 26 - "@vitejs/plugin-react": "4.2.1", 26 + "@vitejs/plugin-react": "4.3.0", 27 27 "eslint": "9.3.0", 28 28 "eslint-plugin-react-hooks": "4.6.2", 29 29 "eslint-plugin-react-refresh": "0.4.7",
+21
examples/openapi-ts-fetch/CHANGELOG.md
··· 1 1 # @example/openapi-ts-fetch 2 2 3 + ## 0.0.4 4 + 5 + ### Patch Changes 6 + 7 + - Updated dependencies [[`820002f`](https://github.com/hey-api/openapi-ts/commit/820002ffe687b01c7a9b2250e19ddbafd1aaed71)]: 8 + - @hey-api/client-fetch@0.1.3 9 + 10 + ## 0.0.3 11 + 12 + ### Patch Changes 13 + 14 + - Updated dependencies [[`735561c82dbe0979f2c175d274159c20ba8e622d`](https://github.com/hey-api/openapi-ts/commit/735561c82dbe0979f2c175d274159c20ba8e622d)]: 15 + - @hey-api/client-fetch@0.1.2 16 + 17 + ## 0.0.2 18 + 19 + ### Patch Changes 20 + 21 + - Updated dependencies [[`616a4ea0265e09f3997ac2156c341a5cc0b49029`](https://github.com/hey-api/openapi-ts/commit/616a4ea0265e09f3997ac2156c341a5cc0b49029)]: 22 + - @hey-api/client-fetch@0.1.1 23 + 3 24 ## 0.0.1 4 25 5 26 ### Patch Changes
+3 -3
examples/openapi-ts-fetch/package.json
··· 1 1 { 2 2 "name": "@example/openapi-ts-fetch", 3 3 "private": true, 4 - "version": "0.0.1", 4 + "version": "0.0.4", 5 5 "type": "module", 6 6 "scripts": { 7 7 "build": "tsc && vite build", ··· 21 21 }, 22 22 "devDependencies": { 23 23 "@hey-api/openapi-ts": "workspace:*", 24 - "@types/react": "18.3.2", 24 + "@types/react": "18.3.3", 25 25 "@types/react-dom": "18.3.0", 26 26 "@typescript-eslint/eslint-plugin": "7.10.0", 27 27 "@typescript-eslint/parser": "7.10.0", 28 - "@vitejs/plugin-react": "4.2.1", 28 + "@vitejs/plugin-react": "4.3.0", 29 29 "autoprefixer": "10.4.19", 30 30 "eslint": "9.3.0", 31 31 "eslint-plugin-react-hooks": "4.6.2",
+34 -34
examples/openapi-ts-fetch/src/client/types.gen.ts
··· 177 177 178 178 export type DeletePetData = { 179 179 headers?: { 180 - apiKey?: string; 180 + api_key?: string; 181 181 }; 182 182 path: { 183 183 /** ··· 258 258 body?: Array<User>; 259 259 }; 260 260 261 - export type CreateUsersWithListInputResponse = User | unknown; 261 + export type CreateUsersWithListInputResponse = User; 262 262 263 263 export type CreateUsersWithListInputError = unknown; 264 264 ··· 330 330 /** 331 331 * Successful operation 332 332 */ 333 - 200: Pet; 333 + '200': Pet; 334 334 /** 335 335 * Invalid input 336 336 */ 337 - 405: unknown; 337 + '405': unknown; 338 338 }; 339 339 }; 340 340 put: { ··· 343 343 /** 344 344 * Successful operation 345 345 */ 346 - 200: Pet; 346 + '200': Pet; 347 347 /** 348 348 * Invalid ID supplied 349 349 */ 350 - 400: unknown; 350 + '400': unknown; 351 351 /** 352 352 * Pet not found 353 353 */ 354 - 404: unknown; 354 + '404': unknown; 355 355 /** 356 356 * Validation exception 357 357 */ 358 - 405: unknown; 358 + '405': unknown; 359 359 }; 360 360 }; 361 361 }; ··· 366 366 /** 367 367 * successful operation 368 368 */ 369 - 200: Array<Pet>; 369 + '200': Array<Pet>; 370 370 /** 371 371 * Invalid status value 372 372 */ 373 - 400: unknown; 373 + '400': unknown; 374 374 }; 375 375 }; 376 376 }; ··· 381 381 /** 382 382 * successful operation 383 383 */ 384 - 200: Array<Pet>; 384 + '200': Array<Pet>; 385 385 /** 386 386 * Invalid tag value 387 387 */ 388 - 400: unknown; 388 + '400': unknown; 389 389 }; 390 390 }; 391 391 }; ··· 396 396 /** 397 397 * successful operation 398 398 */ 399 - 200: Pet; 399 + '200': Pet; 400 400 /** 401 401 * Invalid ID supplied 402 402 */ 403 - 400: unknown; 403 + '400': unknown; 404 404 /** 405 405 * Pet not found 406 406 */ 407 - 404: unknown; 407 + '404': unknown; 408 408 }; 409 409 }; 410 410 post: { ··· 413 413 /** 414 414 * Invalid input 415 415 */ 416 - 405: unknown; 416 + '405': unknown; 417 417 }; 418 418 }; 419 419 delete: { ··· 422 422 /** 423 423 * Invalid pet value 424 424 */ 425 - 400: unknown; 425 + '400': unknown; 426 426 }; 427 427 }; 428 428 }; ··· 433 433 /** 434 434 * successful operation 435 435 */ 436 - 200: ApiResponse; 436 + '200': ApiResponse; 437 437 }; 438 438 }; 439 439 }; ··· 443 443 /** 444 444 * successful operation 445 445 */ 446 - 200: { 446 + '200': { 447 447 [key: string]: number; 448 448 }; 449 449 }; ··· 456 456 /** 457 457 * successful operation 458 458 */ 459 - 200: Order; 459 + '200': Order; 460 460 /** 461 461 * Invalid input 462 462 */ 463 - 405: unknown; 463 + '405': unknown; 464 464 }; 465 465 }; 466 466 }; ··· 471 471 /** 472 472 * successful operation 473 473 */ 474 - 200: Order; 474 + '200': Order; 475 475 /** 476 476 * Invalid ID supplied 477 477 */ 478 - 400: unknown; 478 + '400': unknown; 479 479 /** 480 480 * Order not found 481 481 */ 482 - 404: unknown; 482 + '404': unknown; 483 483 }; 484 484 }; 485 485 delete: { ··· 488 488 /** 489 489 * Invalid ID supplied 490 490 */ 491 - 400: unknown; 491 + '400': unknown; 492 492 /** 493 493 * Order not found 494 494 */ 495 - 404: unknown; 495 + '404': unknown; 496 496 }; 497 497 }; 498 498 }; ··· 514 514 /** 515 515 * Successful operation 516 516 */ 517 - 200: User; 517 + '200': User; 518 518 /** 519 519 * successful operation 520 520 */ ··· 529 529 /** 530 530 * successful operation 531 531 */ 532 - 200: string; 532 + '200': string; 533 533 /** 534 534 * Invalid username/password supplied 535 535 */ 536 - 400: unknown; 536 + '400': unknown; 537 537 }; 538 538 }; 539 539 }; ··· 554 554 /** 555 555 * successful operation 556 556 */ 557 - 200: User; 557 + '200': User; 558 558 /** 559 559 * Invalid username supplied 560 560 */ 561 - 400: unknown; 561 + '400': unknown; 562 562 /** 563 563 * User not found 564 564 */ 565 - 404: unknown; 565 + '404': unknown; 566 566 }; 567 567 }; 568 568 put: { ··· 580 580 /** 581 581 * Invalid username supplied 582 582 */ 583 - 400: unknown; 583 + '400': unknown; 584 584 /** 585 585 * User not found 586 586 */ 587 - 404: unknown; 587 + '404': unknown; 588 588 }; 589 589 }; 590 590 };
+4 -4
package.json
··· 34 34 "node": "^18.0.0 || >=20.0.0" 35 35 }, 36 36 "devDependencies": { 37 + "@changesets/changelog-github": "0.5.0", 37 38 "@changesets/cli": "2.27.3", 38 - "@rollup/plugin-commonjs": "25.0.7", 39 + "@rollup/plugin-commonjs": "25.0.8", 39 40 "@rollup/plugin-terser": "0.4.4", 40 41 "@rollup/plugin-typescript": "11.1.6", 41 - "@svitejs/changesets-changelog-github-compact": "1.1.0", 42 42 "@types/node": "20.12.12", 43 43 "@vitest/coverage-v8": "1.6.0", 44 44 "eslint": "9.3.0", ··· 47 47 "eslint-plugin-sort-keys-fix": "1.1.2", 48 48 "globals": "15.3.0", 49 49 "husky": "9.0.11", 50 - "lint-staged": "15.2.2", 50 + "lint-staged": "15.2.5", 51 51 "prettier": "3.2.5", 52 52 "rimraf": "5.0.7", 53 - "rollup": "4.17.2", 53 + "rollup": "4.18.0", 54 54 "rollup-plugin-dts": "6.1.1", 55 55 "typescript": "5.4.5", 56 56 "typescript-eslint": "7.10.0",
+1 -1
packages/client-axios/package.json
··· 67 67 "axios": ">= 1.0.0 < 2" 68 68 }, 69 69 "devDependencies": { 70 - "axios": "1.7.1" 70 + "axios": "1.7.2" 71 71 } 72 72 }
+1 -1
packages/client-core/src/types.ts
··· 9 9 export type ApiRequestOptions = { 10 10 readonly body?: any; 11 11 readonly cookies?: Record<string, unknown>; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 readonly formData?: Record<string, unknown>; 14 14 readonly headers?: Record<string, unknown>; 15 15 readonly mediaType?: string;
+18
packages/client-fetch/CHANGELOG.md
··· 1 1 # @hey-api/client-fetch 2 2 3 + ## 0.1.3 4 + 5 + ### Patch Changes 6 + 7 + - [#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 8 + 9 + ## 0.1.2 10 + 11 + ### Patch Changes 12 + 13 + - fix: JSON stringify object headers ([#616](https://github.com/hey-api/openapi-ts/pull/616)) 14 + 15 + ## 0.1.1 16 + 17 + ### Patch Changes 18 + 19 + - fix: export Client interface ([#610](https://github.com/hey-api/openapi-ts/pull/610)) 20 + 3 21 ## 0.1.0 4 22 5 23 ### Minor Changes
+1 -1
packages/client-fetch/package.json
··· 1 1 { 2 2 "name": "@hey-api/client-fetch", 3 - "version": "0.1.0", 3 + "version": "0.1.3", 4 4 "type": "module", 5 5 "description": "Typesafe Fetch API client for your @hey-api/openapi-ts types", 6 6 "homepage": "https://heyapi.vercel.app/",
+8 -7
packages/client-fetch/src/types.ts
··· 56 56 | (string | number | boolean)[] 57 57 | null 58 58 | undefined 59 + | unknown 59 60 >; 60 61 /** 61 62 * The request method. ··· 141 142 client?: Client; 142 143 }; 143 144 144 - export type Options<T = unknown> = T extends { body: any; headers: any } 145 - ? OmitKeys<OptionsBase, 'body' | 'headers'> & T 146 - : T extends { body: any } 147 - ? OmitKeys<OptionsBase, 'body'> & T 148 - : T extends { headers: any } 149 - ? OmitKeys<OptionsBase, 'headers'> & T 150 - : OptionsBase & T; 145 + export type Options<T = unknown> = T extends { body?: any } 146 + ? T extends { headers?: any } 147 + ? OmitKeys<OptionsBase, 'body' | 'headers'> & T 148 + : OmitKeys<OptionsBase, 'body'> & T & Pick<OptionsBase, 'headers'> 149 + : T extends { headers?: any } 150 + ? OmitKeys<OptionsBase, 'headers'> & T & Pick<OptionsBase, 'body'> 151 + : OptionsBase & T;
+6 -1
packages/client-fetch/src/utils.ts
··· 402 402 mergedHeaders.append(key, v as string); 403 403 } 404 404 } else if (value !== undefined) { 405 - mergedHeaders.set(key, value as string); 405 + // assume object headers are meant to be JSON stringified, i.e. their 406 + // content value in OpenAPI specification is 'application/json' 407 + mergedHeaders.set( 408 + key, 409 + typeof value === 'object' ? JSON.stringify(value) : (value as string), 410 + ); 406 411 } 407 412 } 408 413 }
+24
packages/openapi-ts/CHANGELOG.md
··· 1 1 # @hey-api/openapi-ts 2 2 3 + ## 0.46.3 4 + 5 + ### Patch Changes 6 + 7 + - [#594](https://github.com/hey-api/openapi-ts/pull/594) [`9878381`](https://github.com/hey-api/openapi-ts/commit/98783811e0c90705ddac2cc5e54c524aae634865) Thanks [@SimenB](https://github.com/SimenB)! - Add explicit type annotations to `Interceptors` 8 + 9 + This allows the generated code to work with TypeScript 5.5's new `isolatedDeclarations` configuration. 10 + 11 + - [#635](https://github.com/hey-api/openapi-ts/pull/635) [`0b09940`](https://github.com/hey-api/openapi-ts/commit/0b0994050dbcb6c17e8b78ca1c77738fc8e0d498) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle 1XX response status codes 12 + 13 + - [#636](https://github.com/hey-api/openapi-ts/pull/636) [`498f459`](https://github.com/hey-api/openapi-ts/commit/498f45979b91bf93b319413c60492af94a08df48) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: improve default response status code classification 14 + 15 + ## 0.46.2 16 + 17 + ### Patch Changes 18 + 19 + - fix: do not transform property names for standalone clients ([#616](https://github.com/hey-api/openapi-ts/pull/616)) 20 + 21 + ## 0.46.1 22 + 23 + ### Patch Changes 24 + 25 + - fix: handle application/json content type in parameter definitions ([#614](https://github.com/hey-api/openapi-ts/pull/614)) 26 + 3 27 ## 0.46.0 4 28 5 29 ### Minor Changes
+1 -1
packages/openapi-ts/README.md
··· 10 10 11 11 ## Features 12 12 13 - - works with CLI, Node.js, or npx 13 + - works with CLI, Node.js 18+, or npx 14 14 - supports OpenAPI 2.0, 3.0, and 3.1 specifications 15 15 - supports both JSON and YAML input files 16 16 - generates TypeScript interfaces, REST clients, and JSON Schemas
+4 -4
packages/openapi-ts/package.json
··· 1 1 { 2 2 "name": "@hey-api/openapi-ts", 3 - "version": "0.46.0", 3 + "version": "0.46.3", 4 4 "type": "module", 5 5 "description": "Turn your OpenAPI specification into a beautiful TypeScript client", 6 6 "homepage": "https://heyapi.vercel.app/", ··· 85 85 "@rollup/plugin-node-resolve": "15.2.3", 86 86 "@types/cross-spawn": "6.0.6", 87 87 "@types/express": "4.17.21", 88 - "axios": "1.7.1", 88 + "axios": "1.7.2", 89 89 "cross-spawn": "7.0.3", 90 90 "eslint": "9.3.0", 91 91 "express": "4.19.2", 92 - "glob": "10.3.15", 92 + "glob": "10.4.1", 93 93 "node-fetch": "3.3.2", 94 94 "prettier": "3.2.5", 95 - "puppeteer": "22.9.0", 95 + "puppeteer": "22.10.0", 96 96 "rxjs": "7.8.1", 97 97 "ts-node": "10.9.2", 98 98 "tslib": "2.6.2",
+14 -3
packages/openapi-ts/src/openApi/common/interfaces/client.ts
··· 1 + import type { OpenApiParameter } from '../../v3/interfaces/OpenApiParameter'; 2 + 1 3 export interface ModelComposition 2 4 extends Pick<Model, '$refs' | 'enums' | 'imports' | 'properties'> { 3 5 export: Extract<Model['export'], 'all-of' | 'any-of' | 'one-of'>; ··· 11 13 } 12 14 13 15 export interface OperationParameter extends Model { 14 - in: 'path' | 'query' | 'header' | 'formData' | 'body' | 'cookie'; 16 + in: 'body' | 'cookie' | 'formData' | 'header' | 'path' | 'query'; 15 17 prop: string; 16 18 mediaType: string | null; 17 19 } ··· 27 29 } 28 30 29 31 export interface OperationResponse extends Model { 30 - in: 'response' | 'header'; 31 - code: number | 'default'; 32 + in: 'header' | 'response'; 33 + code: number | 'default' | '1XX' | '2XX' | '3XX' | '4XX' | '5XX'; 32 34 } 33 35 34 36 export type Method = ··· 53 55 name: string; 54 56 path: string; 55 57 responseHeader: string | null; 58 + /** 59 + * All operation responses defined in OpenAPI specification. 60 + * Sorted by status code. 61 + */ 56 62 results: OperationResponse[]; 57 63 /** 58 64 * Service name, might be without postfix. This will be used to name the ··· 130 136 | 'one-of' 131 137 | 'reference'; 132 138 imports: string[]; 139 + in: 140 + | OperationParameter['in'] 141 + | OpenApiParameter['in'] 142 + | OperationResponse['in'] 143 + | ''; 133 144 link: Model | null; 134 145 meta?: ModelMeta; 135 146 /**
+6 -32
packages/openapi-ts/src/openApi/common/parser/__tests__/operation.spec.ts
··· 1 1 import { describe, expect, it } from 'vitest'; 2 2 3 3 import { setConfig } from '../../../../utils/config'; 4 - import { 5 - getOperationName, 6 - getOperationParameterName, 7 - getOperationResponseCode, 8 - } from '../operation'; 4 + import { getOperationName, parseResponseStatusCode } from '../operation'; 9 5 10 6 describe('getOperationName', () => { 11 7 const options1: Parameters<typeof setConfig>[0] = { ··· 225 221 ); 226 222 }); 227 223 228 - describe('getOperationParameterName', () => { 229 - it.each([ 230 - { expected: '', input: '' }, 231 - { expected: 'foobar', input: 'foobar' }, 232 - { expected: 'fooBar', input: 'fooBar' }, 233 - { expected: 'fooBar', input: 'foo_bar' }, 234 - { expected: 'fooBar', input: 'foo-bar' }, 235 - { expected: 'fooBar', input: 'foo.bar' }, 236 - { expected: 'fooBar', input: '@foo.bar' }, 237 - { expected: 'fooBar', input: '$foo.bar' }, 238 - { expected: 'fooBar', input: '123.foo.bar' }, 239 - { expected: 'fooBar', input: 'Foo-Bar' }, 240 - { expected: 'fooBar', input: 'FOO-BAR' }, 241 - { expected: 'fooBar', input: 'foo[bar]' }, 242 - { expected: 'fooBarArray', input: 'foo.bar[]' }, 243 - ])( 244 - 'getOperationParameterName($input) -> $expected', 245 - ({ input, expected }) => { 246 - expect(getOperationParameterName(input)).toBe(expected); 247 - }, 248 - ); 249 - }); 250 - 251 - describe('getOperationResponseCode', () => { 224 + describe('parseResponseStatusCode', () => { 252 225 it.each([ 253 226 { expected: null, input: '' }, 254 227 { expected: 'default', input: 'default' }, 255 228 { expected: 200, input: '200' }, 256 229 { expected: 300, input: '300' }, 257 230 { expected: 400, input: '400' }, 231 + { expected: '4XX', input: '4XX' }, 258 232 { expected: null, input: 'abc' }, 259 - { expected: 100, input: '-100' }, 260 - ])('getOperationResponseCode($input) -> $expected', ({ input, expected }) => { 261 - expect(getOperationResponseCode(input)).toBe(expected); 233 + { expected: null, input: '-100' }, 234 + ])('parseResponseStatusCode($input) -> $expected', ({ input, expected }) => { 235 + expect(parseResponseStatusCode(input)).toBe(expected); 262 236 }); 263 237 });
+52 -2
packages/openapi-ts/src/openApi/common/parser/__tests__/type.spec.ts
··· 1 - import { describe, expect, it, vi } from 'vitest'; 1 + import { describe, expect, it, type MockedFunction, vi } from 'vitest'; 2 2 3 3 import type { Config } from '../../../../types/config'; 4 - import { getMappedType, getType } from '../type'; 4 + import { isStandaloneClient } from '../../../../utils/config'; 5 + import { getMappedType, getType, transformTypeKeyName } from '../type'; 5 6 6 7 vi.mock('../../../../utils/config', () => { 7 8 const config: Partial<Config> = { ··· 9 10 }; 10 11 return { 11 12 getConfig: () => config, 13 + isStandaloneClient: vi.fn().mockReturnValue(false), 12 14 }; 13 15 }); 14 16 ··· 140 142 expect(type.isNullable).toEqual(true); 141 143 }); 142 144 }); 145 + 146 + describe('transformTypeKeyName', () => { 147 + describe('legacy client', () => { 148 + it.each([ 149 + { expected: '', input: '' }, 150 + { expected: 'foobar', input: 'foobar' }, 151 + { expected: 'fooBar', input: 'fooBar' }, 152 + { expected: 'fooBar', input: 'foo_bar' }, 153 + { expected: 'fooBar', input: 'foo-bar' }, 154 + { expected: 'fooBar', input: 'foo.bar' }, 155 + { expected: 'fooBar', input: '@foo.bar' }, 156 + { expected: 'fooBar', input: '$foo.bar' }, 157 + { expected: 'fooBar', input: '123.foo.bar' }, 158 + { expected: 'fooBar', input: 'Foo-Bar' }, 159 + { expected: 'fooBar', input: 'FOO-BAR' }, 160 + { expected: 'fooBar', input: 'foo[bar]' }, 161 + { expected: 'fooBarArray', input: 'foo.bar[]' }, 162 + ])('$input -> $expected', ({ input, expected }) => { 163 + (isStandaloneClient as MockedFunction<any>).mockImplementationOnce( 164 + () => false, 165 + ); 166 + expect(transformTypeKeyName(input)).toBe(expected); 167 + }); 168 + }); 169 + 170 + describe('standalone client', () => { 171 + it.each([ 172 + { expected: '', input: '' }, 173 + { expected: 'foobar', input: 'foobar' }, 174 + { expected: 'fooBar', input: 'fooBar' }, 175 + { expected: 'fooBar', input: 'foo_bar' }, 176 + { expected: 'fooBar', input: 'foo-bar' }, 177 + { expected: 'fooBar', input: 'foo.bar' }, 178 + { expected: 'fooBar', input: '@foo.bar' }, 179 + { expected: 'fooBar', input: '$foo.bar' }, 180 + { expected: 'fooBar', input: '123.foo.bar' }, 181 + { expected: 'fooBar', input: 'Foo-Bar' }, 182 + { expected: 'fooBar', input: 'FOO-BAR' }, 183 + { expected: 'fooBar', input: 'foo[bar]' }, 184 + { expected: 'fooBarArray', input: 'foo.bar[]' }, 185 + ])('$input -> $input', ({ input }) => { 186 + (isStandaloneClient as MockedFunction<any>).mockImplementationOnce( 187 + () => true, 188 + ); 189 + expect(transformTypeKeyName(input)).toBe(input); 190 + }); 191 + }); 192 + });
+104 -29
packages/openapi-ts/src/openApi/common/parser/operation.ts
··· 1 1 import camelCase from 'camelcase'; 2 2 3 3 import { getConfig } from '../../../utils/config'; 4 - import type { OperationResponse } from '../interfaces/client'; 5 - import { reservedWords } from './reservedWords'; 6 - import { 7 - sanitizeNamespaceIdentifier, 8 - sanitizeOperationParameterName, 9 - } from './sanitize'; 4 + import type { Model, OperationResponse } from '../interfaces/client'; 5 + import { sanitizeNamespaceIdentifier } from './sanitize'; 6 + 7 + const areEqual = (a: Model, b: Model): boolean => { 8 + const equal = 9 + a.type === b.type && a.base === b.base && a.template === b.template; 10 + if (equal && a.link && b.link) { 11 + return areEqual(a.link, b.link); 12 + } 13 + return equal; 14 + }; 10 15 11 16 /** 12 17 * Convert the input value to a correct operation (method) class name. ··· 32 37 return camelCase(`${method}-${urlWithoutPlaceholders}`); 33 38 }; 34 39 35 - /** 36 - * Replaces any invalid characters from a parameter name. 37 - * For example: 'filter.someProperty' becomes 'filterSomeProperty'. 38 - */ 39 - export const getOperationParameterName = (value: string): string => { 40 - const clean = sanitizeOperationParameterName(value).trim(); 41 - return camelCase(clean).replace(reservedWords, '_$1'); 42 - }; 43 - 44 40 export const getOperationResponseHeader = ( 45 41 operationResponses: OperationResponse[], 46 42 ): string | null => { ··· 53 49 return null; 54 50 }; 55 51 56 - export const getOperationResponseCode = ( 57 - value: string | 'default', 58 - ): number | 'default' | null => { 52 + /** 53 + * Attempts to parse response status code from string into number. 54 + * @param value string status code from OpenAPI definition 55 + * @returns Parsed status code or null if invalid value 56 + */ 57 + export const parseResponseStatusCode = ( 58 + value: string, 59 + ): OperationResponse['code'] | null => { 59 60 if (value === 'default') { 60 61 return 'default'; 61 62 } 62 63 63 - // Check if we can parse the code and return of successful. 64 - if (/[0-9]+/g.test(value)) { 65 - const code = Number.parseInt(value); 66 - if (Number.isInteger(code)) { 67 - return Math.abs(code); 64 + if (value === '1XX') { 65 + return '1XX'; 66 + } 67 + 68 + if (value === '2XX') { 69 + return '2XX'; 70 + } 71 + 72 + if (value === '3XX') { 73 + return '3XX'; 74 + } 75 + 76 + if (value === '4XX') { 77 + return '4XX'; 78 + } 79 + 80 + if (value === '5XX') { 81 + return '5XX'; 82 + } 83 + 84 + if (/\d{3}/g.test(value)) { 85 + const code = Number.parseInt(value, 10); 86 + if (code >= 100 && code < 600) { 87 + return code; 68 88 } 69 89 } 70 90 71 91 return null; 72 92 }; 73 93 74 - export const getOperationErrors = ( 75 - operationResponses: OperationResponse[], 76 - ): OperationResponse[] => 77 - operationResponses.filter( 78 - ({ code, description }) => 79 - typeof code === 'number' && code >= 300 && description, 94 + const isErrorStatusCode = (code: OperationResponse['code']) => 95 + code === '3XX' || 96 + code === '4XX' || 97 + code === '5XX' || 98 + (typeof code === 'number' && code >= 300); 99 + 100 + const isSuccessStatusCode = (code: OperationResponse['code']) => 101 + code === '2XX' || (typeof code === 'number' && code >= 200 && code < 300); 102 + 103 + /** 104 + * Returns only error status code responses. 105 + */ 106 + export const getErrorResponses = ( 107 + responses: OperationResponse[], 108 + ): OperationResponse[] => { 109 + const results = responses.filter( 110 + ({ code }) => 111 + (code === 'default' && inferDefaultResponse(responses) === 'error') || 112 + isErrorStatusCode(code), 80 113 ); 114 + return results; 115 + }; 116 + 117 + /** 118 + * Returns only successful status code responses. 119 + */ 120 + export const getSuccessResponses = ( 121 + responses: OperationResponse[], 122 + ): OperationResponse[] => { 123 + const results = responses.filter( 124 + ({ code }) => 125 + (code === 'default' && inferDefaultResponse(responses) === 'success') || 126 + isSuccessStatusCode(code), 127 + ); 128 + return results.filter( 129 + (result, index, arr) => 130 + arr.findIndex((item) => areEqual(item, result)) === index, 131 + ); 132 + }; 133 + 134 + /** 135 + * Detects whether default response is meant to be used for errors or 136 + * successful responses. Returns an empty string if there's no default 137 + * response. 138 + */ 139 + export const inferDefaultResponse = ( 140 + responses: OperationResponse[], 141 + ): 'error' | 'success' | '' => { 142 + const defaultResponse = responses.find(({ code }) => code === 'default'); 143 + if (!defaultResponse) { 144 + return ''; 145 + } 146 + 147 + const successResponses = responses.filter(({ code }) => 148 + isSuccessStatusCode(code), 149 + ); 150 + if (!successResponses.length) { 151 + return 'success'; 152 + } 153 + 154 + return 'error'; 155 + };
+24 -1
packages/openapi-ts/src/openApi/common/parser/type.ts
··· 1 + import camelcase from 'camelcase'; 2 + 3 + import { getConfig, isStandaloneClient } from '../../../utils/config'; 1 4 import { transformTypeName } from '../../../utils/transform'; 2 5 import { isDefinitionTypeNullable } from '../../v3/parser/inferType'; 3 6 import type { Type } from '../interfaces/Type'; 4 - import { ensureValidTypeScriptJavaScriptIdentifier } from './sanitize'; 7 + import { reservedWords } from './reservedWords'; 8 + import { 9 + ensureValidTypeScriptJavaScriptIdentifier, 10 + sanitizeOperationParameterName, 11 + } from './sanitize'; 5 12 import { stripNamespace } from './stripNamespace'; 6 13 7 14 /** ··· 145 152 146 153 return result; 147 154 }; 155 + 156 + /** 157 + * Replaces any invalid characters from a parameter name. 158 + * For example: 'filter.someProperty' becomes 'filterSomeProperty'. 159 + */ 160 + export const transformTypeKeyName = (value: string): string => { 161 + const config = getConfig(); 162 + 163 + // do not transform anything for standalone clients 164 + if (isStandaloneClient(config)) { 165 + return value; 166 + } 167 + 168 + const clean = sanitizeOperationParameterName(value).trim(); 169 + return camelcase(clean).replace(reservedWords, '_$1'); 170 + };
+1
packages/openapi-ts/src/openApi/v2/parser/getModel.ts
··· 31 31 export: 'interface', 32 32 format: definition.format, 33 33 imports: [], 34 + in: '', 34 35 isDefinition, 35 36 isNullable: definition['x-nullable'] === true, 36 37 isReadOnly: definition.readOnly === true,
+1
packages/openapi-ts/src/openApi/v2/parser/getModelComposition.ts
··· 87 87 enums: [], 88 88 export: 'interface', 89 89 imports: [], 90 + in: '', 90 91 isDefinition: false, 91 92 isNullable: false, 92 93 isReadOnly: false,
+2
packages/openapi-ts/src/openApi/v2/parser/getModelProperties.ts
··· 38 38 export: 'reference', 39 39 format: property.format, 40 40 imports: model.imports, 41 + in: '', 41 42 isDefinition: false, 42 43 isNullable: property['x-nullable'] === true, 43 44 isReadOnly: property.readOnly === true, ··· 72 73 export: model.export, 73 74 format: property.format, 74 75 imports: model.imports, 76 + in: '', 75 77 isDefinition: false, 76 78 isNullable: property['x-nullable'] === true, 77 79 isReadOnly: property.readOnly === true,
+31 -15
packages/openapi-ts/src/openApi/v2/parser/getOperation.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 - import { getOperationResults } from '../../../utils/operation'; 3 2 import type { 4 3 Operation, 5 4 OperationParameters, 6 5 } from '../../common/interfaces/client'; 7 6 import { 8 - getOperationErrors, 7 + getErrorResponses, 9 8 getOperationName, 10 9 getOperationResponseHeader, 10 + getSuccessResponses, 11 11 } from '../../common/parser/operation'; 12 12 import { getServiceName } from '../../common/parser/service'; 13 13 import { toSortedByRequired } from '../../common/parser/sort'; ··· 66 66 parameters: op.parameters, 67 67 types, 68 68 }); 69 - operation.imports.push(...parameters.imports); 70 - operation.parameters.push(...parameters.parameters); 71 - operation.parametersPath.push(...parameters.parametersPath); 72 - operation.parametersQuery.push(...parameters.parametersQuery); 73 - operation.parametersForm.push(...parameters.parametersForm); 74 - operation.parametersHeader.push(...parameters.parametersHeader); 75 - operation.parametersCookie.push(...parameters.parametersCookie); 69 + operation.imports = [...operation.imports, ...parameters.imports]; 70 + operation.parameters = [...operation.parameters, ...parameters.parameters]; 71 + operation.parametersPath = [ 72 + ...operation.parametersPath, 73 + ...parameters.parametersPath, 74 + ]; 75 + operation.parametersQuery = [ 76 + ...operation.parametersQuery, 77 + ...parameters.parametersQuery, 78 + ]; 79 + operation.parametersForm = [ 80 + ...operation.parametersForm, 81 + ...parameters.parametersForm, 82 + ]; 83 + operation.parametersHeader = [ 84 + ...operation.parametersHeader, 85 + ...parameters.parametersHeader, 86 + ]; 87 + operation.parametersCookie = [ 88 + ...operation.parametersCookie, 89 + ...parameters.parametersCookie, 90 + ]; 76 91 operation.parametersBody = parameters.parametersBody; 77 92 } 78 93 ··· 83 98 responses: op.responses, 84 99 types, 85 100 }); 86 - const operationResults = getOperationResults(operationResponses); 87 - operation.errors = getOperationErrors(operationResponses); 88 - operation.responseHeader = getOperationResponseHeader(operationResults); 101 + operation.errors = getErrorResponses(operationResponses); 102 + 103 + const successResponses = getSuccessResponses(operationResponses); 104 + operation.responseHeader = getOperationResponseHeader(successResponses); 89 105 90 - operationResults.forEach((operationResult) => { 91 - operation.results.push(operationResult); 92 - operation.imports.push(...operationResult.imports); 106 + successResponses.forEach((operationResult) => { 107 + operation.results = [...operation.results, operationResult]; 108 + operation.imports = [...operation.imports, ...operationResult.imports]; 93 109 }); 94 110 } 95 111
+7 -3
packages/openapi-ts/src/openApi/v2/parser/getOperationParameter.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 + import { getConfig, isStandaloneClient } from '../../../utils/config'; 2 3 import type { OperationParameter } from '../../common/interfaces/client'; 3 4 import { getDefault } from '../../common/parser/getDefault'; 4 5 import { getEnums } from '../../common/parser/getEnums'; 5 6 import { getPattern } from '../../common/parser/getPattern'; 6 7 import { getRef } from '../../common/parser/getRef'; 7 - import { getOperationParameterName } from '../../common/parser/operation'; 8 - import { getType } from '../../common/parser/type'; 8 + import { getType, transformTypeKeyName } from '../../common/parser/type'; 9 9 import type { OpenApi } from '../interfaces/OpenApi'; 10 10 import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; 11 11 import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; ··· 20 20 parameter: OpenApiParameter; 21 21 types: Client['types']; 22 22 }): OperationParameter => { 23 + const config = getConfig(); 24 + 23 25 const operationParameter: OperationParameter = { 24 26 $refs: [], 25 27 base: 'unknown', ··· 45 47 minLength: parameter.minLength, 46 48 minimum: parameter.minimum, 47 49 multipleOf: parameter.multipleOf, 48 - name: getOperationParameterName(parameter.name), 50 + name: isStandaloneClient(config) 51 + ? parameter.name 52 + : transformTypeKeyName(parameter.name), 49 53 pattern: getPattern(parameter.pattern), 50 54 prop: parameter.name, 51 55 properties: [],
+50 -42
packages/openapi-ts/src/openApi/v2/parser/getOperationResponse.ts
··· 16 16 }: { 17 17 openApi: OpenApi; 18 18 response: OpenApiResponse; 19 - code: number | 'default'; 19 + code: OperationResponse['code']; 20 20 types: Client['types']; 21 21 }): OperationResponse => { 22 22 const operationResponse: OperationResponse = { ··· 40 40 type: code !== 204 ? 'unknown' : 'void', 41 41 }; 42 42 43 - // If this response has a schema, then we need to check two things: 44 - // if this is a reference then the parameter is just the 'name' of 45 - // this reference type. Otherwise, it might be a complex schema, 46 - // and then we need to parse the schema! 47 43 let schema = response.schema; 48 44 if (schema) { 49 45 if (schema.$ref?.startsWith('#/responses/')) { 50 46 schema = getRef<OpenApiSchema>(openApi, schema); 51 47 } 48 + 52 49 if (schema.$ref) { 53 50 const model = getType({ type: schema.$ref }); 54 51 operationResponse.export = 'reference'; 55 52 operationResponse.type = model.type; 56 53 operationResponse.base = model.base; 57 54 operationResponse.template = model.template; 58 - operationResponse.imports.push(...model.imports); 59 - return operationResponse; 60 - } else { 61 - const model = getModel({ definition: schema, openApi, types }); 62 - operationResponse.export = model.export; 63 - operationResponse.type = model.type; 64 - operationResponse.base = model.base; 65 - operationResponse.template = model.template; 66 - operationResponse.link = model.link; 67 - operationResponse.isReadOnly = model.isReadOnly; 68 - operationResponse.isRequired = model.isRequired; 69 - operationResponse.isNullable = model.isNullable; 70 - operationResponse.format = model.format; 71 - operationResponse.maximum = model.maximum; 72 - operationResponse.exclusiveMaximum = model.exclusiveMaximum; 73 - operationResponse.minimum = model.minimum; 74 - operationResponse.exclusiveMinimum = model.exclusiveMinimum; 75 - operationResponse.multipleOf = model.multipleOf; 76 - operationResponse.maxLength = model.maxLength; 77 - operationResponse.minLength = model.minLength; 78 - operationResponse.maxItems = model.maxItems; 79 - operationResponse.minItems = model.minItems; 80 - operationResponse.uniqueItems = model.uniqueItems; 81 - operationResponse.maxProperties = model.maxProperties; 82 - operationResponse.minProperties = model.minProperties; 83 - operationResponse.pattern = getPattern(model.pattern); 84 - operationResponse.imports.push(...model.imports); 85 - operationResponse.enum.push(...model.enum); 86 - operationResponse.enums.push(...model.enums); 87 - operationResponse.properties.push(...model.properties); 55 + operationResponse.imports = [ 56 + ...operationResponse.imports, 57 + ...model.imports, 58 + ]; 88 59 return operationResponse; 89 60 } 61 + 62 + const model = getModel({ definition: schema, openApi, types }); 63 + operationResponse.export = model.export; 64 + operationResponse.type = model.type; 65 + operationResponse.base = model.base; 66 + operationResponse.template = model.template; 67 + operationResponse.link = model.link; 68 + operationResponse.isReadOnly = model.isReadOnly; 69 + operationResponse.isRequired = model.isRequired; 70 + operationResponse.isNullable = model.isNullable; 71 + operationResponse.format = model.format; 72 + operationResponse.maximum = model.maximum; 73 + operationResponse.exclusiveMaximum = model.exclusiveMaximum; 74 + operationResponse.minimum = model.minimum; 75 + operationResponse.exclusiveMinimum = model.exclusiveMinimum; 76 + operationResponse.multipleOf = model.multipleOf; 77 + operationResponse.maxLength = model.maxLength; 78 + operationResponse.minLength = model.minLength; 79 + operationResponse.maxItems = model.maxItems; 80 + operationResponse.minItems = model.minItems; 81 + operationResponse.uniqueItems = model.uniqueItems; 82 + operationResponse.maxProperties = model.maxProperties; 83 + operationResponse.minProperties = model.minProperties; 84 + operationResponse.pattern = getPattern(model.pattern); 85 + operationResponse.imports = [ 86 + ...operationResponse.imports, 87 + ...model.imports, 88 + ]; 89 + operationResponse.enum = [...operationResponse.enum, ...model.enum]; 90 + operationResponse.enums = [...operationResponse.enums, ...model.enums]; 91 + operationResponse.properties = [ 92 + ...operationResponse.properties, 93 + ...model.properties, 94 + ]; 95 + return operationResponse; 90 96 } 91 97 92 98 // We support basic properties from response headers, since both 93 99 // fetch and XHR client just support string types. 94 - Object.keys(response.headers ?? {}).forEach((name) => { 95 - operationResponse.in = 'header'; 96 - operationResponse.name = name; 97 - operationResponse.type = 'string'; 98 - operationResponse.base = 'string'; 99 - return operationResponse; 100 - }); 100 + if (response.headers) { 101 + for (const name in response.headers) { 102 + operationResponse.in = 'header'; 103 + operationResponse.name = name; 104 + operationResponse.type = 'string'; 105 + operationResponse.base = 'string'; 106 + return operationResponse; 107 + } 108 + } 101 109 102 110 return operationResponse; 103 111 };
+15 -16
packages/openapi-ts/src/openApi/v2/parser/getOperationResponses.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 2 import type { OperationResponse } from '../../common/interfaces/client'; 3 3 import { getRef } from '../../common/parser/getRef'; 4 - import { getOperationResponseCode } from '../../common/parser/operation'; 4 + import { parseResponseStatusCode } from '../../common/parser/operation'; 5 5 import type { OpenApi } from '../interfaces/OpenApi'; 6 6 import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; 7 7 import type { OpenApiResponses } from '../interfaces/OpenApiResponses'; ··· 16 16 responses: OpenApiResponses; 17 17 types: Client['types']; 18 18 }): OperationResponse[] => { 19 - const operationResponses: OperationResponse[] = []; 19 + let operationResponses: OperationResponse[] = []; 20 20 21 - // Iterate over each response code and get the 22 - // status code and response message 23 - Object.entries(responses).forEach(([code, responseOrReference]) => { 21 + Object.entries(responses).forEach(([responseCode, responseOrReference]) => { 22 + const code = parseResponseStatusCode(responseCode); 23 + if (!code) { 24 + return; 25 + } 26 + 24 27 const response = getRef<OpenApiResponse>(openApi, responseOrReference); 25 - const responseCode = getOperationResponseCode(code); 26 - 27 - if (responseCode) { 28 - const operationResponse = getOperationResponse({ 29 - code: responseCode, 30 - openApi, 31 - response, 32 - types, 33 - }); 34 - operationResponses.push(operationResponse); 35 - } 28 + const operationResponse = getOperationResponse({ 29 + code, 30 + openApi, 31 + response, 32 + types, 33 + }); 34 + operationResponses = [...operationResponses, operationResponse]; 36 35 }); 37 36 38 37 // Sort the responses to 2xx success codes come before 4xx and 5xx error codes.
+29 -9
packages/openapi-ts/src/openApi/v3/interfaces/OpenApiParameter.ts
··· 4 4 import type { OpenApiSchema } from './OpenApiSchema'; 5 5 6 6 /** 7 + * add only one type for now as that's needed to resolve the reported issue, 8 + * more types should be added though 9 + * {@link https://github.com/hey-api/openapi-ts/issues/612} 10 + */ 11 + type MediaType = 'application/json'; 12 + 13 + /** 14 + * encoding interface should be added, not adding it for now as it's not needed 15 + * to resolve the issue reported 16 + * {@link https://github.com/hey-api/openapi-ts/issues/612} 17 + */ 18 + interface MediaTypeObject { 19 + example?: unknown; 20 + examples?: Dictionary<OpenApiExample>; 21 + schema: OpenApiSchema; 22 + // encoding? 23 + } 24 + 25 + /** 7 26 * {@link} https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.0.md#parameter-object 8 27 */ 9 28 export interface OpenApiParameter extends OpenApiReference { 10 - name: string; 11 - in: 'path' | 'query' | 'header' | 'formData' | 'cookie'; 12 - description?: string; 13 - required?: boolean; 14 - nullable?: boolean; 15 - deprecated?: boolean; 16 29 allowEmptyValue?: boolean; 17 - style?: string; 18 - explode?: boolean; 19 30 allowReserved?: boolean; 20 - schema?: OpenApiSchema; 31 + content?: Record<MediaType, MediaTypeObject>; 32 + deprecated?: boolean; 33 + description?: string; 21 34 example?: unknown; 22 35 examples?: Dictionary<OpenApiExample>; 36 + explode?: boolean; 37 + in: 'cookie' | 'formData' | 'header' | 'path' | 'query'; 38 + name: string; 39 + nullable?: boolean; 40 + required?: boolean; 41 + schema?: OpenApiSchema; 42 + style?: string; 23 43 }
+1
packages/openapi-ts/src/openApi/v3/parser/getModel.ts
··· 55 55 export: 'interface', 56 56 format: definition.format, 57 57 imports: [], 58 + in: '', 58 59 isDefinition, 59 60 isNullable: isDefinitionNullable(definition), 60 61 isReadOnly: definition.readOnly === true,
+1
packages/openapi-ts/src/openApi/v3/parser/getModelComposition.ts
··· 131 131 enums: [], 132 132 export: 'interface', 133 133 imports: [], 134 + in: '', 134 135 isDefinition: false, 135 136 isNullable: false, 136 137 isReadOnly: false,
+1
packages/openapi-ts/src/openApi/v3/parser/getModelProperties.ts
··· 119 119 exclusiveMaximum: property.exclusiveMaximum, 120 120 exclusiveMinimum: property.exclusiveMinimum, 121 121 format: property.format, 122 + in: '', 122 123 isDefinition: false, 123 124 isReadOnly: property.readOnly === true, 124 125 isRequired: propertyRequired,
+8 -1
packages/openapi-ts/src/openApi/v3/parser/getModels.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 + import { getConfig } from '../../../utils/config'; 2 3 import { reservedWords } from '../../common/parser/reservedWords'; 3 4 import { getType } from '../../common/parser/type'; 4 5 import type { OpenApi } from '../interfaces/OpenApi'; 5 6 import { getModel } from './getModel'; 7 + import { getParameterSchema } from './parameter'; 6 8 7 9 export const getModels = ( 8 10 openApi: OpenApi, 9 11 ): Pick<Client, 'models' | 'types'> => { 12 + const config = getConfig(); 13 + 10 14 const types: Client['types'] = {}; 11 15 let models: Client['models'] = []; 12 16 ··· 39 43 40 44 Object.entries(openApi.components.parameters ?? {}).forEach( 41 45 ([definitionName, definition]) => { 42 - const schema = definition.schema; 46 + const schema = getParameterSchema(definition); 43 47 if (!schema) { 48 + if (config.debug) { 49 + console.warn('Skipping generating parameter:', definitionName); 50 + } 44 51 return; 45 52 } 46 53
+53 -44
packages/openapi-ts/src/openApi/v3/parser/getOperationParameter.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 + import { getConfig, isStandaloneClient } from '../../../utils/config'; 2 3 import { enumMeta } from '../../../utils/enum'; 3 4 import type { OperationParameter } from '../../common/interfaces/client'; 4 5 import { getDefault } from '../../common/parser/getDefault'; 5 6 import { getPattern } from '../../common/parser/getPattern'; 6 7 import { getRef } from '../../common/parser/getRef'; 7 - import { getOperationParameterName } from '../../common/parser/operation'; 8 - import { getType } from '../../common/parser/type'; 8 + import { getType, transformTypeKeyName } from '../../common/parser/type'; 9 9 import type { OpenApi } from '../interfaces/OpenApi'; 10 10 import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; 11 11 import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; 12 12 import { getModel } from './getModel'; 13 13 import { isDefinitionNullable } from './inferType'; 14 + import { getParameterSchema } from './parameter'; 14 15 15 16 export const getOperationParameter = ({ 17 + // eslint-disable-next-line @typescript-eslint/no-unused-vars 18 + debug, 16 19 openApi, 17 20 parameter, 18 21 types, 19 22 }: { 23 + debug?: boolean; 20 24 openApi: OpenApi; 21 25 parameter: OpenApiParameter; 22 26 types: Client['types']; 23 27 }): OperationParameter => { 28 + const config = getConfig(); 29 + 24 30 let operationParameter: OperationParameter = { 25 31 $refs: [], 26 32 base: 'unknown', ··· 37 43 isRequired: parameter.required === true, 38 44 link: null, 39 45 mediaType: null, 40 - name: getOperationParameterName(parameter.name), 46 + name: isStandaloneClient(config) 47 + ? parameter.name 48 + : transformTypeKeyName(parameter.name), 41 49 prop: parameter.name, 42 50 properties: [], 43 51 template: null, ··· 61 69 return operationParameter; 62 70 } 63 71 64 - let schema = parameter.schema; 72 + let schema = getParameterSchema(parameter); 65 73 if (schema) { 66 74 if (schema.$ref?.startsWith('#/components/parameters/')) { 67 75 schema = getRef<OpenApiSchema>(openApi, schema); 68 76 } 77 + 69 78 if (schema.$ref) { 70 79 const model = getType({ type: schema.$ref }); 71 80 operationParameter.export = 'reference'; ··· 79 88 ]; 80 89 operationParameter.default = getDefault(schema); 81 90 return operationParameter; 82 - } else { 83 - const model = getModel({ definition: schema, openApi, types }); 84 - operationParameter = { 85 - ...operationParameter, 86 - $refs: [...operationParameter.$refs, ...model.$refs], 87 - base: model.base, 88 - enum: [...operationParameter.enum, ...model.enum], 89 - enums: [...operationParameter.enums, ...model.enums], 90 - exclusiveMaximum: model.exclusiveMaximum, 91 - exclusiveMinimum: model.exclusiveMinimum, 92 - export: model.export, 93 - format: model.format, 94 - imports: [...operationParameter.imports, ...model.imports], 95 - isNullable: operationParameter.isNullable || model.isNullable, 96 - isReadOnly: model.isReadOnly, 97 - isRequired: operationParameter.isRequired || model.isRequired, 98 - link: model.link, 99 - maxItems: model.maxItems, 100 - maxLength: model.maxLength, 101 - maxProperties: model.maxProperties, 102 - maximum: model.maximum, 103 - minItems: model.minItems, 104 - minLength: model.minLength, 105 - minProperties: model.minProperties, 106 - minimum: model.minimum, 107 - multipleOf: model.multipleOf, 108 - pattern: getPattern(model.pattern), 109 - properties: [...operationParameter.properties, ...model.properties], 110 - template: model.template, 111 - type: model.type, 112 - uniqueItems: model.uniqueItems, 113 - }; 114 - if ( 115 - (operationParameter.enum.length || operationParameter.enums.length) && 116 - !operationParameter.meta 117 - ) { 118 - operationParameter.meta = enumMeta(operationParameter); 119 - } 120 - operationParameter.default = model.default; 121 - return operationParameter; 91 + } 92 + 93 + const model = getModel({ definition: schema, openApi, types }); 94 + operationParameter = { 95 + ...operationParameter, 96 + $refs: [...operationParameter.$refs, ...model.$refs], 97 + base: model.base, 98 + enum: [...operationParameter.enum, ...model.enum], 99 + enums: [...operationParameter.enums, ...model.enums], 100 + exclusiveMaximum: model.exclusiveMaximum, 101 + exclusiveMinimum: model.exclusiveMinimum, 102 + export: model.export, 103 + format: model.format, 104 + imports: [...operationParameter.imports, ...model.imports], 105 + isNullable: operationParameter.isNullable || model.isNullable, 106 + isReadOnly: model.isReadOnly, 107 + isRequired: operationParameter.isRequired || model.isRequired, 108 + link: model.link, 109 + maxItems: model.maxItems, 110 + maxLength: model.maxLength, 111 + maxProperties: model.maxProperties, 112 + maximum: model.maximum, 113 + minItems: model.minItems, 114 + minLength: model.minLength, 115 + minProperties: model.minProperties, 116 + minimum: model.minimum, 117 + multipleOf: model.multipleOf, 118 + pattern: getPattern(model.pattern), 119 + properties: [...operationParameter.properties, ...model.properties], 120 + template: model.template, 121 + type: model.type, 122 + uniqueItems: model.uniqueItems, 123 + }; 124 + if ( 125 + (operationParameter.enum.length || operationParameter.enums.length) && 126 + !operationParameter.meta 127 + ) { 128 + operationParameter.meta = enumMeta(operationParameter); 122 129 } 130 + operationParameter.default = model.default; 131 + return operationParameter; 123 132 } 124 133 125 134 return operationParameter;
+8 -4
packages/openapi-ts/src/openApi/v3/parser/getOperationParameters.ts
··· 8 8 const allowedIn = ['cookie', 'formData', 'header', 'path', 'query'] as const; 9 9 10 10 export const getOperationParameters = ({ 11 + debug, 11 12 openApi, 12 13 parameters, 13 14 types, 14 15 }: { 16 + debug?: boolean; 15 17 openApi: OpenApi; 16 18 parameters: OpenApiParameter[]; 17 19 types: Client['types']; ··· 34 36 parameterOrReference, 35 37 ); 36 38 const parameter = getOperationParameter({ 39 + debug, 37 40 openApi, 38 41 parameter: parameterDef, 39 42 types, 40 43 }); 41 44 42 - const defIn = parameterDef.in as (typeof allowedIn)[number]; 43 - 44 45 // ignore the "api-version" param since we do not want to add it 45 46 // as the first/default parameter for each of the service calls 46 - if (parameter.prop === 'api-version' || !allowedIn.includes(defIn)) { 47 + if ( 48 + parameter.prop === 'api-version' || 49 + !allowedIn.includes(parameterDef.in) 50 + ) { 47 51 return; 48 52 } 49 53 50 - switch (defIn) { 54 + switch (parameterDef.in) { 51 55 case 'cookie': 52 56 operationParameters.parametersCookie = [ 53 57 ...operationParameters.parametersCookie,
+47 -41
packages/openapi-ts/src/openApi/v3/parser/getOperationResponse.ts
··· 17 17 }: { 18 18 openApi: OpenApi; 19 19 response: OpenApiResponse; 20 - code: number | 'default'; 20 + code: OperationResponse['code']; 21 21 types: Client['types']; 22 22 }): OperationResponse => { 23 23 const operationResponse: OperationResponse = { ··· 47 47 if (content.schema.$ref?.startsWith('#/components/responses/')) { 48 48 content.schema = getRef<OpenApiSchema>(openApi, content.schema); 49 49 } 50 + 50 51 if (content.schema.$ref) { 51 52 const model = getType({ type: content.schema.$ref }); 52 53 operationResponse.base = model.base; ··· 59 60 operationResponse.template = model.template; 60 61 operationResponse.type = model.type; 61 62 return operationResponse; 62 - } else { 63 - const model = getModel({ definition: content.schema, openApi, types }); 64 - operationResponse.export = model.export; 65 - operationResponse.type = model.type; 66 - operationResponse.base = model.base; 67 - operationResponse.template = model.template; 68 - operationResponse.link = model.link; 69 - operationResponse.isReadOnly = model.isReadOnly; 70 - operationResponse.isRequired = model.isRequired; 71 - operationResponse.isNullable = model.isNullable; 72 - operationResponse.format = model.format; 73 - operationResponse.maximum = model.maximum; 74 - operationResponse.exclusiveMaximum = model.exclusiveMaximum; 75 - operationResponse.minimum = model.minimum; 76 - operationResponse.exclusiveMinimum = model.exclusiveMinimum; 77 - operationResponse.multipleOf = model.multipleOf; 78 - operationResponse.maxLength = model.maxLength; 79 - operationResponse.minLength = model.minLength; 80 - operationResponse.maxItems = model.maxItems; 81 - operationResponse.minItems = model.minItems; 82 - operationResponse.uniqueItems = model.uniqueItems; 83 - operationResponse.maxProperties = model.maxProperties; 84 - operationResponse.minProperties = model.minProperties; 85 - operationResponse.pattern = getPattern(model.pattern); 86 - operationResponse.$refs = [...operationResponse.$refs, ...model.$refs]; 87 - operationResponse.imports = [ 88 - ...operationResponse.imports, 89 - ...model.imports, 90 - ]; 91 - operationResponse.enum.push(...model.enum); 92 - operationResponse.enums.push(...model.enums); 93 - operationResponse.properties.push(...model.properties); 94 - return operationResponse; 95 63 } 64 + 65 + const model = getModel({ definition: content.schema, openApi, types }); 66 + operationResponse.export = model.export; 67 + operationResponse.type = model.type; 68 + operationResponse.base = model.base; 69 + operationResponse.template = model.template; 70 + operationResponse.link = model.link; 71 + operationResponse.isReadOnly = model.isReadOnly; 72 + operationResponse.isRequired = model.isRequired; 73 + operationResponse.isNullable = model.isNullable; 74 + operationResponse.format = model.format; 75 + operationResponse.maximum = model.maximum; 76 + operationResponse.exclusiveMaximum = model.exclusiveMaximum; 77 + operationResponse.minimum = model.minimum; 78 + operationResponse.exclusiveMinimum = model.exclusiveMinimum; 79 + operationResponse.multipleOf = model.multipleOf; 80 + operationResponse.maxLength = model.maxLength; 81 + operationResponse.minLength = model.minLength; 82 + operationResponse.maxItems = model.maxItems; 83 + operationResponse.minItems = model.minItems; 84 + operationResponse.uniqueItems = model.uniqueItems; 85 + operationResponse.maxProperties = model.maxProperties; 86 + operationResponse.minProperties = model.minProperties; 87 + operationResponse.pattern = getPattern(model.pattern); 88 + operationResponse.$refs = [...operationResponse.$refs, ...model.$refs]; 89 + operationResponse.imports = [ 90 + ...operationResponse.imports, 91 + ...model.imports, 92 + ]; 93 + operationResponse.enum = [...operationResponse.enum, ...model.enum]; 94 + operationResponse.enums = [...operationResponse.enums, ...model.enums]; 95 + operationResponse.properties = [ 96 + ...operationResponse.properties, 97 + ...model.properties, 98 + ]; 99 + return operationResponse; 96 100 } 97 101 } 98 102 99 103 // We support basic properties from response headers, since both 100 104 // fetch and XHR client just support string types. 101 - Object.keys(response.headers ?? {}).forEach((name) => { 102 - operationResponse.in = 'header'; 103 - operationResponse.name = name; 104 - operationResponse.type = 'string'; 105 - operationResponse.base = 'string'; 106 - return operationResponse; 107 - }); 105 + if (response.headers) { 106 + for (const name in response.headers) { 107 + operationResponse.in = 'header'; 108 + operationResponse.name = name; 109 + operationResponse.type = 'string'; 110 + operationResponse.base = 'string'; 111 + return operationResponse; 112 + } 113 + } 108 114 109 115 return operationResponse; 110 116 };
+15 -16
packages/openapi-ts/src/openApi/v3/parser/getOperationResponses.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 2 import type { OperationResponse } from '../../common/interfaces/client'; 3 3 import { getRef } from '../../common/parser/getRef'; 4 - import { getOperationResponseCode } from '../../common/parser/operation'; 4 + import { parseResponseStatusCode } from '../../common/parser/operation'; 5 5 import type { OpenApi } from '../interfaces/OpenApi'; 6 6 import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; 7 7 import type { OpenApiResponses } from '../interfaces/OpenApiResponses'; ··· 16 16 responses: OpenApiResponses; 17 17 types: Client['types']; 18 18 }): OperationResponse[] => { 19 - const operationResponses: OperationResponse[] = []; 19 + let operationResponses: OperationResponse[] = []; 20 20 21 - // Iterate over each response code and get the 22 - // status code and response message 23 - Object.entries(responses).forEach(([code, responseOrReference]) => { 21 + Object.entries(responses).forEach(([responseCode, responseOrReference]) => { 22 + const code = parseResponseStatusCode(responseCode); 23 + if (!code) { 24 + return; 25 + } 26 + 24 27 const response = getRef<OpenApiResponse>(openApi, responseOrReference); 25 - const responseCode = getOperationResponseCode(code); 26 - 27 - if (responseCode) { 28 - const operationResponse = getOperationResponse({ 29 - code: responseCode, 30 - openApi, 31 - response, 32 - types, 33 - }); 34 - operationResponses.push(operationResponse); 35 - } 28 + const operationResponse = getOperationResponse({ 29 + code, 30 + openApi, 31 + response, 32 + types, 33 + }); 34 + operationResponses = [...operationResponses, operationResponse]; 36 35 }); 37 36 38 37 // Sort the responses to 2xx success codes come before 4xx and 5xx error codes.
+2 -2
packages/openapi-ts/src/openApi/v3/parser/getServices.ts
··· 38 38 39 39 for (const url in openApi.paths) { 40 40 const path = openApi.paths[url]; 41 - const pathParams = getOperationParameters({ 41 + const pathParameters = getOperationParameters({ 42 42 openApi, 43 43 parameters: path.parameters ?? [], 44 44 types, ··· 57 57 method, 58 58 op, 59 59 openApi, 60 - pathParams, 60 + pathParams: pathParameters, 61 61 tag, 62 62 types, 63 63 url,
+7 -6
packages/openapi-ts/src/openApi/v3/parser/operation.ts
··· 1 1 import type { Client } from '../../../types/client'; 2 - import { getOperationResults } from '../../../utils/operation'; 3 2 import type { 4 3 Operation, 5 4 OperationParameter, ··· 7 6 } from '../../common/interfaces/client'; 8 7 import { getRef } from '../../common/parser/getRef'; 9 8 import { 10 - getOperationErrors, 9 + getErrorResponses, 11 10 getOperationName, 12 11 getOperationResponseHeader, 12 + getSuccessResponses, 13 13 } from '../../common/parser/operation'; 14 14 import { getServiceName } from '../../common/parser/service'; 15 15 import { toSortedByRequired } from '../../common/parser/sort'; ··· 134 134 responses: op.responses, 135 135 types, 136 136 }); 137 - const operationResults = getOperationResults(operationResponses); 138 - operation.errors = getOperationErrors(operationResponses); 139 - operation.responseHeader = getOperationResponseHeader(operationResults); 137 + operation.errors = getErrorResponses(operationResponses); 138 + 139 + const successResponses = getSuccessResponses(operationResponses); 140 + operation.responseHeader = getOperationResponseHeader(successResponses); 140 141 141 - operationResults.forEach((operationResult) => { 142 + successResponses.forEach((operationResult) => { 142 143 operation.$refs = [...operation.$refs, ...operationResult.$refs]; 143 144 operation.imports = [...operation.imports, ...operationResult.imports]; 144 145 operation.results = [...operation.results, operationResult];
+23
packages/openapi-ts/src/openApi/v3/parser/parameter.ts
··· 1 + import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; 2 + import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; 3 + 4 + export const getParameterSchema = ( 5 + definition: OpenApiParameter, 6 + ): OpenApiSchema | undefined => { 7 + if (definition.schema) { 8 + return definition.schema; 9 + } 10 + 11 + if (definition.content) { 12 + // treat every media type the same for now, types should be modified to 13 + // preserve this data so client knows which headers to use and how to 14 + // parse response bodies 15 + const contents = Object.entries(definition.content); 16 + for (const [key, mediaTypeObject] of contents) { 17 + if (mediaTypeObject.schema) { 18 + const mediaType = key as keyof Required<OpenApiParameter>['content']; 19 + return definition.content[mediaType].schema; 20 + } 21 + } 22 + } 23 + };
+1 -1
packages/openapi-ts/src/templates/core/ApiRequestOptions.hbs
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/src/templates/core/OpenAPI.hbs
··· 20 20 this._fns = []; 21 21 } 22 22 23 - eject(fn: Middleware<T>) { 23 + eject(fn: Middleware<T>): void { 24 24 const index = this._fns.indexOf(fn); 25 25 if (index !== -1) { 26 26 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 27 27 } 28 28 } 29 29 30 - use(fn: Middleware<T>) { 30 + use(fn: Middleware<T>): void { 31 31 this._fns = [...this._fns, fn]; 32 32 } 33 33 }
+3
packages/openapi-ts/src/utils/__tests__/sort.spec.ts
··· 26 26 enums: [], 27 27 export: 'interface', 28 28 imports: [], 29 + in: '', 29 30 isDefinition: true, 30 31 isNullable: false, 31 32 isReadOnly: false, ··· 44 45 enums: [], 45 46 export: 'interface', 46 47 imports: [], 48 + in: '', 47 49 isDefinition: true, 48 50 isNullable: false, 49 51 isReadOnly: false, ··· 62 64 enums: [], 63 65 export: 'interface', 64 66 imports: [], 67 + in: '', 65 68 isDefinition: true, 66 69 isNullable: false, 67 70 isReadOnly: false,
-32
packages/openapi-ts/src/utils/operation.ts
··· 1 - import type { 2 - Model, 3 - OperationResponse, 4 - } from '../openApi/common/interfaces/client'; 5 - 6 - const areEqual = (a: Model, b: Model): boolean => { 7 - const equal = 8 - a.type === b.type && a.base === b.base && a.template === b.template; 9 - if (equal && a.link && b.link) { 10 - return areEqual(a.link, b.link); 11 - } 12 - return equal; 13 - }; 14 - 15 - export const getOperationResults = ( 16 - operationResponses: OperationResponse[], 17 - ): OperationResponse[] => { 18 - const operationResults: OperationResponse[] = []; 19 - 20 - // Filter out success response codes 21 - operationResponses.forEach((operationResponse) => { 22 - const { code } = operationResponse; 23 - if (code && (code === 'default' || (code >= 200 && code < 300))) { 24 - operationResults.push(operationResponse); 25 - } 26 - }); 27 - 28 - return operationResults.filter( 29 - (operationResult, index, arr) => 30 - arr.findIndex((item) => areEqual(item, operationResult)) === index, 31 - ); 32 - };
+1
packages/openapi-ts/src/utils/write/__tests__/models.spec.ts
··· 39 39 enums: [], 40 40 export: 'interface', 41 41 imports: [], 42 + in: '', 42 43 isDefinition: true, 43 44 isNullable: false, 44 45 isReadOnly: false,
+15 -3
packages/openapi-ts/src/utils/write/type.ts
··· 1 1 import { compiler, type Property, type TypeNode } from '../../compiler'; 2 2 import type { Model } from '../../openApi'; 3 + import { transformTypeKeyName } from '../../openApi/common/parser/type'; 3 4 import type { Client } from '../../types/client'; 4 - import { getConfig } from '../config'; 5 + import { getConfig, isStandaloneClient } from '../config'; 5 6 import { enumValue } from '../enum'; 6 - import { escapeComment } from '../escape'; 7 + import { escapeComment, escapeName, unescapeName } from '../escape'; 7 8 import { unique } from '../unique'; 8 9 9 10 const base = (model: Model) => { ··· 84 85 return compiler.typedef.basic('unknown'); 85 86 } 86 87 88 + const config = getConfig(); 89 + 90 + const isStandalone = isStandaloneClient(config); 91 + 87 92 const properties: Property[] = model.properties.map((property) => { 88 93 let maybeRequired = property.isRequired ? '' : '?'; 89 94 let value = toType(property); ··· 99 104 ], 100 105 isReadOnly: property.isReadOnly, 101 106 isRequired: maybeRequired === '', 102 - name: property.name, 107 + name: isStandalone 108 + ? escapeName(unescapeName(transformTypeKeyName(property.name))) 109 + : // special test for 1XX status codes. We need a more robust system 110 + // for escaping values depending on context in which they're printed, 111 + // but since this works for standalone client, it's not worth it right now 112 + /^\dXX$/.test(property.name) 113 + ? escapeName(property.name) 114 + : property.name, 103 115 type: value, 104 116 }; 105 117 });
+160 -163
packages/openapi-ts/src/utils/write/types.ts
··· 6 6 } from '../../compiler'; 7 7 import type { Model, OperationParameter } from '../../openApi'; 8 8 import type { Method } from '../../openApi/common/interfaces/client'; 9 + import { 10 + getErrorResponses, 11 + getSuccessResponses, 12 + } from '../../openApi/common/parser/operation'; 9 13 import type { Client } from '../../types/client'; 10 14 import { getConfig, isStandaloneClient } from '../config'; 11 15 import { enumEntry, enumUnionType } from '../enum'; ··· 30 34 enums: [], 31 35 export: 'interface', 32 36 imports: [], 37 + in: '', 33 38 isDefinition: false, 34 39 isNullable: false, 35 40 isReadOnly: false, ··· 220 225 const hasRes = operation.results.length; 221 226 const hasErr = operation.errors.length; 222 227 223 - if (hasReq || hasRes || hasErr) { 224 - if (!pathsMap[operation.path]) { 225 - pathsMap[operation.path] = {}; 226 - } 227 - const pathMap = pathsMap[operation.path]!; 228 + if (!hasReq && !hasRes && !hasErr) { 229 + return; 230 + } 231 + 232 + if (!pathsMap[operation.path]) { 233 + pathsMap[operation.path] = {}; 234 + } 235 + const pathMap = pathsMap[operation.path]!; 236 + 237 + if (!pathMap[operation.method]) { 238 + pathMap[operation.method] = {}; 239 + } 240 + const methodMap = pathMap[operation.method]!; 241 + methodMap.$ref = operation.name; 242 + 243 + if (hasReq) { 244 + const bodyParameter = operation.parameters 245 + .filter((parameter) => parameter.in === 'body') 246 + .sort(sorterByName)[0]; 247 + const bodyParameters: OperationParameter = { 248 + ...emptyModel, 249 + ...bodyParameter, 250 + in: 'body', 251 + isRequired: bodyParameter ? bodyParameter.isRequired : false, 252 + // mediaType: null, 253 + name: 'body', 254 + prop: 'body', 255 + }; 256 + const headerParameters: OperationParameter = { 257 + ...emptyModel, 258 + in: 'header', 259 + isRequired: operation.parameters 260 + .filter((parameter) => parameter.in === 'header') 261 + .some((parameter) => parameter.isRequired), 262 + mediaType: null, 263 + name: isStandalone ? 'headers' : 'header', 264 + prop: isStandalone ? 'headers' : 'header', 265 + properties: operation.parameters 266 + .filter((parameter) => parameter.in === 'header') 267 + .sort(sorterByName), 268 + }; 269 + const pathParameters: OperationParameter = { 270 + ...emptyModel, 271 + in: 'path', 272 + isRequired: operation.parameters 273 + .filter((parameter) => parameter.in === 'path') 274 + .some((parameter) => parameter.isRequired), 275 + mediaType: null, 276 + name: 'path', 277 + prop: 'path', 278 + properties: operation.parameters 279 + .filter((parameter) => parameter.in === 'path') 280 + .sort(sorterByName), 281 + }; 282 + const queryParameters: OperationParameter = { 283 + ...emptyModel, 284 + in: 'query', 285 + isRequired: operation.parameters 286 + .filter((parameter) => parameter.in === 'query') 287 + .some((parameter) => parameter.isRequired), 288 + mediaType: null, 289 + name: 'query', 290 + prop: 'query', 291 + properties: operation.parameters 292 + .filter((parameter) => parameter.in === 'query') 293 + .sort(sorterByName), 294 + }; 295 + const operationProperties = isStandalone 296 + ? [ 297 + bodyParameters, 298 + headerParameters, 299 + pathParameters, 300 + queryParameters, 301 + ].filter( 302 + (param) => 303 + param.properties.length || 304 + param.$refs.length || 305 + param.mediaType, 306 + ) 307 + : sortByName([...operation.parameters]); 228 308 229 - if (!pathMap[operation.method]) { 230 - pathMap[operation.method] = {}; 231 - } 232 - const methodMap = pathMap[operation.method]!; 233 - methodMap.$ref = operation.name; 309 + methodMap.req = operationProperties; 234 310 235 - if (hasReq) { 236 - const bodyParameter = operation.parameters 237 - .filter((parameter) => parameter.in === 'body') 238 - .sort(sorterByName)[0]; 239 - const bodyParameters: OperationParameter = { 240 - ...emptyModel, 241 - ...bodyParameter, 242 - in: 'body', 243 - isRequired: bodyParameter ? bodyParameter.isRequired : false, 244 - // mediaType: null, 245 - name: 'body', 246 - prop: 'body', 247 - }; 248 - const headerParameters: OperationParameter = { 249 - ...emptyModel, 250 - in: 'header', 251 - isRequired: operation.parameters 252 - .filter((parameter) => parameter.in === 'header') 253 - .some((parameter) => parameter.isRequired), 254 - mediaType: null, 255 - name: isStandalone ? 'headers' : 'header', 256 - prop: isStandalone ? 'headers' : 'header', 257 - properties: operation.parameters 258 - .filter((parameter) => parameter.in === 'header') 259 - .sort(sorterByName), 260 - }; 261 - const pathParameters: OperationParameter = { 311 + // create type export for operation data 312 + generateType({ 313 + client, 314 + meta: { 315 + // TODO: this should be exact ref to operation for consistency, 316 + // but name should work too as operation ID is unique 317 + $ref: operation.name, 318 + name: operation.name, 319 + }, 320 + nameTransformer: operationDataTypeName, 321 + onNode, 322 + type: toType({ 262 323 ...emptyModel, 263 - in: 'path', 264 - isRequired: operation.parameters 265 - .filter((parameter) => parameter.in === 'path') 266 - .some((parameter) => parameter.isRequired), 267 - mediaType: null, 268 - name: 'path', 269 - prop: 'path', 270 - properties: operation.parameters 271 - .filter((parameter) => parameter.in === 'path') 272 - .sort(sorterByName), 273 - }; 274 - const queryParameters: OperationParameter = { 275 - ...emptyModel, 276 - in: 'query', 277 - isRequired: operation.parameters 278 - .filter((parameter) => parameter.in === 'query') 279 - .some((parameter) => parameter.isRequired), 280 - mediaType: null, 281 - name: 'query', 282 - prop: 'query', 283 - properties: operation.parameters 284 - .filter((parameter) => parameter.in === 'query') 285 - .sort(sorterByName), 286 - }; 287 - const operationProperties = isStandalone 288 - ? [ 289 - bodyParameters, 290 - headerParameters, 291 - pathParameters, 292 - queryParameters, 293 - ].filter( 294 - (param) => 295 - param.properties.length || 296 - param.$refs.length || 297 - param.mediaType, 298 - ) 299 - : sortByName([...operation.parameters]); 324 + isRequired: true, 325 + properties: operationProperties, 326 + }), 327 + }); 328 + } 300 329 301 - methodMap.req = operationProperties; 330 + if (hasRes) { 331 + if (!methodMap.res) { 332 + methodMap.res = {}; 333 + } 302 334 303 - // create type export for operation data 304 - generateType({ 305 - client, 306 - meta: { 307 - // TODO: this should be exact ref to operation for consistency, 308 - // but name should work too as operation ID is unique 309 - $ref: operation.name, 310 - name: operation.name, 311 - }, 312 - nameTransformer: operationDataTypeName, 313 - onNode, 314 - type: toType({ 315 - ...emptyModel, 316 - isRequired: true, 317 - properties: operationProperties, 318 - }), 319 - }); 335 + if (Array.isArray(methodMap.res)) { 336 + return; 320 337 } 321 338 322 - if (hasRes) { 323 - if (!methodMap.res) { 324 - methodMap.res = {}; 325 - } 326 - 327 - if (Array.isArray(methodMap.res)) { 328 - return; 329 - } 339 + operation.results.forEach((result) => { 340 + methodMap.res![result.code] = result; 341 + }); 330 342 331 - operation.results.forEach((result) => { 332 - methodMap.res![result.code] = result; 333 - }); 343 + // create type export for operation response 344 + generateType({ 345 + client, 346 + meta: { 347 + // TODO: this should be exact ref to operation for consistency, 348 + // but name should work too as operation ID is unique 349 + $ref: operation.name, 350 + name: operation.name, 351 + }, 352 + nameTransformer: operationResponseTypeName, 353 + onNode, 354 + type: toType({ 355 + ...emptyModel, 356 + export: 'any-of', 357 + isRequired: true, 358 + properties: getSuccessResponses(operation.results), 359 + }), 360 + }); 334 361 335 - // create type export for operation response 362 + if (isStandaloneClient(config)) { 363 + const errorResults = getErrorResponses(operation.results); 364 + // create type export for operation error 336 365 generateType({ 337 366 client, 338 367 meta: { ··· 341 370 $ref: operation.name, 342 371 name: operation.name, 343 372 }, 344 - nameTransformer: operationResponseTypeName, 373 + nameTransformer: operationErrorTypeName, 345 374 onNode, 346 - type: toType({ 347 - ...emptyModel, 348 - export: 'any-of', 349 - isRequired: true, 350 - // TODO: improve response type detection 351 - properties: operation.results.filter( 352 - (result) => 353 - result.code === 'default' || 354 - (result.code >= 200 && result.code < 300), 355 - ), 356 - }), 375 + type: toType( 376 + errorResults.length 377 + ? { 378 + ...emptyModel, 379 + export: 'all-of', 380 + isRequired: true, 381 + properties: errorResults, 382 + } 383 + : { 384 + ...emptyModel, 385 + base: 'unknown', 386 + isRequired: true, 387 + type: 'unknown', 388 + }, 389 + ), 357 390 }); 358 - 359 - if (isStandaloneClient(config)) { 360 - // TODO: improve error type detection 361 - const errorResults = operation.errors.filter( 362 - (result) => 363 - result.code === 'default' || 364 - (result.code >= 400 && result.code < 600), 365 - ); 366 - // create type export for operation error 367 - generateType({ 368 - client, 369 - meta: { 370 - // TODO: this should be exact ref to operation for consistency, 371 - // but name should work too as operation ID is unique 372 - $ref: operation.name, 373 - name: operation.name, 374 - }, 375 - nameTransformer: operationErrorTypeName, 376 - onNode, 377 - type: toType( 378 - errorResults.length 379 - ? { 380 - ...emptyModel, 381 - export: 'all-of', 382 - isRequired: true, 383 - properties: errorResults, 384 - } 385 - : { 386 - ...emptyModel, 387 - base: 'unknown', 388 - isRequired: true, 389 - type: 'unknown', 390 - }, 391 - ), 392 - }); 393 - } 394 391 } 395 - 396 - if (hasErr) { 397 - if (!methodMap.res) { 398 - methodMap.res = {}; 399 - } 392 + } 400 393 401 - if (Array.isArray(methodMap.res)) { 402 - return; 403 - } 394 + if (hasErr) { 395 + if (!methodMap.res) { 396 + methodMap.res = {}; 397 + } 404 398 405 - operation.errors.forEach((error) => { 406 - methodMap.res![error.code] = error; 407 - }); 399 + if (Array.isArray(methodMap.res)) { 400 + return; 408 401 } 402 + 403 + operation.errors.forEach((error) => { 404 + methodMap.res![error.code] = error; 405 + }); 409 406 } 410 407 }); 411 408 });
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v2/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v2/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+4 -3
packages/openapi-ts/test/__snapshots__/test/generated/v2/services.gen.ts.snap
··· 371 371 errors: { 372 372 500: 'Message for 500 error', 373 373 501: 'Message for 501 error', 374 - 502: 'Message for 502 error' 374 + 502: 'Message for 502 error', 375 + default: 'Message for default response' 375 376 } 376 377 }); 377 378 } ··· 380 381 * @returns unknown Message for 200 response 381 382 * @returns ModelThatExtends Message for 201 response 382 383 * @returns ModelThatExtendsExtends Message for 202 response 383 - * @returns ModelWithString Message for default response 384 384 * @throws ApiError 385 385 */ 386 386 public static callWithResponses(): CancelablePromise<CallWithResponsesResponse> { ··· 390 390 errors: { 391 391 500: 'Message for 500 error', 392 392 501: 'Message for 501 error', 393 - 502: 'Message for 502 error' 393 + 502: 'Message for 502 error', 394 + default: 'Message for default response' 394 395 } 395 396 }); 396 397 }
+5 -1
packages/openapi-ts/test/__snapshots__/test/generated/v2/types.gen.ts.snap
··· 619 619 readonly '@namespace.string'?: string; 620 620 readonly '@namespace.integer'?: number; 621 621 readonly value?: Array<ModelWithString>; 622 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 622 + } | ModelThatExtends | ModelThatExtendsExtends; 623 623 624 624 export type DummyAResponse = void; 625 625 ··· 804 804 * Message for 502 error 805 805 */ 806 806 502: ModelWithStringError; 807 + /** 808 + * Message for default response 809 + */ 810 + default: ModelWithString; 807 811 }; 808 812 }; 809 813 put: {
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+14 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3/services.gen.ts.snap
··· 120 120 export class ParametersService { 121 121 /** 122 122 * @param data The data for the request. 123 - * @param data.foo foo in method 124 - * @param data.bar bar in method 123 + * @param data.fooParam foo in method 124 + * @param data.barParam bar in method 125 + * @param data.xFooBar Parameter with illegal characters 125 126 * @throws ApiError 126 127 */ 127 128 public static deleteFoo(data: DeleteFooData3): CancelablePromise<void> { 128 129 return __request(OpenAPI, { 129 130 method: 'DELETE', 130 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 131 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 131 132 path: { 132 - foo: data.foo, 133 - bar: data.bar 133 + foo_param: data.fooParam, 134 + BarParam: data.barParam 135 + }, 136 + headers: { 137 + 'x-Foo-Bar': data.xFooBar 134 138 } 135 139 }); 136 140 } ··· 517 521 /** 518 522 * @returns unknown Message for 200 response 519 523 * @returns ModelWithString Message for 201 response 520 - * @returns ModelWithBoolean Message for default response 521 524 * @throws ApiError 522 525 */ 523 526 public static callWithDuplicateResponses(): CancelablePromise<CallWithDuplicateResponsesResponse> { ··· 527 530 errors: { 528 531 500: 'Message for 500 error', 529 532 501: 'Message for 501 error', 530 - 502: 'Message for 502 error' 533 + 502: 'Message for 502 error', 534 + '4XX': 'Message for 4XX errors', 535 + default: 'Message for default response' 531 536 } 532 537 }); 533 538 } ··· 536 541 * @returns unknown Message for 200 response 537 542 * @returns ModelThatExtends Message for 201 response 538 543 * @returns ModelThatExtendsExtends Message for 202 response 539 - * @returns ModelWithString Message for default response 540 544 * @throws ApiError 541 545 */ 542 546 public static callWithResponses(): CancelablePromise<CallWithResponsesResponse> { ··· 546 550 errors: { 547 551 500: 'Message for 500 error', 548 552 501: 'Message for 501 error', 549 - 502: 'Message for 502 error' 553 + 502: 'Message for 502 error', 554 + default: 'Message for default response' 550 555 } 551 556 }); 552 557 }
+14 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3/types.gen.ts.snap
··· 985 985 /** 986 986 * Parameter with illegal characters 987 987 */ 988 - export type Parameterx_Foo_Bar = string; 988 + export type Parameterx_Foo_Bar = ModelWithString; 989 989 990 990 export type PostServiceWithEmptyTagData = { 991 991 requestBody: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; ··· 999 999 /** 1000 1000 * bar in method 1001 1001 */ 1002 - bar: string; 1002 + barParam: string; 1003 1003 /** 1004 1004 * foo in method 1005 1005 */ 1006 - foo: string; 1006 + fooParam: string; 1007 + /** 1008 + * Parameter with illegal characters 1009 + */ 1010 + xFooBar: ModelWithString; 1007 1011 }; 1008 1012 1009 1013 export type CallWithParametersData = { ··· 1243 1247 1244 1248 export type CallWithResponseResponse = ModelWithString; 1245 1249 1246 - export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString | ModelWithBoolean; 1250 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1247 1251 1248 1252 export type CallWithResponsesResponse = { 1249 1253 readonly '@namespace.string'?: string; 1250 1254 readonly '@namespace.integer'?: number; 1251 1255 readonly value?: Array<ModelWithString>; 1252 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 1256 + } | ModelThatExtends | ModelThatExtendsExtends; 1253 1257 1254 1258 export type DummyAResponse = void; 1255 1259 ··· 1428 1432 }; 1429 1433 }; 1430 1434 }; 1431 - '/api/v{api-version}/foo/{foo}/bar/{bar}': { 1435 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1432 1436 delete: { 1433 1437 req: DeleteFooData3; 1434 1438 }; ··· 1534 1538 * Message for 502 error 1535 1539 */ 1536 1540 502: ModelWithStringError; 1541 + /** 1542 + * Message for 4XX errors 1543 + */ 1544 + '4XX': DictionaryWithArray; 1537 1545 /** 1538 1546 * Message for default response 1539 1547 */
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_angular/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_angular/core/OpenAPI.ts.snap
··· 12 12 this._fns = []; 13 13 } 14 14 15 - eject(fn: Middleware<T>) { 15 + eject(fn: Middleware<T>): void { 16 16 const index = this._fns.indexOf(fn); 17 17 if (index !== -1) { 18 18 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 19 19 } 20 20 } 21 21 22 - use(fn: Middleware<T>) { 22 + use(fn: Middleware<T>): void { 23 23 this._fns = [...this._fns, fn]; 24 24 } 25 25 }
+14 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_angular/services.gen.ts.snap
··· 137 137 138 138 /** 139 139 * @param data The data for the request. 140 - * @param data.foo foo in method 141 - * @param data.bar bar in method 140 + * @param data.fooParam foo in method 141 + * @param data.barParam bar in method 142 + * @param data.xFooBar Parameter with illegal characters 142 143 * @throws ApiError 143 144 */ 144 145 public deleteFoo(data: DeleteFooData3): Observable<void> { 145 146 return __request(OpenAPI, this.http, { 146 147 method: 'DELETE', 147 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 148 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 148 149 path: { 149 - foo: data.foo, 150 - bar: data.bar 150 + foo_param: data.fooParam, 151 + BarParam: data.barParam 152 + }, 153 + headers: { 154 + 'x-Foo-Bar': data.xFooBar 151 155 } 152 156 }); 153 157 } ··· 574 578 /** 575 579 * @returns unknown Message for 200 response 576 580 * @returns ModelWithString Message for 201 response 577 - * @returns ModelWithBoolean Message for default response 578 581 * @throws ApiError 579 582 */ 580 583 public callWithDuplicateResponses(): Observable<CallWithDuplicateResponsesResponse> { ··· 584 587 errors: { 585 588 500: 'Message for 500 error', 586 589 501: 'Message for 501 error', 587 - 502: 'Message for 502 error' 590 + 502: 'Message for 502 error', 591 + '4XX': 'Message for 4XX errors', 592 + default: 'Message for default response' 588 593 } 589 594 }); 590 595 } ··· 593 598 * @returns unknown Message for 200 response 594 599 * @returns ModelThatExtends Message for 201 response 595 600 * @returns ModelThatExtendsExtends Message for 202 response 596 - * @returns ModelWithString Message for default response 597 601 * @throws ApiError 598 602 */ 599 603 public callWithResponses(): Observable<CallWithResponsesResponse> { ··· 603 607 errors: { 604 608 500: 'Message for 500 error', 605 609 501: 'Message for 501 error', 606 - 502: 'Message for 502 error' 610 + 502: 'Message for 502 error', 611 + default: 'Message for default response' 607 612 } 608 613 }); 609 614 }
+14 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_angular/types.gen.ts.snap
··· 862 862 /** 863 863 * Parameter with illegal characters 864 864 */ 865 - export type Parameterx_Foo_Bar = string; 865 + export type Parameterx_Foo_Bar = ModelWithString; 866 866 867 867 export type PostServiceWithEmptyTagData = { 868 868 requestBody: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; ··· 876 876 /** 877 877 * bar in method 878 878 */ 879 - bar: string; 879 + barParam: string; 880 880 /** 881 881 * foo in method 882 882 */ 883 - foo: string; 883 + fooParam: string; 884 + /** 885 + * Parameter with illegal characters 886 + */ 887 + xFooBar: ModelWithString; 884 888 }; 885 889 886 890 export type CallWithParametersData = { ··· 1120 1124 1121 1125 export type CallWithResponseResponse = ModelWithString; 1122 1126 1123 - export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString | ModelWithBoolean; 1127 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1124 1128 1125 1129 export type CallWithResponsesResponse = { 1126 1130 readonly '@namespace.string'?: string; 1127 1131 readonly '@namespace.integer'?: number; 1128 1132 readonly value?: Array<ModelWithString>; 1129 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 1133 + } | ModelThatExtends | ModelThatExtendsExtends; 1130 1134 1131 1135 export type DummyAResponse = void; 1132 1136 ··· 1305 1309 }; 1306 1310 }; 1307 1311 }; 1308 - '/api/v{api-version}/foo/{foo}/bar/{bar}': { 1312 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1309 1313 delete: { 1310 1314 req: DeleteFooData3; 1311 1315 }; ··· 1411 1415 * Message for 502 error 1412 1416 */ 1413 1417 502: ModelWithStringError; 1418 + /** 1419 + * Message for 4XX errors 1420 + */ 1421 + '4XX': DictionaryWithArray; 1414 1422 /** 1415 1423 * Message for default response 1416 1424 */
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_axios/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_axios/core/OpenAPI.ts.snap
··· 12 12 this._fns = []; 13 13 } 14 14 15 - eject(fn: Middleware<T>) { 15 + eject(fn: Middleware<T>): void { 16 16 const index = this._fns.indexOf(fn); 17 17 if (index !== -1) { 18 18 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 19 19 } 20 20 } 21 21 22 - use(fn: Middleware<T>) { 22 + use(fn: Middleware<T>): void { 23 23 this._fns = [...this._fns, fn]; 24 24 } 25 25 }
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_client/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_client/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+14 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_client/services.gen.ts.snap
··· 125 125 126 126 /** 127 127 * @param data The data for the request. 128 - * @param data.foo foo in method 129 - * @param data.bar bar in method 128 + * @param data.fooParam foo in method 129 + * @param data.barParam bar in method 130 + * @param data.xFooBar Parameter with illegal characters 130 131 * @throws ApiError 131 132 */ 132 133 public deleteFoo(data: DeleteFooData3): CancelablePromise<void> { 133 134 return this.httpRequest.request({ 134 135 method: 'DELETE', 135 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 136 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 136 137 path: { 137 - foo: data.foo, 138 - bar: data.bar 138 + foo_param: data.fooParam, 139 + BarParam: data.barParam 140 + }, 141 + headers: { 142 + 'x-Foo-Bar': data.xFooBar 139 143 } 140 144 }); 141 145 } ··· 538 542 /** 539 543 * @returns unknown Message for 200 response 540 544 * @returns ModelWithString Message for 201 response 541 - * @returns ModelWithBoolean Message for default response 542 545 * @throws ApiError 543 546 */ 544 547 public callWithDuplicateResponses(): CancelablePromise<CallWithDuplicateResponsesResponse> { ··· 548 551 errors: { 549 552 500: 'Message for 500 error', 550 553 501: 'Message for 501 error', 551 - 502: 'Message for 502 error' 554 + 502: 'Message for 502 error', 555 + '4XX': 'Message for 4XX errors', 556 + default: 'Message for default response' 552 557 } 553 558 }); 554 559 } ··· 557 562 * @returns unknown Message for 200 response 558 563 * @returns ModelThatExtends Message for 201 response 559 564 * @returns ModelThatExtendsExtends Message for 202 response 560 - * @returns ModelWithString Message for default response 561 565 * @throws ApiError 562 566 */ 563 567 public callWithResponses(): CancelablePromise<CallWithResponsesResponse> { ··· 567 571 errors: { 568 572 500: 'Message for 500 error', 569 573 501: 'Message for 501 error', 570 - 502: 'Message for 502 error' 574 + 502: 'Message for 502 error', 575 + default: 'Message for default response' 571 576 } 572 577 }); 573 578 }
+14 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_client/types.gen.ts.snap
··· 862 862 /** 863 863 * Parameter with illegal characters 864 864 */ 865 - export type Parameterx_Foo_Bar = string; 865 + export type Parameterx_Foo_Bar = ModelWithString; 866 866 867 867 export type PostServiceWithEmptyTagData = { 868 868 requestBody: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; ··· 876 876 /** 877 877 * bar in method 878 878 */ 879 - bar: string; 879 + barParam: string; 880 880 /** 881 881 * foo in method 882 882 */ 883 - foo: string; 883 + fooParam: string; 884 + /** 885 + * Parameter with illegal characters 886 + */ 887 + xFooBar: ModelWithString; 884 888 }; 885 889 886 890 export type CallWithParametersData = { ··· 1120 1124 1121 1125 export type CallWithResponseResponse = ModelWithString; 1122 1126 1123 - export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString | ModelWithBoolean; 1127 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1124 1128 1125 1129 export type CallWithResponsesResponse = { 1126 1130 readonly '@namespace.string'?: string; 1127 1131 readonly '@namespace.integer'?: number; 1128 1132 readonly value?: Array<ModelWithString>; 1129 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 1133 + } | ModelThatExtends | ModelThatExtendsExtends; 1130 1134 1131 1135 export type DummyAResponse = void; 1132 1136 ··· 1305 1309 }; 1306 1310 }; 1307 1311 }; 1308 - '/api/v{api-version}/foo/{foo}/bar/{bar}': { 1312 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1309 1313 delete: { 1310 1314 req: DeleteFooData3; 1311 1315 }; ··· 1411 1415 * Message for 502 error 1412 1416 */ 1413 1417 502: ModelWithStringError; 1418 + /** 1419 + * Message for 4XX errors 1420 + */ 1421 + '4XX': DictionaryWithArray; 1414 1422 /** 1415 1423 * Message for default response 1416 1424 */
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_enums_typescript/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_enums_typescript/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+14 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_enums_typescript/services.gen.ts.snap
··· 120 120 export class ParametersService { 121 121 /** 122 122 * @param data The data for the request. 123 - * @param data.foo foo in method 124 - * @param data.bar bar in method 123 + * @param data.fooParam foo in method 124 + * @param data.barParam bar in method 125 + * @param data.xFooBar Parameter with illegal characters 125 126 * @throws ApiError 126 127 */ 127 128 public static deleteFoo(data: DeleteFooData3): CancelablePromise<void> { 128 129 return __request(OpenAPI, { 129 130 method: 'DELETE', 130 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 131 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 131 132 path: { 132 - foo: data.foo, 133 - bar: data.bar 133 + foo_param: data.fooParam, 134 + BarParam: data.barParam 135 + }, 136 + headers: { 137 + 'x-Foo-Bar': data.xFooBar 134 138 } 135 139 }); 136 140 } ··· 517 521 /** 518 522 * @returns unknown Message for 200 response 519 523 * @returns ModelWithString Message for 201 response 520 - * @returns ModelWithBoolean Message for default response 521 524 * @throws ApiError 522 525 */ 523 526 public static callWithDuplicateResponses(): CancelablePromise<CallWithDuplicateResponsesResponse> { ··· 527 530 errors: { 528 531 500: 'Message for 500 error', 529 532 501: 'Message for 501 error', 530 - 502: 'Message for 502 error' 533 + 502: 'Message for 502 error', 534 + '4XX': 'Message for 4XX errors', 535 + default: 'Message for default response' 531 536 } 532 537 }); 533 538 } ··· 536 541 * @returns unknown Message for 200 response 537 542 * @returns ModelThatExtends Message for 201 response 538 543 * @returns ModelThatExtendsExtends Message for 202 response 539 - * @returns ModelWithString Message for default response 540 544 * @throws ApiError 541 545 */ 542 546 public static callWithResponses(): CancelablePromise<CallWithResponsesResponse> { ··· 546 550 errors: { 547 551 500: 'Message for 500 error', 548 552 501: 'Message for 501 error', 549 - 502: 'Message for 502 error' 553 + 502: 'Message for 502 error', 554 + default: 'Message for default response' 550 555 } 551 556 }); 552 557 }
+14 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_enums_typescript/types.gen.ts.snap
··· 941 941 /** 942 942 * Parameter with illegal characters 943 943 */ 944 - export type Parameterx_Foo_Bar = string; 944 + export type Parameterx_Foo_Bar = ModelWithString; 945 945 946 946 export type PostServiceWithEmptyTagData = { 947 947 requestBody: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; ··· 955 955 /** 956 956 * bar in method 957 957 */ 958 - bar: string; 958 + barParam: string; 959 959 /** 960 960 * foo in method 961 961 */ 962 - foo: string; 962 + fooParam: string; 963 + /** 964 + * Parameter with illegal characters 965 + */ 966 + xFooBar: ModelWithString; 963 967 }; 964 968 965 969 export type CallWithParametersData = { ··· 1199 1203 1200 1204 export type CallWithResponseResponse = ModelWithString; 1201 1205 1202 - export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString | ModelWithBoolean; 1206 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1203 1207 1204 1208 export type CallWithResponsesResponse = { 1205 1209 readonly '@namespace.string'?: string; 1206 1210 readonly '@namespace.integer'?: number; 1207 1211 readonly value?: Array<ModelWithString>; 1208 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 1212 + } | ModelThatExtends | ModelThatExtendsExtends; 1209 1213 1210 1214 export type DummyAResponse = void; 1211 1215 ··· 1384 1388 }; 1385 1389 }; 1386 1390 }; 1387 - '/api/v{api-version}/foo/{foo}/bar/{bar}': { 1391 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1388 1392 delete: { 1389 1393 req: DeleteFooData3; 1390 1394 }; ··· 1490 1494 * Message for 502 error 1491 1495 */ 1492 1496 502: ModelWithStringError; 1497 + /** 1498 + * Message for 4XX errors 1499 + */ 1500 + '4XX': DictionaryWithArray; 1493 1501 /** 1494 1502 * Message for default response 1495 1503 */
+4
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch/index.ts.snap
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + export * from './schemas.gen'; 3 + export * from './services.gen'; 4 + export * from './types.gen';
+1713
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch/schemas.gen.ts.snap
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export const $camelCaseCommentWithBreaks = { 4 + description: `Testing multiline comments in string: First line 5 + Second line 6 + 7 + Fourth line`, 8 + type: 'integer' 9 + } as const; 10 + 11 + export const $CommentWithBreaks = { 12 + description: `Testing multiline comments in string: First line 13 + Second line 14 + 15 + Fourth line`, 16 + type: 'integer' 17 + } as const; 18 + 19 + export const $CommentWithBackticks = { 20 + description: 'Testing backticks in string: `backticks` and ```multiple backticks``` should work', 21 + type: 'integer' 22 + } as const; 23 + 24 + export const $CommentWithBackticksAndQuotes = { 25 + description: `Testing backticks and quotes in string: \`backticks\`, 'quotes', "double quotes" and \`\`\`multiple backticks\`\`\` should work`, 26 + type: 'integer' 27 + } as const; 28 + 29 + export const $CommentWithSlashes = { 30 + description: 'Testing slashes in string: \\backwards\\\\\\ and /forwards/// should work', 31 + type: 'integer' 32 + } as const; 33 + 34 + export const $CommentWithExpressionPlaceholders = { 35 + description: 'Testing expression placeholders in string: ${expression} should work', 36 + type: 'integer' 37 + } as const; 38 + 39 + export const $CommentWithQuotes = { 40 + description: `Testing quotes in string: 'single quote''' and "double quotes""" should work`, 41 + type: 'integer' 42 + } as const; 43 + 44 + export const $CommentWithReservedCharacters = { 45 + description: 'Testing reserved characters in string: /* inline */ and /** inline **/ should work', 46 + type: 'integer' 47 + } as const; 48 + 49 + export const $SimpleInteger = { 50 + description: 'This is a simple number', 51 + type: 'integer' 52 + } as const; 53 + 54 + export const $SimpleBoolean = { 55 + description: 'This is a simple boolean', 56 + type: 'boolean' 57 + } as const; 58 + 59 + export const $SimpleString = { 60 + description: 'This is a simple string', 61 + type: 'string' 62 + } as const; 63 + 64 + export const $NonAsciiStringæøåÆØÅöôêÊ字符串 = { 65 + description: 'A string with non-ascii (unicode) characters valid in typescript identifiers (æøåÆØÅöÔèÈ字符串)', 66 + type: 'string' 67 + } as const; 68 + 69 + export const $SimpleFile = { 70 + description: 'This is a simple file', 71 + type: 'file' 72 + } as const; 73 + 74 + export const $SimpleReference = { 75 + description: 'This is a simple reference', 76 + '$ref': '#/components/schemas/ModelWithString' 77 + } as const; 78 + 79 + export const $SimpleStringWithPattern = { 80 + description: 'This is a simple string', 81 + type: 'string', 82 + nullable: true, 83 + maxLength: 64, 84 + pattern: '^[a-zA-Z0-9_]*$' 85 + } as const; 86 + 87 + export const $EnumWithStrings = { 88 + description: 'This is a simple enum with strings', 89 + enum: ['Success', 'Warning', 'Error', "'Single Quote'", '"Double Quotes"', 'Non-ascii: øæåôöØÆÅÔÖ字符串'] 90 + } as const; 91 + 92 + export const $EnumWithReplacedCharacters = { 93 + enum: ["'Single Quote'", '"Double Quotes"', 'øæåôöØÆÅÔÖ字符串', 3.1, ''], 94 + type: 'string' 95 + } as const; 96 + 97 + export const $EnumWithNumbers = { 98 + description: 'This is a simple enum with numbers', 99 + enum: [1, 2, 3, 1.1, 1.2, 1.3, 100, 200, 300, -100, -200, -300, -1.1, -1.2, -1.3], 100 + default: 200 101 + } as const; 102 + 103 + export const $EnumFromDescription = { 104 + description: 'Success=1,Warning=2,Error=3', 105 + type: 'number' 106 + } as const; 107 + 108 + export const $EnumWithExtensions = { 109 + description: 'This is a simple enum with numbers', 110 + enum: [200, 400, 500], 111 + 'x-enum-varnames': ['CUSTOM_SUCCESS', 'CUSTOM_WARNING', 'CUSTOM_ERROR'], 112 + 'x-enum-descriptions': ['Used when the status of something is successful', 'Used when the status of something has a warning', 'Used when the status of something has an error'] 113 + } as const; 114 + 115 + export const $EnumWithXEnumNames = { 116 + enum: [0, 1, 2], 117 + 'x-enumNames': ['zero', 'one', 'two'] 118 + } as const; 119 + 120 + export const $ArrayWithNumbers = { 121 + description: 'This is a simple array with numbers', 122 + type: 'array', 123 + items: { 124 + type: 'integer' 125 + } 126 + } as const; 127 + 128 + export const $ArrayWithBooleans = { 129 + description: 'This is a simple array with booleans', 130 + type: 'array', 131 + items: { 132 + type: 'boolean' 133 + } 134 + } as const; 135 + 136 + export const $ArrayWithStrings = { 137 + description: 'This is a simple array with strings', 138 + type: 'array', 139 + items: { 140 + type: 'string' 141 + }, 142 + default: ['test'] 143 + } as const; 144 + 145 + export const $ArrayWithReferences = { 146 + description: 'This is a simple array with references', 147 + type: 'array', 148 + items: { 149 + '$ref': '#/components/schemas/ModelWithString' 150 + } 151 + } as const; 152 + 153 + export const $ArrayWithArray = { 154 + description: 'This is a simple array containing an array', 155 + type: 'array', 156 + items: { 157 + type: 'array', 158 + items: { 159 + '$ref': '#/components/schemas/ModelWithString' 160 + } 161 + } 162 + } as const; 163 + 164 + export const $ArrayWithProperties = { 165 + description: 'This is a simple array with properties', 166 + type: 'array', 167 + items: { 168 + type: 'object', 169 + properties: { 170 + '16x16': { 171 + '$ref': '#/components/schemas/camelCaseCommentWithBreaks' 172 + }, 173 + bar: { 174 + type: 'string' 175 + } 176 + } 177 + } 178 + } as const; 179 + 180 + export const $ArrayWithAnyOfProperties = { 181 + description: 'This is a simple array with any of properties', 182 + type: 'array', 183 + items: { 184 + anyOf: [ 185 + { 186 + type: 'object', 187 + properties: { 188 + foo: { 189 + type: 'string', 190 + default: 'test' 191 + } 192 + } 193 + }, 194 + { 195 + type: 'object', 196 + properties: { 197 + bar: { 198 + type: 'string' 199 + } 200 + } 201 + } 202 + ] 203 + } 204 + } as const; 205 + 206 + export const $AnyOfAnyAndNull = { 207 + type: 'object', 208 + properties: { 209 + data: { 210 + anyOf: [ 211 + {}, 212 + { 213 + type: 'null' 214 + } 215 + ] 216 + } 217 + } 218 + } as const; 219 + 220 + export const $AnyOfArrays = { 221 + description: 'This is a simple array with any of properties', 222 + type: 'object', 223 + properties: { 224 + results: { 225 + items: { 226 + anyOf: [ 227 + { 228 + type: 'object', 229 + properties: { 230 + foo: { 231 + type: 'string' 232 + } 233 + } 234 + }, 235 + { 236 + type: 'object', 237 + properties: { 238 + bar: { 239 + type: 'string' 240 + } 241 + } 242 + } 243 + ] 244 + }, 245 + type: 'array' 246 + } 247 + } 248 + } as const; 249 + 250 + export const $DictionaryWithString = { 251 + description: 'This is a string dictionary', 252 + type: 'object', 253 + additionalProperties: { 254 + type: 'string' 255 + } 256 + } as const; 257 + 258 + export const $DictionaryWithPropertiesAndAdditionalProperties = { 259 + type: 'object', 260 + properties: { 261 + foo: { 262 + type: 'number' 263 + }, 264 + bar: { 265 + type: 'boolean' 266 + } 267 + }, 268 + additionalProperties: { 269 + type: 'string' 270 + } 271 + } as const; 272 + 273 + export const $DictionaryWithReference = { 274 + description: 'This is a string reference', 275 + type: 'object', 276 + additionalProperties: { 277 + '$ref': '#/components/schemas/ModelWithString' 278 + } 279 + } as const; 280 + 281 + export const $DictionaryWithArray = { 282 + description: 'This is a complex dictionary', 283 + type: 'object', 284 + additionalProperties: { 285 + type: 'array', 286 + items: { 287 + '$ref': '#/components/schemas/ModelWithString' 288 + } 289 + } 290 + } as const; 291 + 292 + export const $DictionaryWithDictionary = { 293 + description: 'This is a string dictionary', 294 + type: 'object', 295 + additionalProperties: { 296 + type: 'object', 297 + additionalProperties: { 298 + type: 'string' 299 + } 300 + } 301 + } as const; 302 + 303 + export const $DictionaryWithProperties = { 304 + description: 'This is a complex dictionary', 305 + type: 'object', 306 + additionalProperties: { 307 + type: 'object', 308 + properties: { 309 + foo: { 310 + type: 'string' 311 + }, 312 + bar: { 313 + type: 'string' 314 + } 315 + } 316 + } 317 + } as const; 318 + 319 + export const $ModelWithInteger = { 320 + description: 'This is a model with one number property', 321 + type: 'object', 322 + properties: { 323 + prop: { 324 + description: 'This is a simple number property', 325 + type: 'integer' 326 + } 327 + } 328 + } as const; 329 + 330 + export const $ModelWithBoolean = { 331 + description: 'This is a model with one boolean property', 332 + type: 'object', 333 + properties: { 334 + prop: { 335 + description: 'This is a simple boolean property', 336 + type: 'boolean' 337 + } 338 + } 339 + } as const; 340 + 341 + export const $ModelWithString = { 342 + description: 'This is a model with one string property', 343 + type: 'object', 344 + properties: { 345 + prop: { 346 + description: 'This is a simple string property', 347 + type: 'string' 348 + } 349 + } 350 + } as const; 351 + 352 + export const $ModelWithStringError = { 353 + description: 'This is a model with one string property', 354 + type: 'object', 355 + properties: { 356 + prop: { 357 + description: 'This is a simple string property', 358 + type: 'string' 359 + } 360 + } 361 + } as const; 362 + 363 + export const $Model_From_Zendesk = { 364 + description: `\`Comment\` or \`VoiceComment\`. The JSON object for adding voice comments to tickets is different. See [Adding voice comments to tickets](/documentation/ticketing/managing-tickets/adding-voice-comments-to-tickets)`, 365 + type: 'string' 366 + } as const; 367 + 368 + export const $ModelWithNullableString = { 369 + description: 'This is a model with one string property', 370 + type: 'object', 371 + required: ['nullableRequiredProp1', 'nullableRequiredProp2'], 372 + properties: { 373 + nullableProp1: { 374 + description: 'This is a simple string property', 375 + type: 'string', 376 + nullable: true 377 + }, 378 + nullableRequiredProp1: { 379 + description: 'This is a simple string property', 380 + type: 'string', 381 + nullable: true 382 + }, 383 + nullableProp2: { 384 + description: 'This is a simple string property', 385 + type: ['string', 'null'] 386 + }, 387 + nullableRequiredProp2: { 388 + description: 'This is a simple string property', 389 + type: ['string', 'null'] 390 + }, 391 + 'foo_bar-enum': { 392 + description: 'This is a simple enum with strings', 393 + enum: ['Success', 'Warning', 'Error', 'ØÆÅ字符串'] 394 + } 395 + } 396 + } as const; 397 + 398 + export const $ModelWithEnum = { 399 + description: 'This is a model with one enum', 400 + type: 'object', 401 + properties: { 402 + 'foo_bar-enum': { 403 + description: 'This is a simple enum with strings', 404 + enum: ['Success', 'Warning', 'Error', 'ØÆÅ字符串'] 405 + }, 406 + statusCode: { 407 + description: 'These are the HTTP error code enums', 408 + enum: ['100', '200 FOO', '300 FOO_BAR', '400 foo-bar', '500 foo.bar', '600 foo&bar'] 409 + }, 410 + bool: { 411 + description: 'Simple boolean enum', 412 + type: 'boolean', 413 + enum: [true] 414 + } 415 + } 416 + } as const; 417 + 418 + export const $ModelWithEnumWithHyphen = { 419 + description: 'This is a model with one enum with escaped name', 420 + type: 'object', 421 + properties: { 422 + 'foo-bar-baz-qux': { 423 + type: 'string', 424 + enum: ['3.0'], 425 + title: 'Foo-Bar-Baz-Qux', 426 + default: '3.0' 427 + } 428 + } 429 + } as const; 430 + 431 + export const $ModelWithEnumFromDescription = { 432 + description: 'This is a model with one enum', 433 + type: 'object', 434 + properties: { 435 + test: { 436 + type: 'integer', 437 + description: 'Success=1,Warning=2,Error=3' 438 + } 439 + } 440 + } as const; 441 + 442 + export const $ModelWithNestedEnums = { 443 + description: 'This is a model with nested enums', 444 + type: 'object', 445 + properties: { 446 + dictionaryWithEnum: { 447 + type: 'object', 448 + additionalProperties: { 449 + enum: ['Success', 'Warning', 'Error'] 450 + } 451 + }, 452 + dictionaryWithEnumFromDescription: { 453 + type: 'object', 454 + additionalProperties: { 455 + type: 'integer', 456 + description: 'Success=1,Warning=2,Error=3' 457 + } 458 + }, 459 + arrayWithEnum: { 460 + type: 'array', 461 + items: { 462 + enum: ['Success', 'Warning', 'Error'] 463 + } 464 + }, 465 + arrayWithDescription: { 466 + type: 'array', 467 + items: { 468 + type: 'integer', 469 + description: 'Success=1,Warning=2,Error=3' 470 + } 471 + }, 472 + 'foo_bar-enum': { 473 + description: 'This is a simple enum with strings', 474 + enum: ['Success', 'Warning', 'Error', 'ØÆÅ字符串'] 475 + } 476 + } 477 + } as const; 478 + 479 + export const $ModelWithReference = { 480 + description: 'This is a model with one property containing a reference', 481 + type: 'object', 482 + properties: { 483 + prop: { 484 + '$ref': '#/components/schemas/ModelWithProperties' 485 + } 486 + } 487 + } as const; 488 + 489 + export const $ModelWithArrayReadOnlyAndWriteOnly = { 490 + description: 'This is a model with one property containing an array', 491 + type: 'object', 492 + properties: { 493 + prop: { 494 + type: 'array', 495 + items: { 496 + '$ref': '#/components/schemas/ModelWithReadOnlyAndWriteOnly' 497 + } 498 + }, 499 + propWithFile: { 500 + type: 'array', 501 + items: { 502 + type: 'file' 503 + } 504 + }, 505 + propWithNumber: { 506 + type: 'array', 507 + items: { 508 + type: 'number' 509 + } 510 + } 511 + } 512 + } as const; 513 + 514 + export const $ModelWithArray = { 515 + description: 'This is a model with one property containing an array', 516 + type: 'object', 517 + properties: { 518 + prop: { 519 + type: 'array', 520 + items: { 521 + '$ref': '#/components/schemas/ModelWithString' 522 + } 523 + }, 524 + propWithFile: { 525 + type: 'array', 526 + items: { 527 + type: 'file' 528 + } 529 + }, 530 + propWithNumber: { 531 + type: 'array', 532 + items: { 533 + type: 'number' 534 + } 535 + } 536 + } 537 + } as const; 538 + 539 + export const $ModelWithDictionary = { 540 + description: 'This is a model with one property containing a dictionary', 541 + type: 'object', 542 + properties: { 543 + prop: { 544 + type: 'object', 545 + additionalProperties: { 546 + type: 'string' 547 + } 548 + } 549 + } 550 + } as const; 551 + 552 + export const $DeprecatedModel = { 553 + deprecated: true, 554 + description: 'This is a deprecated model with a deprecated property', 555 + type: 'object', 556 + properties: { 557 + prop: { 558 + deprecated: true, 559 + description: 'This is a deprecated property', 560 + type: 'string' 561 + } 562 + } 563 + } as const; 564 + 565 + export const $ModelWithCircularReference = { 566 + description: 'This is a model with one property containing a circular reference', 567 + type: 'object', 568 + properties: { 569 + prop: { 570 + '$ref': '#/components/schemas/ModelWithCircularReference' 571 + } 572 + } 573 + } as const; 574 + 575 + export const $CompositionWithOneOf = { 576 + description: "This is a model with one property with a 'one of' relationship", 577 + type: 'object', 578 + properties: { 579 + propA: { 580 + type: 'object', 581 + oneOf: [ 582 + { 583 + '$ref': '#/components/schemas/ModelWithString' 584 + }, 585 + { 586 + '$ref': '#/components/schemas/ModelWithEnum' 587 + }, 588 + { 589 + '$ref': '#/components/schemas/ModelWithArray' 590 + }, 591 + { 592 + '$ref': '#/components/schemas/ModelWithDictionary' 593 + } 594 + ] 595 + } 596 + } 597 + } as const; 598 + 599 + export const $CompositionWithOneOfAnonymous = { 600 + description: "This is a model with one property with a 'one of' relationship where the options are not $ref", 601 + type: 'object', 602 + properties: { 603 + propA: { 604 + type: 'object', 605 + oneOf: [ 606 + { 607 + description: 'Anonymous object type', 608 + type: 'object', 609 + properties: { 610 + propA: { 611 + type: 'string' 612 + } 613 + } 614 + }, 615 + { 616 + description: 'Anonymous string type', 617 + type: 'string' 618 + }, 619 + { 620 + description: 'Anonymous integer type', 621 + type: 'integer' 622 + } 623 + ] 624 + } 625 + } 626 + } as const; 627 + 628 + export const $ModelCircle = { 629 + description: 'Circle', 630 + type: 'object', 631 + required: ['kind'], 632 + properties: { 633 + kind: { 634 + type: 'string' 635 + }, 636 + radius: { 637 + type: 'number' 638 + } 639 + } 640 + } as const; 641 + 642 + export const $ModelSquare = { 643 + description: 'Square', 644 + type: 'object', 645 + required: ['kind'], 646 + properties: { 647 + kind: { 648 + type: 'string' 649 + }, 650 + sideLength: { 651 + type: 'number' 652 + } 653 + } 654 + } as const; 655 + 656 + export const $CompositionWithOneOfDiscriminator = { 657 + description: "This is a model with one property with a 'one of' relationship where the options are not $ref", 658 + type: 'object', 659 + oneOf: [ 660 + { 661 + '$ref': '#/components/schemas/ModelCircle' 662 + }, 663 + { 664 + '$ref': '#/components/schemas/ModelSquare' 665 + } 666 + ], 667 + discriminator: { 668 + propertyName: 'kind', 669 + mapping: { 670 + circle: '#/components/schemas/ModelCircle', 671 + square: '#/components/schemas/ModelSquare' 672 + } 673 + } 674 + } as const; 675 + 676 + export const $CompositionWithAnyOf = { 677 + description: "This is a model with one property with a 'any of' relationship", 678 + type: 'object', 679 + properties: { 680 + propA: { 681 + type: 'object', 682 + anyOf: [ 683 + { 684 + '$ref': '#/components/schemas/ModelWithString' 685 + }, 686 + { 687 + '$ref': '#/components/schemas/ModelWithEnum' 688 + }, 689 + { 690 + '$ref': '#/components/schemas/ModelWithArray' 691 + }, 692 + { 693 + '$ref': '#/components/schemas/ModelWithDictionary' 694 + } 695 + ] 696 + } 697 + } 698 + } as const; 699 + 700 + export const $CompositionWithAnyOfAnonymous = { 701 + description: "This is a model with one property with a 'any of' relationship where the options are not $ref", 702 + type: 'object', 703 + properties: { 704 + propA: { 705 + type: 'object', 706 + anyOf: [ 707 + { 708 + description: 'Anonymous object type', 709 + type: 'object', 710 + properties: { 711 + propA: { 712 + type: 'string' 713 + } 714 + } 715 + }, 716 + { 717 + description: 'Anonymous string type', 718 + type: 'string' 719 + }, 720 + { 721 + description: 'Anonymous integer type', 722 + type: 'integer' 723 + } 724 + ] 725 + } 726 + } 727 + } as const; 728 + 729 + export const $CompositionWithNestedAnyAndTypeNull = { 730 + description: "This is a model with nested 'any of' property with a type null", 731 + type: 'object', 732 + properties: { 733 + propA: { 734 + type: 'object', 735 + anyOf: [ 736 + { 737 + items: { 738 + anyOf: [ 739 + { 740 + '$ref': '#/components/schemas/ModelWithDictionary' 741 + }, 742 + { 743 + type: 'null' 744 + } 745 + ] 746 + }, 747 + type: 'array' 748 + }, 749 + { 750 + items: { 751 + anyOf: [ 752 + { 753 + '$ref': '#/components/schemas/ModelWithArray' 754 + }, 755 + { 756 + type: 'null' 757 + } 758 + ] 759 + }, 760 + type: 'array' 761 + } 762 + ] 763 + } 764 + } 765 + } as const; 766 + 767 + export const $e_num_1Период = { 768 + enum: ['Bird', 'Dog'], 769 + type: 'string' 770 + } as const; 771 + 772 + export const $ConstValue = { 773 + type: 'string', 774 + const: 'ConstValue' 775 + } as const; 776 + 777 + export const $CompositionWithNestedAnyOfAndNull = { 778 + description: "This is a model with one property with a 'any of' relationship where the options are not $ref", 779 + type: 'object', 780 + properties: { 781 + propA: { 782 + anyOf: [ 783 + { 784 + items: { 785 + anyOf: [ 786 + { 787 + '$ref': '#/components/schemas/3e-num_1Период' 788 + }, 789 + { 790 + '$ref': '#/components/schemas/ConstValue' 791 + } 792 + ] 793 + }, 794 + type: 'array' 795 + }, 796 + { 797 + type: 'null' 798 + } 799 + ], 800 + title: 'Scopes' 801 + } 802 + } 803 + } as const; 804 + 805 + export const $CompositionWithOneOfAndNullable = { 806 + description: "This is a model with one property with a 'one of' relationship", 807 + type: 'object', 808 + properties: { 809 + propA: { 810 + nullable: true, 811 + type: 'object', 812 + oneOf: [ 813 + { 814 + type: 'object', 815 + properties: { 816 + boolean: { 817 + type: 'boolean' 818 + } 819 + } 820 + }, 821 + { 822 + '$ref': '#/components/schemas/ModelWithEnum' 823 + }, 824 + { 825 + '$ref': '#/components/schemas/ModelWithArray' 826 + }, 827 + { 828 + '$ref': '#/components/schemas/ModelWithDictionary' 829 + } 830 + ] 831 + } 832 + } 833 + } as const; 834 + 835 + export const $CompositionWithOneOfAndSimpleDictionary = { 836 + description: 'This is a model that contains a simple dictionary within composition', 837 + type: 'object', 838 + properties: { 839 + propA: { 840 + oneOf: [ 841 + { 842 + type: 'boolean' 843 + }, 844 + { 845 + type: 'object', 846 + additionalProperties: { 847 + type: 'number' 848 + } 849 + } 850 + ] 851 + } 852 + } 853 + } as const; 854 + 855 + export const $CompositionWithOneOfAndSimpleArrayDictionary = { 856 + description: 'This is a model that contains a dictionary of simple arrays within composition', 857 + type: 'object', 858 + properties: { 859 + propA: { 860 + oneOf: [ 861 + { 862 + type: 'boolean' 863 + }, 864 + { 865 + type: 'object', 866 + additionalProperties: { 867 + type: 'array', 868 + items: { 869 + type: 'boolean' 870 + } 871 + } 872 + } 873 + ] 874 + } 875 + } 876 + } as const; 877 + 878 + export const $CompositionWithOneOfAndComplexArrayDictionary = { 879 + description: 'This is a model that contains a dictionary of complex arrays (composited) within composition', 880 + type: 'object', 881 + properties: { 882 + propA: { 883 + oneOf: [ 884 + { 885 + type: 'boolean' 886 + }, 887 + { 888 + type: 'object', 889 + additionalProperties: { 890 + type: 'array', 891 + items: { 892 + oneOf: [ 893 + { 894 + type: 'number' 895 + }, 896 + { 897 + type: 'string' 898 + } 899 + ] 900 + } 901 + } 902 + } 903 + ] 904 + } 905 + } 906 + } as const; 907 + 908 + export const $CompositionWithAllOfAndNullable = { 909 + description: "This is a model with one property with a 'all of' relationship", 910 + type: 'object', 911 + properties: { 912 + propA: { 913 + nullable: true, 914 + type: 'object', 915 + allOf: [ 916 + { 917 + type: 'object', 918 + properties: { 919 + boolean: { 920 + type: 'boolean' 921 + } 922 + } 923 + }, 924 + { 925 + '$ref': '#/components/schemas/ModelWithEnum' 926 + }, 927 + { 928 + '$ref': '#/components/schemas/ModelWithArray' 929 + }, 930 + { 931 + '$ref': '#/components/schemas/ModelWithDictionary' 932 + } 933 + ] 934 + } 935 + } 936 + } as const; 937 + 938 + export const $CompositionWithAnyOfAndNullable = { 939 + description: "This is a model with one property with a 'any of' relationship", 940 + type: 'object', 941 + properties: { 942 + propA: { 943 + nullable: true, 944 + type: 'object', 945 + anyOf: [ 946 + { 947 + type: 'object', 948 + properties: { 949 + boolean: { 950 + type: 'boolean' 951 + } 952 + } 953 + }, 954 + { 955 + '$ref': '#/components/schemas/ModelWithEnum' 956 + }, 957 + { 958 + '$ref': '#/components/schemas/ModelWithArray' 959 + }, 960 + { 961 + '$ref': '#/components/schemas/ModelWithDictionary' 962 + } 963 + ] 964 + } 965 + } 966 + } as const; 967 + 968 + export const $CompositionBaseModel = { 969 + description: 'This is a base model with two simple optional properties', 970 + type: 'object', 971 + properties: { 972 + firstName: { 973 + type: 'string' 974 + }, 975 + lastname: { 976 + type: 'string' 977 + } 978 + } 979 + } as const; 980 + 981 + export const $CompositionExtendedModel = { 982 + description: 'This is a model that extends the base model', 983 + type: 'object', 984 + allOf: [ 985 + { 986 + '$ref': '#/components/schemas/CompositionBaseModel' 987 + } 988 + ], 989 + properties: { 990 + age: { 991 + type: 'number' 992 + } 993 + }, 994 + required: ['firstName', 'lastname', 'age'] 995 + } as const; 996 + 997 + export const $ModelWithProperties = { 998 + description: 'This is a model with one nested property', 999 + type: 'object', 1000 + required: ['required', 'requiredAndReadOnly', 'requiredAndNullable'], 1001 + properties: { 1002 + required: { 1003 + type: 'string' 1004 + }, 1005 + requiredAndReadOnly: { 1006 + type: 'string', 1007 + readOnly: true 1008 + }, 1009 + requiredAndNullable: { 1010 + type: 'string', 1011 + nullable: true 1012 + }, 1013 + string: { 1014 + type: 'string' 1015 + }, 1016 + number: { 1017 + type: 'number' 1018 + }, 1019 + boolean: { 1020 + type: 'boolean' 1021 + }, 1022 + reference: { 1023 + '$ref': '#/components/schemas/ModelWithString' 1024 + }, 1025 + 'property with space': { 1026 + type: 'string' 1027 + }, 1028 + default: { 1029 + type: 'string' 1030 + }, 1031 + try: { 1032 + type: 'string' 1033 + }, 1034 + '@namespace.string': { 1035 + type: 'string', 1036 + readOnly: true 1037 + }, 1038 + '@namespace.integer': { 1039 + type: 'integer', 1040 + readOnly: true 1041 + } 1042 + } 1043 + } as const; 1044 + 1045 + export const $ModelWithNestedProperties = { 1046 + description: 'This is a model with one nested property', 1047 + type: 'object', 1048 + required: ['first'], 1049 + properties: { 1050 + first: { 1051 + type: 'object', 1052 + required: ['second'], 1053 + readOnly: true, 1054 + nullable: true, 1055 + properties: { 1056 + second: { 1057 + type: 'object', 1058 + required: ['third'], 1059 + readOnly: true, 1060 + nullable: true, 1061 + properties: { 1062 + third: { 1063 + type: 'string', 1064 + required: true, 1065 + readOnly: true, 1066 + nullable: true 1067 + } 1068 + } 1069 + } 1070 + } 1071 + } 1072 + } 1073 + } as const; 1074 + 1075 + export const $ModelWithDuplicateProperties = { 1076 + description: 'This is a model with duplicated properties', 1077 + type: 'object', 1078 + properties: { 1079 + prop: { 1080 + '$ref': '#/components/schemas/ModelWithString' 1081 + } 1082 + } 1083 + } as const; 1084 + 1085 + export const $ModelWithOrderedProperties = { 1086 + description: 'This is a model with ordered properties', 1087 + type: 'object', 1088 + properties: { 1089 + zebra: { 1090 + type: 'string' 1091 + }, 1092 + apple: { 1093 + type: 'string' 1094 + }, 1095 + hawaii: { 1096 + type: 'string' 1097 + } 1098 + } 1099 + } as const; 1100 + 1101 + export const $ModelWithDuplicateImports = { 1102 + description: 'This is a model with duplicated imports', 1103 + type: 'object', 1104 + properties: { 1105 + propA: { 1106 + '$ref': '#/components/schemas/ModelWithString' 1107 + }, 1108 + propB: { 1109 + '$ref': '#/components/schemas/ModelWithString' 1110 + }, 1111 + propC: { 1112 + '$ref': '#/components/schemas/ModelWithString' 1113 + } 1114 + } 1115 + } as const; 1116 + 1117 + export const $ModelThatExtends = { 1118 + description: 'This is a model that extends another model', 1119 + type: 'object', 1120 + allOf: [ 1121 + { 1122 + '$ref': '#/components/schemas/ModelWithString' 1123 + }, 1124 + { 1125 + type: 'object', 1126 + properties: { 1127 + propExtendsA: { 1128 + type: 'string' 1129 + }, 1130 + propExtendsB: { 1131 + '$ref': '#/components/schemas/ModelWithString' 1132 + } 1133 + } 1134 + } 1135 + ] 1136 + } as const; 1137 + 1138 + export const $ModelThatExtendsExtends = { 1139 + description: 'This is a model that extends another model', 1140 + type: 'object', 1141 + allOf: [ 1142 + { 1143 + '$ref': '#/components/schemas/ModelWithString' 1144 + }, 1145 + { 1146 + '$ref': '#/components/schemas/ModelThatExtends' 1147 + }, 1148 + { 1149 + type: 'object', 1150 + properties: { 1151 + propExtendsC: { 1152 + type: 'string' 1153 + }, 1154 + propExtendsD: { 1155 + '$ref': '#/components/schemas/ModelWithString' 1156 + } 1157 + } 1158 + } 1159 + ] 1160 + } as const; 1161 + 1162 + export const $ModelWithPattern = { 1163 + description: 'This is a model that contains a some patterns', 1164 + type: 'object', 1165 + required: ['key', 'name'], 1166 + properties: { 1167 + key: { 1168 + maxLength: 64, 1169 + pattern: '^[a-zA-Z0-9_]*$', 1170 + type: 'string' 1171 + }, 1172 + name: { 1173 + maxLength: 255, 1174 + type: 'string' 1175 + }, 1176 + enabled: { 1177 + type: 'boolean', 1178 + readOnly: true 1179 + }, 1180 + modified: { 1181 + type: 'string', 1182 + format: 'date-time', 1183 + readOnly: true 1184 + }, 1185 + id: { 1186 + type: 'string', 1187 + pattern: '^\\d{2}-\\d{3}-\\d{4}$' 1188 + }, 1189 + text: { 1190 + type: 'string', 1191 + pattern: '^\\w+$' 1192 + }, 1193 + patternWithSingleQuotes: { 1194 + type: 'string', 1195 + pattern: "^[a-zA-Z0-9']*$" 1196 + }, 1197 + patternWithNewline: { 1198 + type: 'string', 1199 + pattern: `aaa 1200 + bbb` 1201 + }, 1202 + patternWithBacktick: { 1203 + type: 'string', 1204 + pattern: 'aaa`bbb' 1205 + } 1206 + } 1207 + } as const; 1208 + 1209 + export const $File = { 1210 + required: ['mime'], 1211 + type: 'object', 1212 + properties: { 1213 + id: { 1214 + title: 'Id', 1215 + type: 'string', 1216 + readOnly: true, 1217 + minLength: 1 1218 + }, 1219 + updated_at: { 1220 + title: 'Updated at', 1221 + type: 'string', 1222 + format: 'date-time', 1223 + readOnly: true 1224 + }, 1225 + created_at: { 1226 + title: 'Created at', 1227 + type: 'string', 1228 + format: 'date-time', 1229 + readOnly: true 1230 + }, 1231 + mime: { 1232 + title: 'Mime', 1233 + type: 'string', 1234 + maxLength: 24, 1235 + minLength: 1 1236 + }, 1237 + file: { 1238 + title: 'File', 1239 + type: 'string', 1240 + readOnly: true, 1241 + format: 'uri' 1242 + } 1243 + } 1244 + } as const; 1245 + 1246 + export const $default = { 1247 + type: 'object', 1248 + properties: { 1249 + name: { 1250 + type: 'string' 1251 + } 1252 + } 1253 + } as const; 1254 + 1255 + export const $Pageable = { 1256 + type: 'object', 1257 + properties: { 1258 + page: { 1259 + minimum: 0, 1260 + type: 'integer', 1261 + format: 'int32', 1262 + default: 0 1263 + }, 1264 + size: { 1265 + minimum: 1, 1266 + type: 'integer', 1267 + format: 'int32' 1268 + }, 1269 + sort: { 1270 + type: 'array', 1271 + items: { 1272 + type: 'string' 1273 + } 1274 + } 1275 + } 1276 + } as const; 1277 + 1278 + export const $FreeFormObjectWithoutAdditionalProperties = { 1279 + description: 'This is a free-form object without additionalProperties.', 1280 + type: 'object' 1281 + } as const; 1282 + 1283 + export const $FreeFormObjectWithAdditionalPropertiesEqTrue = { 1284 + description: 'This is a free-form object with additionalProperties: true.', 1285 + type: 'object', 1286 + additionalProperties: true 1287 + } as const; 1288 + 1289 + export const $FreeFormObjectWithAdditionalPropertiesEqEmptyObject = { 1290 + description: 'This is a free-form object with additionalProperties: {}.', 1291 + type: 'object', 1292 + additionalProperties: {} 1293 + } as const; 1294 + 1295 + export const $ModelWithConst = { 1296 + type: 'object', 1297 + properties: { 1298 + String: { 1299 + const: 'String' 1300 + }, 1301 + number: { 1302 + const: 0 1303 + }, 1304 + null: { 1305 + const: null 1306 + }, 1307 + withType: { 1308 + type: 'string', 1309 + const: 'Some string' 1310 + } 1311 + } 1312 + } as const; 1313 + 1314 + export const $ModelWithAdditionalPropertiesEqTrue = { 1315 + description: 'This is a model with one property and additionalProperties: true', 1316 + type: 'object', 1317 + properties: { 1318 + prop: { 1319 + description: 'This is a simple string property', 1320 + type: 'string' 1321 + } 1322 + }, 1323 + additionalProperties: true 1324 + } as const; 1325 + 1326 + export const $NestedAnyOfArraysNullable = { 1327 + properties: { 1328 + nullableArray: { 1329 + anyOf: [ 1330 + { 1331 + items: { 1332 + anyOf: [ 1333 + { 1334 + type: 'string' 1335 + }, 1336 + { 1337 + type: 'boolean' 1338 + } 1339 + ] 1340 + }, 1341 + type: 'array' 1342 + }, 1343 + { 1344 + type: 'null' 1345 + } 1346 + ] 1347 + } 1348 + }, 1349 + type: 'object' 1350 + } as const; 1351 + 1352 + export const $CompositionWithOneOfAndProperties = { 1353 + type: 'object', 1354 + oneOf: [ 1355 + { 1356 + type: 'object', 1357 + required: ['foo'], 1358 + properties: { 1359 + foo: { 1360 + '$ref': '#/components/parameters/SimpleParameter' 1361 + } 1362 + }, 1363 + additionalProperties: false 1364 + }, 1365 + { 1366 + type: 'object', 1367 + required: ['bar'], 1368 + properties: { 1369 + bar: { 1370 + '$ref': '#/components/schemas/NonAsciiStringæøåÆØÅöôêÊ字符串' 1371 + } 1372 + }, 1373 + additionalProperties: false 1374 + } 1375 + ], 1376 + required: ['baz', 'qux'], 1377 + properties: { 1378 + baz: { 1379 + type: 'integer', 1380 + format: 'uint16', 1381 + minimum: 0, 1382 + nullable: true 1383 + }, 1384 + qux: { 1385 + type: 'integer', 1386 + format: 'uint8', 1387 + minimum: 0 1388 + } 1389 + } 1390 + } as const; 1391 + 1392 + export const $NullableObject = { 1393 + type: ['object', 'null'], 1394 + description: 'An object that can be null', 1395 + properties: { 1396 + foo: { 1397 + type: 'string' 1398 + } 1399 + }, 1400 + default: null 1401 + } as const; 1402 + 1403 + export const $CharactersInDescription = { 1404 + type: 'string', 1405 + description: 'Some % character' 1406 + } as const; 1407 + 1408 + export const $ModelWithNullableObject = { 1409 + type: 'object', 1410 + properties: { 1411 + data: { 1412 + '$ref': '#/components/schemas/NullableObject' 1413 + } 1414 + } 1415 + } as const; 1416 + 1417 + export const $ModelWithOneOfEnum = { 1418 + oneOf: [ 1419 + { 1420 + type: 'object', 1421 + required: ['foo'], 1422 + properties: { 1423 + foo: { 1424 + type: 'string', 1425 + enum: ['Bar'] 1426 + } 1427 + } 1428 + }, 1429 + { 1430 + type: 'object', 1431 + required: ['foo'], 1432 + properties: { 1433 + foo: { 1434 + type: 'string', 1435 + enum: ['Baz'] 1436 + } 1437 + } 1438 + }, 1439 + { 1440 + type: 'object', 1441 + required: ['foo'], 1442 + properties: { 1443 + foo: { 1444 + type: 'string', 1445 + enum: ['Qux'] 1446 + } 1447 + } 1448 + }, 1449 + { 1450 + type: 'object', 1451 + required: ['content', 'foo'], 1452 + properties: { 1453 + content: { 1454 + type: 'string', 1455 + format: 'date-time' 1456 + }, 1457 + foo: { 1458 + type: 'string', 1459 + enum: ['Quux'] 1460 + } 1461 + } 1462 + }, 1463 + { 1464 + type: 'object', 1465 + required: ['content', 'foo'], 1466 + properties: { 1467 + content: { 1468 + type: 'array', 1469 + items: [ 1470 + { 1471 + type: 'string', 1472 + format: 'date-time' 1473 + }, 1474 + { 1475 + type: 'string' 1476 + } 1477 + ], 1478 + maxItems: 2, 1479 + minItems: 2 1480 + }, 1481 + foo: { 1482 + type: 'string', 1483 + enum: ['Corge'] 1484 + } 1485 + } 1486 + } 1487 + ] 1488 + } as const; 1489 + 1490 + export const $ModelWithNestedArrayEnumsDataFoo = { 1491 + enum: ['foo', 'bar'], 1492 + type: 'string' 1493 + } as const; 1494 + 1495 + export const $ModelWithNestedArrayEnumsDataBar = { 1496 + enum: ['baz', 'qux'], 1497 + type: 'string' 1498 + } as const; 1499 + 1500 + export const $ModelWithNestedArrayEnumsData = { 1501 + type: 'object', 1502 + properties: { 1503 + foo: { 1504 + type: 'array', 1505 + items: { 1506 + '$ref': '#/components/schemas/ModelWithNestedArrayEnumsDataFoo' 1507 + } 1508 + }, 1509 + bar: { 1510 + type: 'array', 1511 + items: { 1512 + '$ref': '#/components/schemas/ModelWithNestedArrayEnumsDataBar' 1513 + } 1514 + } 1515 + } 1516 + } as const; 1517 + 1518 + export const $ModelWithNestedArrayEnums = { 1519 + type: 'object', 1520 + properties: { 1521 + array_strings: { 1522 + type: 'array', 1523 + items: { 1524 + type: 'string' 1525 + } 1526 + }, 1527 + data: { 1528 + allOf: [ 1529 + { 1530 + '$ref': '#/components/schemas/ModelWithNestedArrayEnumsData' 1531 + } 1532 + ] 1533 + } 1534 + } 1535 + } as const; 1536 + 1537 + export const $ModelWithNestedCompositionEnums = { 1538 + type: 'object', 1539 + properties: { 1540 + foo: { 1541 + allOf: [ 1542 + { 1543 + '$ref': '#/components/schemas/ModelWithNestedArrayEnumsDataFoo' 1544 + } 1545 + ] 1546 + } 1547 + } 1548 + } as const; 1549 + 1550 + export const $ModelWithReadOnlyAndWriteOnly = { 1551 + type: 'object', 1552 + required: ['foo', 'bar', 'baz'], 1553 + properties: { 1554 + foo: { 1555 + type: 'string' 1556 + }, 1557 + bar: { 1558 + readOnly: true, 1559 + type: 'string' 1560 + }, 1561 + baz: { 1562 + type: 'string', 1563 + writeOnly: true 1564 + } 1565 + } 1566 + } as const; 1567 + 1568 + export const $ModelWithConstantSizeArray = { 1569 + type: 'array', 1570 + items: { 1571 + type: 'number' 1572 + }, 1573 + minItems: 2, 1574 + maxItems: 2 1575 + } as const; 1576 + 1577 + export const $ModelWithAnyOfConstantSizeArray = { 1578 + type: 'array', 1579 + items: { 1580 + oneOf: [ 1581 + { 1582 + type: 'number' 1583 + }, 1584 + { 1585 + type: 'string' 1586 + } 1587 + ] 1588 + }, 1589 + minItems: 3, 1590 + maxItems: 3 1591 + } as const; 1592 + 1593 + export const $ModelWithAnyOfConstantSizeArrayNullable = { 1594 + type: ['array'], 1595 + items: { 1596 + oneOf: [ 1597 + { 1598 + type: 'number', 1599 + nullable: true 1600 + }, 1601 + { 1602 + type: 'string' 1603 + } 1604 + ] 1605 + }, 1606 + minItems: 3, 1607 + maxItems: 3 1608 + } as const; 1609 + 1610 + export const $ModelWithAnyOfConstantSizeArrayWithNSizeAndOptions = { 1611 + type: 'array', 1612 + items: { 1613 + oneOf: [ 1614 + { 1615 + type: 'number' 1616 + }, 1617 + { 1618 + type: 'string' 1619 + } 1620 + ] 1621 + }, 1622 + minItems: 2, 1623 + maxItems: 2 1624 + } as const; 1625 + 1626 + export const $ModelWithAnyOfConstantSizeArrayAndIntersect = { 1627 + type: 'array', 1628 + items: { 1629 + allOf: [ 1630 + { 1631 + type: 'number' 1632 + }, 1633 + { 1634 + type: 'string' 1635 + } 1636 + ] 1637 + }, 1638 + minItems: 2, 1639 + maxItems: 2 1640 + } as const; 1641 + 1642 + export const $ModelWithNumericEnumUnion = { 1643 + type: 'object', 1644 + properties: { 1645 + value: { 1646 + type: 'number', 1647 + description: 'Период', 1648 + enum: [-10, -1, 0, 1, 3, 6, 12] 1649 + } 1650 + } 1651 + } as const; 1652 + 1653 + export const $ModelWithBackticksInDescription = { 1654 + description: 'Some description with `back ticks`', 1655 + type: 'object', 1656 + properties: { 1657 + template: { 1658 + type: 'string', 1659 + description: `The template \`that\` should be used for parsing and importing the contents of the CSV file. 1660 + 1661 + <br/><p>There is one placeholder currently supported:<ul> <li><b>\${x}</b> - refers to the n-th column in the CSV file, e.g. \${1}, \${2}, ...)</li></ul><p>Example of a correct JSON template:</p> 1662 + <pre> 1663 + [ 1664 + { 1665 + "resourceType": "Asset", 1666 + "identifier": { 1667 + "name": "\${1}", 1668 + "domain": { 1669 + "name": "\${2}", 1670 + "community": { 1671 + "name": "Some Community" 1672 + } 1673 + } 1674 + }, 1675 + "attributes" : { 1676 + "00000000-0000-0000-0000-000000003115" : [ { 1677 + "value" : "\${3}" 1678 + } ], 1679 + "00000000-0000-0000-0000-000000000222" : [ { 1680 + "value" : "\${4}" 1681 + } ] 1682 + } 1683 + } 1684 + ] 1685 + </pre>` 1686 + } 1687 + } 1688 + } as const; 1689 + 1690 + export const $ParameterSimpleParameterUnused = { 1691 + description: 'Model used to test deduplication strategy (unused)', 1692 + type: 'string' 1693 + } as const; 1694 + 1695 + export const $PostServiceWithEmptyTagResponse = { 1696 + description: 'Model used to test deduplication strategy', 1697 + type: 'string' 1698 + } as const; 1699 + 1700 + export const $PostServiceWithEmptyTagResponse2 = { 1701 + description: 'Model used to test deduplication strategy', 1702 + type: 'string' 1703 + } as const; 1704 + 1705 + export const $DeleteFooData = { 1706 + description: 'Model used to test deduplication strategy', 1707 + type: 'string' 1708 + } as const; 1709 + 1710 + export const $DeleteFooData2 = { 1711 + description: 'Model used to test deduplication strategy', 1712 + type: 'string' 1713 + } as const;
+229
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch/services.gen.ts.snap
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { client, type Options, formDataBodySerializer } from '@hey-api/client-fetch'; 4 + import type { PostServiceWithEmptyTagData, PostServiceWithEmptyTagError, PostServiceWithEmptyTagResponse3, ApiVversionOdataControllerCountError, ApiVversionOdataControllerCountResponse, DeleteFooData3, CallWithDescriptionsData, DeprecatedCallData, CallWithParametersData, CallWithWeirdParameterNamesData, GetCallWithOptionalParamData, PostCallWithOptionalParamData, PostApiRequestBodyData, PostApiFormDataData, CallWithDefaultParametersData, CallWithDefaultOptionalParametersData, CallToTestOrderOfParamsData, CallWithNoContentResponseError, CallWithNoContentResponseResponse, CallWithResponseAndNoContentResponseError, CallWithResponseAndNoContentResponseResponse, DummyAError, DummyAResponse, DummyBError, DummyBResponse, CallWithResponseError, CallWithResponseResponse, CallWithDuplicateResponsesError, CallWithDuplicateResponsesResponse, CallWithResponsesError, CallWithResponsesResponse, CollectionFormatData, TypesData, TypesError, TypesResponse, UploadFileData, UploadFileError, UploadFileResponse, FileResponseData, FileResponseError, FileResponseResponse, ComplexTypesData, ComplexTypesError, ComplexTypesResponse, MultipartRequestData, MultipartResponseError, MultipartResponseResponse, ComplexParamsData, ComplexParamsError, ComplexParamsResponse, CallWithResultFromHeaderError, CallWithResultFromHeaderResponse, TestErrorCodeData, TestErrorCodeError, TestErrorCodeResponse, NonAsciiæøåÆøÅöôêÊ字符串Data, NonAsciiæøåÆøÅöôêÊ字符串Error, NonAsciiæøåÆøÅöôêÊ字符串Response } from './types.gen'; 5 + 6 + export const serviceWithEmptyTag = (options?: Options) => { return (options?.client ?? client).get<void>({ 7 + ...options, 8 + url: '/api/v{api-version}/no-tag' 9 + }); }; 10 + 11 + export const postServiceWithEmptyTag = (options: Options<PostServiceWithEmptyTagData>) => { return (options?.client ?? client).post<PostServiceWithEmptyTagResponse3, PostServiceWithEmptyTagError>({ 12 + ...options, 13 + url: '/api/v{api-version}/no-tag' 14 + }); }; 15 + 16 + export const apiVVersionOdataControllerCount = (options?: Options) => { return (options?.client ?? client).get<ApiVversionOdataControllerCountResponse, ApiVversionOdataControllerCountError>({ 17 + ...options, 18 + url: '/api/v{api-version}/simple/$count' 19 + }); }; 20 + 21 + export const getCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).get<void>({ 22 + ...options, 23 + url: '/api/v{api-version}/simple' 24 + }); }; 25 + 26 + export const putCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).put<void>({ 27 + ...options, 28 + url: '/api/v{api-version}/simple' 29 + }); }; 30 + 31 + export const postCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).post<void>({ 32 + ...options, 33 + url: '/api/v{api-version}/simple' 34 + }); }; 35 + 36 + export const deleteCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).delete<void>({ 37 + ...options, 38 + url: '/api/v{api-version}/simple' 39 + }); }; 40 + 41 + export const optionsCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).options<void>({ 42 + ...options, 43 + url: '/api/v{api-version}/simple' 44 + }); }; 45 + 46 + export const headCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).head<void>({ 47 + ...options, 48 + url: '/api/v{api-version}/simple' 49 + }); }; 50 + 51 + export const patchCallWithoutParametersAndResponse = (options?: Options) => { return (options?.client ?? client).patch<void>({ 52 + ...options, 53 + url: '/api/v{api-version}/simple' 54 + }); }; 55 + 56 + export const deleteFoo = (options: Options<DeleteFooData3>) => { return (options?.client ?? client).delete<void>({ 57 + ...options, 58 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}' 59 + }); }; 60 + 61 + export const callWithDescriptions = (options?: Options<CallWithDescriptionsData>) => { return (options?.client ?? client).post<void>({ 62 + ...options, 63 + url: '/api/v{api-version}/descriptions/' 64 + }); }; 65 + 66 + /** 67 + * @deprecated 68 + */ 69 + export const deprecatedCall = (options: Options<DeprecatedCallData>) => { return (options?.client ?? client).post<void>({ 70 + ...options, 71 + url: '/api/v{api-version}/parameters/deprecated' 72 + }); }; 73 + 74 + export const callWithParameters = (options: Options<CallWithParametersData>) => { return (options?.client ?? client).post<void>({ 75 + ...options, 76 + url: '/api/v{api-version}/parameters/{parameterPath}' 77 + }); }; 78 + 79 + export const callWithWeirdParameterNames = (options: Options<CallWithWeirdParameterNamesData>) => { return (options?.client ?? client).post<void>({ 80 + ...options, 81 + url: '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}' 82 + }); }; 83 + 84 + export const getCallWithOptionalParam = (options: Options<GetCallWithOptionalParamData>) => { return (options?.client ?? client).get<void>({ 85 + ...options, 86 + url: '/api/v{api-version}/parameters/' 87 + }); }; 88 + 89 + export const postCallWithOptionalParam = (options: Options<PostCallWithOptionalParamData>) => { return (options?.client ?? client).post<void>({ 90 + ...options, 91 + url: '/api/v{api-version}/parameters/' 92 + }); }; 93 + 94 + export const postApiRequestBody = (options?: Options<PostApiRequestBodyData>) => { return (options?.client ?? client).post<void>({ 95 + ...options, 96 + url: '/api/v{api-version}/requestBody/' 97 + }); }; 98 + 99 + export const postApiFormData = (options?: Options<PostApiFormDataData>) => { return (options?.client ?? client).post<void>({ 100 + ...options, 101 + ...formDataBodySerializer, 102 + url: '/api/v{api-version}/formData/' 103 + }); }; 104 + 105 + export const callWithDefaultParameters = (options?: Options<CallWithDefaultParametersData>) => { return (options?.client ?? client).get<void>({ 106 + ...options, 107 + url: '/api/v{api-version}/defaults' 108 + }); }; 109 + 110 + export const callWithDefaultOptionalParameters = (options?: Options<CallWithDefaultOptionalParametersData>) => { return (options?.client ?? client).post<void>({ 111 + ...options, 112 + url: '/api/v{api-version}/defaults' 113 + }); }; 114 + 115 + export const callToTestOrderOfParams = (options: Options<CallToTestOrderOfParamsData>) => { return (options?.client ?? client).put<void>({ 116 + ...options, 117 + url: '/api/v{api-version}/defaults' 118 + }); }; 119 + 120 + export const duplicateName = (options?: Options) => { return (options?.client ?? client).get<void>({ 121 + ...options, 122 + url: '/api/v{api-version}/duplicate' 123 + }); }; 124 + 125 + export const duplicateName1 = (options?: Options) => { return (options?.client ?? client).post<void>({ 126 + ...options, 127 + url: '/api/v{api-version}/duplicate' 128 + }); }; 129 + 130 + export const duplicateName2 = (options?: Options) => { return (options?.client ?? client).put<void>({ 131 + ...options, 132 + url: '/api/v{api-version}/duplicate' 133 + }); }; 134 + 135 + export const duplicateName3 = (options?: Options) => { return (options?.client ?? client).delete<void>({ 136 + ...options, 137 + url: '/api/v{api-version}/duplicate' 138 + }); }; 139 + 140 + export const callWithNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithNoContentResponseResponse, CallWithNoContentResponseError>({ 141 + ...options, 142 + url: '/api/v{api-version}/no-content' 143 + }); }; 144 + 145 + export const callWithResponseAndNoContentResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseAndNoContentResponseResponse, CallWithResponseAndNoContentResponseError>({ 146 + ...options, 147 + url: '/api/v{api-version}/multiple-tags/response-and-no-content' 148 + }); }; 149 + 150 + export const dummyA = (options?: Options) => { return (options?.client ?? client).get<DummyAResponse, DummyAError>({ 151 + ...options, 152 + url: '/api/v{api-version}/multiple-tags/a' 153 + }); }; 154 + 155 + export const dummyB = (options?: Options) => { return (options?.client ?? client).get<DummyBResponse, DummyBError>({ 156 + ...options, 157 + url: '/api/v{api-version}/multiple-tags/b' 158 + }); }; 159 + 160 + export const callWithResponse = (options?: Options) => { return (options?.client ?? client).get<CallWithResponseResponse, CallWithResponseError>({ 161 + ...options, 162 + url: '/api/v{api-version}/response' 163 + }); }; 164 + 165 + export const callWithDuplicateResponses = (options?: Options) => { return (options?.client ?? client).post<CallWithDuplicateResponsesResponse, CallWithDuplicateResponsesError>({ 166 + ...options, 167 + url: '/api/v{api-version}/response' 168 + }); }; 169 + 170 + export const callWithResponses = (options?: Options) => { return (options?.client ?? client).put<CallWithResponsesResponse, CallWithResponsesError>({ 171 + ...options, 172 + url: '/api/v{api-version}/response' 173 + }); }; 174 + 175 + export const collectionFormat = (options: Options<CollectionFormatData>) => { return (options?.client ?? client).get<void>({ 176 + ...options, 177 + url: '/api/v{api-version}/collectionFormat' 178 + }); }; 179 + 180 + export const types = (options: Options<TypesData>) => { return (options?.client ?? client).get<TypesResponse, TypesError>({ 181 + ...options, 182 + url: '/api/v{api-version}/types' 183 + }); }; 184 + 185 + export const uploadFile = (options: Options<UploadFileData>) => { return (options?.client ?? client).post<UploadFileResponse, UploadFileError>({ 186 + ...options, 187 + url: '/api/v{api-version}/upload' 188 + }); }; 189 + 190 + export const fileResponse = (options: Options<FileResponseData>) => { return (options?.client ?? client).get<FileResponseResponse, FileResponseError>({ 191 + ...options, 192 + url: '/api/v{api-version}/file/{id}' 193 + }); }; 194 + 195 + export const complexTypes = (options: Options<ComplexTypesData>) => { return (options?.client ?? client).get<ComplexTypesResponse, ComplexTypesError>({ 196 + ...options, 197 + url: '/api/v{api-version}/complex' 198 + }); }; 199 + 200 + export const multipartRequest = (options?: Options<MultipartRequestData>) => { return (options?.client ?? client).post<void>({ 201 + ...options, 202 + ...formDataBodySerializer, 203 + url: '/api/v{api-version}/multipart' 204 + }); }; 205 + 206 + export const multipartResponse = (options?: Options) => { return (options?.client ?? client).get<MultipartResponseResponse, MultipartResponseError>({ 207 + ...options, 208 + url: '/api/v{api-version}/multipart' 209 + }); }; 210 + 211 + export const complexParams = (options: Options<ComplexParamsData>) => { return (options?.client ?? client).put<ComplexParamsResponse, ComplexParamsError>({ 212 + ...options, 213 + url: '/api/v{api-version}/complex/{id}' 214 + }); }; 215 + 216 + export const callWithResultFromHeader = (options?: Options) => { return (options?.client ?? client).post<CallWithResultFromHeaderResponse, CallWithResultFromHeaderError>({ 217 + ...options, 218 + url: '/api/v{api-version}/header' 219 + }); }; 220 + 221 + export const testErrorCode = (options: Options<TestErrorCodeData>) => { return (options?.client ?? client).post<TestErrorCodeResponse, TestErrorCodeError>({ 222 + ...options, 223 + url: '/api/v{api-version}/error' 224 + }); }; 225 + 226 + export const nonAsciiæøåÆøÅöôêÊ字符串 = (options: Options<NonAsciiæøåÆøÅöôêÊ字符串Data>) => { return (options?.client ?? client).post<NonAsciiæøåÆøÅöôêÊ字符串Response, NonAsciiæøåÆøÅöôêÊ字符串Error>({ 227 + ...options, 228 + url: '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串' 229 + }); };
+1818
packages/openapi-ts/test/__snapshots__/test/generated/v3_hey-api_client-fetch/types.gen.ts.snap
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + /** 4 + * Testing multiline comments in string: First line 5 + * Second line 6 + * 7 + * Fourth line 8 + */ 9 + export type camelCaseCommentWithBreaks = number; 10 + 11 + /** 12 + * Testing multiline comments in string: First line 13 + * Second line 14 + * 15 + * Fourth line 16 + */ 17 + export type CommentWithBreaks = number; 18 + 19 + /** 20 + * Testing backticks in string: `backticks` and ```multiple backticks``` should work 21 + */ 22 + export type CommentWithBackticks = number; 23 + 24 + /** 25 + * Testing backticks and quotes in string: `backticks`, 'quotes', "double quotes" and ```multiple backticks``` should work 26 + */ 27 + export type CommentWithBackticksAndQuotes = number; 28 + 29 + /** 30 + * Testing slashes in string: \backwards\\\ and /forwards/// should work 31 + */ 32 + export type CommentWithSlashes = number; 33 + 34 + /** 35 + * Testing expression placeholders in string: ${expression} should work 36 + */ 37 + export type CommentWithExpressionPlaceholders = number; 38 + 39 + /** 40 + * Testing quotes in string: 'single quote''' and "double quotes""" should work 41 + */ 42 + export type CommentWithQuotes = number; 43 + 44 + /** 45 + * Testing reserved characters in string: * inline * and ** inline ** should work 46 + */ 47 + export type CommentWithReservedCharacters = number; 48 + 49 + /** 50 + * This is a simple number 51 + */ 52 + export type SimpleInteger = number; 53 + 54 + /** 55 + * This is a simple boolean 56 + */ 57 + export type SimpleBoolean = boolean; 58 + 59 + /** 60 + * This is a simple string 61 + */ 62 + export type SimpleString = string; 63 + 64 + /** 65 + * A string with non-ascii (unicode) characters valid in typescript identifiers (æøåÆØÅöÔèÈ字符串) 66 + */ 67 + export type NonAsciiStringæøåÆØÅöôêÊ字符串 = string; 68 + 69 + /** 70 + * This is a simple file 71 + */ 72 + export type SimpleFile = (Blob | File); 73 + 74 + /** 75 + * This is a simple reference 76 + */ 77 + export type SimpleReference = ModelWithString; 78 + 79 + /** 80 + * This is a simple string 81 + */ 82 + export type SimpleStringWithPattern = string | null; 83 + 84 + /** 85 + * This is a simple enum with strings 86 + */ 87 + export type EnumWithStrings = 'Success' | 'Warning' | 'Error' | "'Single Quote'" | '"Double Quotes"' | 'Non-ascii: øæåôöØÆÅÔÖ字符串'; 88 + 89 + /** 90 + * This is a simple enum with strings 91 + */ 92 + export const EnumWithStrings = { 93 + SUCCESS: 'Success', 94 + WARNING: 'Warning', 95 + ERROR: 'Error', 96 + _SINGLE_QUOTE_: "'Single Quote'", 97 + _DOUBLE_QUOTES_: '"Double Quotes"', 98 + 'NON_ASCII__ØÆÅÔÖ_ØÆÅÔÖ字符串': 'Non-ascii: øæåôöØÆÅÔÖ字符串' 99 + } as const; 100 + 101 + export type EnumWithReplacedCharacters = "'Single Quote'" | '"Double Quotes"' | 'øæåôöØÆÅÔÖ字符串' | 3.1 | ''; 102 + 103 + export const EnumWithReplacedCharacters = { 104 + _SINGLE_QUOTE_: "'Single Quote'", 105 + _DOUBLE_QUOTES_: '"Double Quotes"', 106 + 'ØÆÅÔÖ_ØÆÅÔÖ字符串': 'øæåôöØÆÅÔÖ字符串', 107 + '_3.1': 3.1, 108 + EMPTY_STRING: '' 109 + } as const; 110 + 111 + /** 112 + * This is a simple enum with numbers 113 + */ 114 + export type EnumWithNumbers = 1 | 2 | 3 | 1.1 | 1.2 | 1.3 | 100 | 200 | 300 | -100 | -200 | -300 | -1.1 | -1.2 | -1.3; 115 + 116 + /** 117 + * This is a simple enum with numbers 118 + */ 119 + export const EnumWithNumbers = { 120 + '_1': 1, 121 + '_2': 2, 122 + '_3': 3, 123 + '_1.1': 1.1, 124 + '_1.2': 1.2, 125 + '_1.3': 1.3, 126 + '_100': 100, 127 + '_200': 200, 128 + '_300': 300, 129 + '_-100': -100, 130 + '_-200': -200, 131 + '_-300': -300, 132 + '_-1.1': -1.1, 133 + '_-1.2': -1.2, 134 + '_-1.3': -1.3 135 + } as const; 136 + 137 + /** 138 + * Success=1,Warning=2,Error=3 139 + */ 140 + export type EnumFromDescription = number; 141 + 142 + /** 143 + * This is a simple enum with numbers 144 + */ 145 + export type EnumWithExtensions = 200 | 400 | 500; 146 + 147 + /** 148 + * This is a simple enum with numbers 149 + */ 150 + export const EnumWithExtensions = { 151 + /** 152 + * Used when the status of something is successful 153 + */ 154 + CUSTOM_SUCCESS: 200, 155 + /** 156 + * Used when the status of something has a warning 157 + */ 158 + CUSTOM_WARNING: 400, 159 + /** 160 + * Used when the status of something has an error 161 + */ 162 + CUSTOM_ERROR: 500 163 + } as const; 164 + 165 + export type EnumWithXEnumNames = 0 | 1 | 2; 166 + 167 + export const EnumWithXEnumNames = { 168 + zero: 0, 169 + one: 1, 170 + two: 2 171 + } as const; 172 + 173 + /** 174 + * This is a simple array with numbers 175 + */ 176 + export type ArrayWithNumbers = Array<(number)>; 177 + 178 + /** 179 + * This is a simple array with booleans 180 + */ 181 + export type ArrayWithBooleans = Array<(boolean)>; 182 + 183 + /** 184 + * This is a simple array with strings 185 + */ 186 + export type ArrayWithStrings = Array<(string)>; 187 + 188 + /** 189 + * This is a simple array with references 190 + */ 191 + export type ArrayWithReferences = Array<ModelWithString>; 192 + 193 + /** 194 + * This is a simple array containing an array 195 + */ 196 + export type ArrayWithArray = Array<Array<ModelWithString>>; 197 + 198 + /** 199 + * This is a simple array with properties 200 + */ 201 + export type ArrayWithProperties = Array<{ 202 + '16x16'?: camelCaseCommentWithBreaks; 203 + bar?: string; 204 + }>; 205 + 206 + /** 207 + * This is a simple array with any of properties 208 + */ 209 + export type ArrayWithAnyOfProperties = Array<({ 210 + foo?: string; 211 + } | { 212 + bar?: string; 213 + })>; 214 + 215 + export type AnyOfAnyAndNull = { 216 + data?: unknown | null; 217 + }; 218 + 219 + /** 220 + * This is a simple array with any of properties 221 + */ 222 + export type AnyOfArrays = { 223 + results?: Array<({ 224 + foo?: string; 225 + } | { 226 + bar?: string; 227 + })>; 228 + }; 229 + 230 + /** 231 + * This is a string dictionary 232 + */ 233 + export type DictionaryWithString = { 234 + [key: string]: (string); 235 + }; 236 + 237 + export type DictionaryWithPropertiesAndAdditionalProperties = { 238 + foo?: number; 239 + bar?: boolean; 240 + '[key: string]': (string | number | boolean) | undefined; 241 + }; 242 + 243 + /** 244 + * This is a string reference 245 + */ 246 + export type DictionaryWithReference = { 247 + [key: string]: ModelWithString; 248 + }; 249 + 250 + /** 251 + * This is a complex dictionary 252 + */ 253 + export type DictionaryWithArray = { 254 + [key: string]: Array<ModelWithString>; 255 + }; 256 + 257 + /** 258 + * This is a string dictionary 259 + */ 260 + export type DictionaryWithDictionary = { 261 + [key: string]: { 262 + [key: string]: (string); 263 + }; 264 + }; 265 + 266 + /** 267 + * This is a complex dictionary 268 + */ 269 + export type DictionaryWithProperties = { 270 + [key: string]: { 271 + foo?: string; 272 + bar?: string; 273 + }; 274 + }; 275 + 276 + /** 277 + * This is a model with one number property 278 + */ 279 + export type ModelWithInteger = { 280 + /** 281 + * This is a simple number property 282 + */ 283 + prop?: number; 284 + }; 285 + 286 + /** 287 + * This is a model with one boolean property 288 + */ 289 + export type ModelWithBoolean = { 290 + /** 291 + * This is a simple boolean property 292 + */ 293 + prop?: boolean; 294 + }; 295 + 296 + /** 297 + * This is a model with one string property 298 + */ 299 + export type ModelWithString = { 300 + /** 301 + * This is a simple string property 302 + */ 303 + prop?: string; 304 + }; 305 + 306 + /** 307 + * This is a model with one string property 308 + */ 309 + export type ModelWithStringError = { 310 + /** 311 + * This is a simple string property 312 + */ 313 + prop?: string; 314 + }; 315 + 316 + /** 317 + * `Comment` or `VoiceComment`. The JSON object for adding voice comments to tickets is different. See [Adding voice comments to tickets](/documentation/ticketing/managing-tickets/adding-voice-comments-to-tickets) 318 + */ 319 + export type Model_From_Zendesk = string; 320 + 321 + /** 322 + * This is a model with one string property 323 + */ 324 + export type ModelWithNullableString = { 325 + /** 326 + * This is a simple string property 327 + */ 328 + nullableProp1?: string | null; 329 + /** 330 + * This is a simple string property 331 + */ 332 + nullableRequiredProp1: string | null; 333 + /** 334 + * This is a simple string property 335 + */ 336 + nullableProp2?: string | null; 337 + /** 338 + * This is a simple string property 339 + */ 340 + nullableRequiredProp2: string | null; 341 + /** 342 + * This is a simple enum with strings 343 + */ 344 + 'foo_bar-enum'?: 'Success' | 'Warning' | 'Error' | 'ØÆÅ字符串'; 345 + }; 346 + 347 + /** 348 + * This is a simple enum with strings 349 + */ 350 + export type foo_bar_enum = 'Success' | 'Warning' | 'Error' | 'ØÆÅ字符串'; 351 + 352 + /** 353 + * This is a simple enum with strings 354 + */ 355 + export const foo_bar_enum = { 356 + SUCCESS: 'Success', 357 + WARNING: 'Warning', 358 + ERROR: 'Error', 359 + 'ØÆÅ字符串': 'ØÆÅ字符串' 360 + } as const; 361 + 362 + /** 363 + * This is a model with one enum 364 + */ 365 + export type ModelWithEnum = { 366 + /** 367 + * This is a simple enum with strings 368 + */ 369 + 'foo_bar-enum'?: 'Success' | 'Warning' | 'Error' | 'ØÆÅ字符串'; 370 + /** 371 + * These are the HTTP error code enums 372 + */ 373 + statusCode?: '100' | '200 FOO' | '300 FOO_BAR' | '400 foo-bar' | '500 foo.bar' | '600 foo&bar'; 374 + /** 375 + * Simple boolean enum 376 + */ 377 + bool?: boolean; 378 + }; 379 + 380 + /** 381 + * These are the HTTP error code enums 382 + */ 383 + export type statusCode = '100' | '200 FOO' | '300 FOO_BAR' | '400 foo-bar' | '500 foo.bar' | '600 foo&bar'; 384 + 385 + /** 386 + * These are the HTTP error code enums 387 + */ 388 + export const statusCode = { 389 + _100: '100', 390 + _200_FOO: '200 FOO', 391 + _300_FOO_BAR: '300 FOO_BAR', 392 + _400_FOO_BAR: '400 foo-bar', 393 + _500_FOO_BAR: '500 foo.bar', 394 + _600_FOO_BAR: '600 foo&bar' 395 + } as const; 396 + 397 + /** 398 + * This is a model with one enum with escaped name 399 + */ 400 + export type ModelWithEnumWithHyphen = { 401 + 'foo-bar-baz-qux'?: '3.0'; 402 + }; 403 + 404 + export type foo_bar_baz_qux = '3.0'; 405 + 406 + export const foo_bar_baz_qux = { 407 + _3_0: '3.0' 408 + } as const; 409 + 410 + /** 411 + * This is a model with one enum 412 + */ 413 + export type ModelWithEnumFromDescription = { 414 + /** 415 + * Success=1,Warning=2,Error=3 416 + */ 417 + test?: number; 418 + }; 419 + 420 + /** 421 + * This is a model with nested enums 422 + */ 423 + export type ModelWithNestedEnums = { 424 + dictionaryWithEnum?: { 425 + [key: string]: ('Success' | 'Warning' | 'Error'); 426 + }; 427 + dictionaryWithEnumFromDescription?: { 428 + [key: string]: (number); 429 + }; 430 + arrayWithEnum?: Array<('Success' | 'Warning' | 'Error')>; 431 + arrayWithDescription?: Array<(number)>; 432 + /** 433 + * This is a simple enum with strings 434 + */ 435 + 'foo_bar-enum'?: 'Success' | 'Warning' | 'Error' | 'ØÆÅ字符串'; 436 + }; 437 + 438 + /** 439 + * This is a model with one property containing a reference 440 + */ 441 + export type ModelWithReference = { 442 + prop?: ModelWithProperties; 443 + }; 444 + 445 + /** 446 + * This is a model with one property containing an array 447 + */ 448 + export type ModelWithArrayReadOnlyAndWriteOnly = { 449 + prop?: Array<ModelWithReadOnlyAndWriteOnly>; 450 + propWithFile?: Array<((Blob | File))>; 451 + propWithNumber?: Array<(number)>; 452 + }; 453 + 454 + /** 455 + * This is a model with one property containing an array 456 + */ 457 + export type ModelWithArray = { 458 + prop?: Array<ModelWithString>; 459 + propWithFile?: Array<((Blob | File))>; 460 + propWithNumber?: Array<(number)>; 461 + }; 462 + 463 + /** 464 + * This is a model with one property containing a dictionary 465 + */ 466 + export type ModelWithDictionary = { 467 + prop?: { 468 + [key: string]: (string); 469 + }; 470 + }; 471 + 472 + /** 473 + * This is a deprecated model with a deprecated property 474 + * @deprecated 475 + */ 476 + export type DeprecatedModel = { 477 + /** 478 + * This is a deprecated property 479 + * @deprecated 480 + */ 481 + prop?: string; 482 + }; 483 + 484 + /** 485 + * This is a model with one property containing a circular reference 486 + */ 487 + export type ModelWithCircularReference = { 488 + prop?: ModelWithCircularReference; 489 + }; 490 + 491 + /** 492 + * This is a model with one property with a 'one of' relationship 493 + */ 494 + export type CompositionWithOneOf = { 495 + propA?: ModelWithString | ModelWithEnum | ModelWithArray | ModelWithDictionary; 496 + }; 497 + 498 + /** 499 + * This is a model with one property with a 'one of' relationship where the options are not $ref 500 + */ 501 + export type CompositionWithOneOfAnonymous = { 502 + propA?: { 503 + propA?: string; 504 + } | string | number; 505 + }; 506 + 507 + /** 508 + * Circle 509 + */ 510 + export type ModelCircle = { 511 + kind: 'circle'; 512 + radius?: number; 513 + }; 514 + 515 + /** 516 + * Square 517 + */ 518 + export type ModelSquare = { 519 + kind: 'square'; 520 + sideLength?: number; 521 + }; 522 + 523 + /** 524 + * This is a model with one property with a 'one of' relationship where the options are not $ref 525 + */ 526 + export type CompositionWithOneOfDiscriminator = ModelCircle | ModelSquare; 527 + 528 + /** 529 + * This is a model with one property with a 'any of' relationship 530 + */ 531 + export type CompositionWithAnyOf = { 532 + propA?: ModelWithString | ModelWithEnum | ModelWithArray | ModelWithDictionary; 533 + }; 534 + 535 + /** 536 + * This is a model with one property with a 'any of' relationship where the options are not $ref 537 + */ 538 + export type CompositionWithAnyOfAnonymous = { 539 + propA?: { 540 + propA?: string; 541 + } | string | number; 542 + }; 543 + 544 + /** 545 + * This is a model with nested 'any of' property with a type null 546 + */ 547 + export type CompositionWithNestedAnyAndTypeNull = { 548 + propA?: Array<(ModelWithDictionary | null)> | Array<(ModelWithArray | null)>; 549 + }; 550 + 551 + export type e_num_1Период = 'Bird' | 'Dog'; 552 + 553 + export const e_num_1Период = { 554 + BIRD: 'Bird', 555 + DOG: 'Dog' 556 + } as const; 557 + 558 + export type ConstValue = "ConstValue"; 559 + 560 + /** 561 + * This is a model with one property with a 'any of' relationship where the options are not $ref 562 + */ 563 + export type CompositionWithNestedAnyOfAndNull = { 564 + propA?: Array<(e_num_1Период | ConstValue)> | null; 565 + }; 566 + 567 + /** 568 + * This is a model with one property with a 'one of' relationship 569 + */ 570 + export type CompositionWithOneOfAndNullable = { 571 + propA?: { 572 + boolean?: boolean; 573 + } | ModelWithEnum | ModelWithArray | ModelWithDictionary | null; 574 + }; 575 + 576 + /** 577 + * This is a model that contains a simple dictionary within composition 578 + */ 579 + export type CompositionWithOneOfAndSimpleDictionary = { 580 + propA?: boolean | { 581 + [key: string]: (number); 582 + }; 583 + }; 584 + 585 + /** 586 + * This is a model that contains a dictionary of simple arrays within composition 587 + */ 588 + export type CompositionWithOneOfAndSimpleArrayDictionary = { 589 + propA?: boolean | { 590 + [key: string]: Array<(boolean)>; 591 + }; 592 + }; 593 + 594 + /** 595 + * This is a model that contains a dictionary of complex arrays (composited) within composition 596 + */ 597 + export type CompositionWithOneOfAndComplexArrayDictionary = { 598 + propA?: boolean | { 599 + [key: string]: Array<(number | string)>; 600 + }; 601 + }; 602 + 603 + /** 604 + * This is a model with one property with a 'all of' relationship 605 + */ 606 + export type CompositionWithAllOfAndNullable = { 607 + propA?: ({ 608 + boolean?: boolean; 609 + } & ModelWithEnum & ModelWithArray & ModelWithDictionary) | null; 610 + }; 611 + 612 + /** 613 + * This is a model with one property with a 'any of' relationship 614 + */ 615 + export type CompositionWithAnyOfAndNullable = { 616 + propA?: { 617 + boolean?: boolean; 618 + } | ModelWithEnum | ModelWithArray | ModelWithDictionary | null; 619 + }; 620 + 621 + /** 622 + * This is a base model with two simple optional properties 623 + */ 624 + export type CompositionBaseModel = { 625 + firstName?: string; 626 + lastname?: string; 627 + }; 628 + 629 + /** 630 + * This is a model that extends the base model 631 + */ 632 + export type CompositionExtendedModel = CompositionBaseModel & { 633 + firstName: string; 634 + lastname: string; 635 + age: number; 636 + }; 637 + 638 + /** 639 + * This is a model with one nested property 640 + */ 641 + export type ModelWithProperties = { 642 + required: string; 643 + readonly requiredAndReadOnly: string; 644 + requiredAndNullable: string | null; 645 + string?: string; 646 + number?: number; 647 + boolean?: boolean; 648 + reference?: ModelWithString; 649 + 'property with space'?: string; 650 + default?: string; 651 + try?: string; 652 + readonly '@namespace.string'?: string; 653 + readonly '@namespace.integer'?: number; 654 + }; 655 + 656 + /** 657 + * This is a model with one nested property 658 + */ 659 + export type ModelWithNestedProperties = { 660 + readonly first: { 661 + readonly second: { 662 + readonly third: string | null; 663 + } | null; 664 + } | null; 665 + }; 666 + 667 + /** 668 + * This is a model with duplicated properties 669 + */ 670 + export type ModelWithDuplicateProperties = { 671 + prop?: ModelWithString; 672 + }; 673 + 674 + /** 675 + * This is a model with ordered properties 676 + */ 677 + export type ModelWithOrderedProperties = { 678 + zebra?: string; 679 + apple?: string; 680 + hawaii?: string; 681 + }; 682 + 683 + /** 684 + * This is a model with duplicated imports 685 + */ 686 + export type ModelWithDuplicateImports = { 687 + propA?: ModelWithString; 688 + propB?: ModelWithString; 689 + propC?: ModelWithString; 690 + }; 691 + 692 + /** 693 + * This is a model that extends another model 694 + */ 695 + export type ModelThatExtends = ModelWithString & { 696 + propExtendsA?: string; 697 + propExtendsB?: ModelWithString; 698 + }; 699 + 700 + /** 701 + * This is a model that extends another model 702 + */ 703 + export type ModelThatExtendsExtends = ModelWithString & ModelThatExtends & { 704 + propExtendsC?: string; 705 + propExtendsD?: ModelWithString; 706 + }; 707 + 708 + /** 709 + * This is a model that contains a some patterns 710 + */ 711 + export type ModelWithPattern = { 712 + key: string; 713 + name: string; 714 + readonly enabled?: boolean; 715 + readonly modified?: string; 716 + id?: string; 717 + text?: string; 718 + patternWithSingleQuotes?: string; 719 + patternWithNewline?: string; 720 + patternWithBacktick?: string; 721 + }; 722 + 723 + export type File = { 724 + readonly id?: string; 725 + readonly updated_at?: string; 726 + readonly created_at?: string; 727 + mime: string; 728 + readonly file?: string; 729 + }; 730 + 731 + export type _default = { 732 + name?: string; 733 + }; 734 + 735 + export type Pageable = { 736 + page?: number; 737 + size?: number; 738 + sort?: Array<(string)>; 739 + }; 740 + 741 + /** 742 + * This is a free-form object without additionalProperties. 743 + */ 744 + export type FreeFormObjectWithoutAdditionalProperties = { 745 + [key: string]: unknown; 746 + }; 747 + 748 + /** 749 + * This is a free-form object with additionalProperties: true. 750 + */ 751 + export type FreeFormObjectWithAdditionalPropertiesEqTrue = { 752 + [key: string]: unknown; 753 + }; 754 + 755 + /** 756 + * This is a free-form object with additionalProperties: {}. 757 + */ 758 + export type FreeFormObjectWithAdditionalPropertiesEqEmptyObject = { 759 + [key: string]: unknown; 760 + }; 761 + 762 + export type ModelWithConst = { 763 + String?: "String"; 764 + number?: 0; 765 + null?: null; 766 + withType?: "Some string"; 767 + }; 768 + 769 + /** 770 + * This is a model with one property and additionalProperties: true 771 + */ 772 + export type ModelWithAdditionalPropertiesEqTrue = { 773 + /** 774 + * This is a simple string property 775 + */ 776 + prop?: string; 777 + '[key: string]': unknown | string; 778 + }; 779 + 780 + export type NestedAnyOfArraysNullable = { 781 + nullableArray?: Array<(string | boolean)> | null; 782 + }; 783 + 784 + export type CompositionWithOneOfAndProperties = { 785 + foo: ParameterSimpleParameter; 786 + baz: number | null; 787 + qux: number; 788 + } | { 789 + bar: NonAsciiStringæøåÆØÅöôêÊ字符串; 790 + baz: number | null; 791 + qux: number; 792 + }; 793 + 794 + /** 795 + * An object that can be null 796 + */ 797 + export type NullableObject = { 798 + foo?: string; 799 + } | null; 800 + 801 + /** 802 + * Some % character 803 + */ 804 + export type CharactersInDescription = string; 805 + 806 + export type ModelWithNullableObject = { 807 + data?: NullableObject; 808 + }; 809 + 810 + export type ModelWithOneOfEnum = { 811 + foo: 'Bar'; 812 + } | { 813 + foo: 'Baz'; 814 + } | { 815 + foo: 'Qux'; 816 + } | { 817 + content: string; 818 + foo: 'Quux'; 819 + } | { 820 + content: [ 821 + string, 822 + string 823 + ]; 824 + foo: 'Corge'; 825 + }; 826 + 827 + export type foo = 'Bar'; 828 + 829 + export const foo = { 830 + BAR: 'Bar' 831 + } as const; 832 + 833 + export type ModelWithNestedArrayEnumsDataFoo = 'foo' | 'bar'; 834 + 835 + export const ModelWithNestedArrayEnumsDataFoo = { 836 + FOO: 'foo', 837 + BAR: 'bar' 838 + } as const; 839 + 840 + export type ModelWithNestedArrayEnumsDataBar = 'baz' | 'qux'; 841 + 842 + export const ModelWithNestedArrayEnumsDataBar = { 843 + BAZ: 'baz', 844 + QUX: 'qux' 845 + } as const; 846 + 847 + export type ModelWithNestedArrayEnumsData = { 848 + foo?: Array<ModelWithNestedArrayEnumsDataFoo>; 849 + bar?: Array<ModelWithNestedArrayEnumsDataBar>; 850 + }; 851 + 852 + export type ModelWithNestedArrayEnums = { 853 + array_strings?: Array<(string)>; 854 + data?: ModelWithNestedArrayEnumsData; 855 + }; 856 + 857 + export type ModelWithNestedCompositionEnums = { 858 + foo?: ModelWithNestedArrayEnumsDataFoo; 859 + }; 860 + 861 + export type ModelWithReadOnlyAndWriteOnly = { 862 + foo: string; 863 + readonly bar: string; 864 + baz: string; 865 + }; 866 + 867 + export type ModelWithConstantSizeArray = [ 868 + number, 869 + number 870 + ]; 871 + 872 + export type ModelWithAnyOfConstantSizeArray = [ 873 + number | string, 874 + number | string, 875 + number | string 876 + ]; 877 + 878 + export type ModelWithAnyOfConstantSizeArrayNullable = [ 879 + number | null | string, 880 + number | null | string, 881 + number | null | string 882 + ]; 883 + 884 + export type ModelWithAnyOfConstantSizeArrayWithNSizeAndOptions = [ 885 + number | string, 886 + number | string 887 + ]; 888 + 889 + export type ModelWithAnyOfConstantSizeArrayAndIntersect = [ 890 + number & string, 891 + number & string 892 + ]; 893 + 894 + export type ModelWithNumericEnumUnion = { 895 + /** 896 + * Период 897 + */ 898 + value?: -10 | -1 | 0 | 1 | 3 | 6 | 12; 899 + }; 900 + 901 + /** 902 + * Период 903 + */ 904 + export type value = -10 | -1 | 0 | 1 | 3 | 6 | 12; 905 + 906 + /** 907 + * Период 908 + */ 909 + export const value = { 910 + '_-10': -10, 911 + '_-1': -1, 912 + '_0': 0, 913 + '_1': 1, 914 + '_3': 3, 915 + '_6': 6, 916 + '_12': 12 917 + } as const; 918 + 919 + /** 920 + * Some description with `back ticks` 921 + */ 922 + export type ModelWithBackticksInDescription = { 923 + /** 924 + * The template `that` should be used for parsing and importing the contents of the CSV file. 925 + * 926 + * <br/><p>There is one placeholder currently supported:<ul> <li><b>${x}</b> - refers to the n-th column in the CSV file, e.g. ${1}, ${2}, ...)</li></ul><p>Example of a correct JSON template:</p> 927 + * <pre> 928 + * [ 929 + * { 930 + * "resourceType": "Asset", 931 + * "identifier": { 932 + * "name": "${1}", 933 + * "domain": { 934 + * "name": "${2}", 935 + * "community": { 936 + * "name": "Some Community" 937 + * } 938 + * } 939 + * }, 940 + * "attributes" : { 941 + * "00000000-0000-0000-0000-000000003115" : [ { 942 + * "value" : "${3}" 943 + * } ], 944 + * "00000000-0000-0000-0000-000000000222" : [ { 945 + * "value" : "${4}" 946 + * } ] 947 + * } 948 + * } 949 + * ] 950 + * </pre> 951 + */ 952 + template?: string; 953 + }; 954 + 955 + /** 956 + * Model used to test deduplication strategy (unused) 957 + */ 958 + export type ParameterSimpleParameterUnused = string; 959 + 960 + /** 961 + * Model used to test deduplication strategy 962 + */ 963 + export type PostServiceWithEmptyTagResponse = string; 964 + 965 + /** 966 + * Model used to test deduplication strategy 967 + */ 968 + export type PostServiceWithEmptyTagResponse2 = string; 969 + 970 + /** 971 + * Model used to test deduplication strategy 972 + */ 973 + export type DeleteFooData = string; 974 + 975 + /** 976 + * Model used to test deduplication strategy 977 + */ 978 + export type DeleteFooData2 = string; 979 + 980 + /** 981 + * This is a reusable parameter 982 + */ 983 + export type ParameterSimpleParameter = string; 984 + 985 + /** 986 + * Parameter with illegal characters 987 + */ 988 + export type Parameterx_Foo_Bar = ModelWithString; 989 + 990 + export type PostServiceWithEmptyTagData = { 991 + body: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; 992 + }; 993 + 994 + export type PostServiceWithEmptyTagResponse3 = ModelWithReadOnlyAndWriteOnly; 995 + 996 + export type PostServiceWithEmptyTagError = unknown; 997 + 998 + export type ApiVversionOdataControllerCountResponse = Model_From_Zendesk; 999 + 1000 + export type ApiVversionOdataControllerCountError = unknown; 1001 + 1002 + export type DeleteFooData3 = { 1003 + headers: { 1004 + /** 1005 + * Parameter with illegal characters 1006 + */ 1007 + 'x-Foo-Bar': ModelWithString; 1008 + }; 1009 + path: { 1010 + /** 1011 + * bar in method 1012 + */ 1013 + BarParam: string; 1014 + /** 1015 + * foo in method 1016 + */ 1017 + foo_param: string; 1018 + }; 1019 + }; 1020 + 1021 + export type CallWithDescriptionsData = { 1022 + query?: { 1023 + /** 1024 + * Testing backticks in string: `backticks` and ```multiple backticks``` should work 1025 + */ 1026 + parameterWithBackticks?: unknown; 1027 + /** 1028 + * Testing multiline comments in string: First line 1029 + * Second line 1030 + * 1031 + * Fourth line 1032 + */ 1033 + parameterWithBreaks?: unknown; 1034 + /** 1035 + * Testing expression placeholders in string: ${expression} should work 1036 + */ 1037 + parameterWithExpressionPlaceholders?: unknown; 1038 + /** 1039 + * Testing quotes in string: 'single quote''' and "double quotes""" should work 1040 + */ 1041 + parameterWithQuotes?: unknown; 1042 + /** 1043 + * Testing reserved characters in string: * inline * and ** inline ** should work 1044 + */ 1045 + parameterWithReservedCharacters?: unknown; 1046 + /** 1047 + * Testing slashes in string: \backwards\\\ and /forwards/// should work 1048 + */ 1049 + parameterWithSlashes?: unknown; 1050 + }; 1051 + }; 1052 + 1053 + export type DeprecatedCallData = { 1054 + headers: { 1055 + /** 1056 + * This parameter is deprecated 1057 + * @deprecated 1058 + */ 1059 + parameter: DeprecatedModel | null; 1060 + }; 1061 + }; 1062 + 1063 + export type CallWithParametersData = { 1064 + /** 1065 + * This is the parameter that goes into the body 1066 + */ 1067 + body: ModelWithString | null; 1068 + headers: { 1069 + /** 1070 + * This is the parameter that goes into the header 1071 + */ 1072 + parameterHeader: string | null; 1073 + }; 1074 + path: { 1075 + /** 1076 + * This is the parameter that goes into the path 1077 + */ 1078 + parameterPath: string | null; 1079 + }; 1080 + query: { 1081 + foo_all_of_enum: ModelWithNestedArrayEnumsDataFoo; 1082 + foo_ref_enum?: ModelWithNestedArrayEnumsDataFoo; 1083 + /** 1084 + * This is the parameter that goes into the query params 1085 + */ 1086 + parameterQuery: string | null; 1087 + }; 1088 + }; 1089 + 1090 + export type CallWithWeirdParameterNamesData = { 1091 + /** 1092 + * This is the parameter that goes into the body 1093 + */ 1094 + body: ModelWithString | null; 1095 + headers: { 1096 + /** 1097 + * This is the parameter that goes into the request header 1098 + */ 1099 + 'parameter.header': string | null; 1100 + }; 1101 + path?: { 1102 + /** 1103 + * This is the parameter that goes into the path 1104 + */ 1105 + 'parameter-path-2'?: string; 1106 + /** 1107 + * This is the parameter that goes into the path 1108 + */ 1109 + 'PARAMETER-PATH-3'?: string; 1110 + /** 1111 + * This is the parameter that goes into the path 1112 + */ 1113 + 'parameter.path.1'?: string; 1114 + }; 1115 + query: { 1116 + /** 1117 + * This is the parameter with a reserved keyword 1118 + */ 1119 + default?: string; 1120 + /** 1121 + * This is the parameter that goes into the request query params 1122 + */ 1123 + 'parameter-query': string | null; 1124 + }; 1125 + }; 1126 + 1127 + export type GetCallWithOptionalParamData = { 1128 + /** 1129 + * This is a required parameter 1130 + */ 1131 + body: ModelWithOneOfEnum; 1132 + query?: { 1133 + /** 1134 + * This is an optional parameter 1135 + */ 1136 + parameter?: string; 1137 + }; 1138 + }; 1139 + 1140 + export type PostCallWithOptionalParamData = { 1141 + /** 1142 + * This is an optional parameter 1143 + */ 1144 + body?: ModelWithString; 1145 + query: { 1146 + /** 1147 + * This is a required parameter 1148 + */ 1149 + parameter: Pageable; 1150 + }; 1151 + }; 1152 + 1153 + export type PostApiRequestBodyData = { 1154 + /** 1155 + * A reusable request body 1156 + */ 1157 + body?: ModelWithString; 1158 + query?: { 1159 + /** 1160 + * This is a reusable parameter 1161 + */ 1162 + parameter?: string; 1163 + }; 1164 + }; 1165 + 1166 + export type PostApiFormDataData = { 1167 + query?: { 1168 + /** 1169 + * This is a reusable parameter 1170 + */ 1171 + parameter?: string; 1172 + }; 1173 + }; 1174 + 1175 + export type CallWithDefaultParametersData = { 1176 + query?: { 1177 + /** 1178 + * This is a simple boolean with default value 1179 + */ 1180 + parameterBoolean?: boolean | null; 1181 + /** 1182 + * This is a simple enum with default value 1183 + */ 1184 + parameterEnum?: 'Success' | 'Warning' | 'Error'; 1185 + /** 1186 + * This is a simple model with default value 1187 + */ 1188 + parameterModel?: ModelWithString | null; 1189 + /** 1190 + * This is a simple number with default value 1191 + */ 1192 + parameterNumber?: number | null; 1193 + /** 1194 + * This is a simple string with default value 1195 + */ 1196 + parameterString?: string | null; 1197 + }; 1198 + }; 1199 + 1200 + export type CallWithDefaultOptionalParametersData = { 1201 + query?: { 1202 + /** 1203 + * This is a simple boolean that is optional with default value 1204 + */ 1205 + parameterBoolean?: boolean; 1206 + /** 1207 + * This is a simple enum that is optional with default value 1208 + */ 1209 + parameterEnum?: 'Success' | 'Warning' | 'Error'; 1210 + /** 1211 + * This is a simple model that is optional with default value 1212 + */ 1213 + parameterModel?: ModelWithString; 1214 + /** 1215 + * This is a simple number that is optional with default value 1216 + */ 1217 + parameterNumber?: number; 1218 + /** 1219 + * This is a simple string that is optional with default value 1220 + */ 1221 + parameterString?: string; 1222 + }; 1223 + }; 1224 + 1225 + export type CallToTestOrderOfParamsData = { 1226 + query: { 1227 + /** 1228 + * This is a optional string with default 1229 + */ 1230 + parameterOptionalStringWithDefault?: string; 1231 + /** 1232 + * This is a optional string with empty default 1233 + */ 1234 + parameterOptionalStringWithEmptyDefault?: string; 1235 + /** 1236 + * This is a optional string with no default 1237 + */ 1238 + parameterOptionalStringWithNoDefault?: string; 1239 + /** 1240 + * This is a string that can be null with default 1241 + */ 1242 + parameterStringNullableWithDefault?: string | null; 1243 + /** 1244 + * This is a string that can be null with no default 1245 + */ 1246 + parameterStringNullableWithNoDefault?: string | null; 1247 + /** 1248 + * This is a string with default 1249 + */ 1250 + parameterStringWithDefault: string; 1251 + /** 1252 + * This is a string with empty default 1253 + */ 1254 + parameterStringWithEmptyDefault: string; 1255 + /** 1256 + * This is a string with no default 1257 + */ 1258 + parameterStringWithNoDefault: string; 1259 + }; 1260 + }; 1261 + 1262 + export type CallWithNoContentResponseResponse = void; 1263 + 1264 + export type CallWithNoContentResponseError = unknown; 1265 + 1266 + export type CallWithResponseAndNoContentResponseResponse = number | void; 1267 + 1268 + export type CallWithResponseAndNoContentResponseError = unknown; 1269 + 1270 + export type DummyAResponse = void; 1271 + 1272 + export type DummyAError = unknown; 1273 + 1274 + export type DummyBResponse = void; 1275 + 1276 + export type DummyBError = unknown; 1277 + 1278 + export type CallWithResponseResponse = ModelWithString; 1279 + 1280 + export type CallWithResponseError = unknown; 1281 + 1282 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1283 + 1284 + export type CallWithDuplicateResponsesError = unknown; 1285 + 1286 + export type CallWithResponsesResponse = { 1287 + readonly '@namespace.string'?: string; 1288 + readonly '@namespace.integer'?: number; 1289 + readonly value?: Array<ModelWithString>; 1290 + } | ModelThatExtends | ModelThatExtendsExtends; 1291 + 1292 + export type CallWithResponsesError = unknown; 1293 + 1294 + export type CollectionFormatData = { 1295 + query: { 1296 + /** 1297 + * This is an array parameter that is sent as csv format (comma-separated values) 1298 + */ 1299 + parameterArrayCSV: Array<(string)> | null; 1300 + /** 1301 + * This is an array parameter that is sent as multi format (multiple parameter instances) 1302 + */ 1303 + parameterArrayMulti: Array<(string)> | null; 1304 + /** 1305 + * This is an array parameter that is sent as pipes format (pipe-separated values) 1306 + */ 1307 + parameterArrayPipes: Array<(string)> | null; 1308 + /** 1309 + * This is an array parameter that is sent as ssv format (space-separated values) 1310 + */ 1311 + parameterArraySSV: Array<(string)> | null; 1312 + /** 1313 + * This is an array parameter that is sent as tsv format (tab-separated values) 1314 + */ 1315 + parameterArrayTSV: Array<(string)> | null; 1316 + }; 1317 + }; 1318 + 1319 + export type TypesData = { 1320 + path?: { 1321 + /** 1322 + * This is a number parameter 1323 + */ 1324 + id?: number; 1325 + }; 1326 + query: { 1327 + /** 1328 + * This is an array parameter 1329 + */ 1330 + parameterArray: Array<(string)> | null; 1331 + /** 1332 + * This is a boolean parameter 1333 + */ 1334 + parameterBoolean: boolean | null; 1335 + /** 1336 + * This is a dictionary parameter 1337 + */ 1338 + parameterDictionary: { 1339 + [key: string]: unknown; 1340 + } | null; 1341 + /** 1342 + * This is an enum parameter 1343 + */ 1344 + parameterEnum: 'Success' | 'Warning' | 'Error' | null; 1345 + /** 1346 + * This is a number parameter 1347 + */ 1348 + parameterNumber: number; 1349 + /** 1350 + * This is an object parameter 1351 + */ 1352 + parameterObject: { 1353 + [key: string]: unknown; 1354 + } | null; 1355 + /** 1356 + * This is a string parameter 1357 + */ 1358 + parameterString: string | null; 1359 + }; 1360 + }; 1361 + 1362 + export type TypesResponse = number | string | boolean | { 1363 + [key: string]: unknown; 1364 + }; 1365 + 1366 + export type TypesError = unknown; 1367 + 1368 + export type UploadFileData = unknown; 1369 + 1370 + export type UploadFileResponse = boolean; 1371 + 1372 + export type UploadFileError = unknown; 1373 + 1374 + export type FileResponseData = { 1375 + path: { 1376 + id: string; 1377 + }; 1378 + }; 1379 + 1380 + export type FileResponseResponse = (Blob | File); 1381 + 1382 + export type FileResponseError = unknown; 1383 + 1384 + export type ComplexTypesData = { 1385 + query: { 1386 + /** 1387 + * Parameter containing object 1388 + */ 1389 + parameterObject: { 1390 + first?: { 1391 + second?: { 1392 + third?: string; 1393 + }; 1394 + }; 1395 + }; 1396 + /** 1397 + * Parameter containing reference 1398 + */ 1399 + parameterReference: ModelWithString; 1400 + }; 1401 + }; 1402 + 1403 + export type ComplexTypesResponse = Array<ModelWithString>; 1404 + 1405 + export type ComplexTypesError = unknown; 1406 + 1407 + export type MultipartRequestData = unknown; 1408 + 1409 + export type MultipartResponseResponse = { 1410 + file?: (Blob | File); 1411 + metadata?: { 1412 + foo?: string; 1413 + bar?: string; 1414 + }; 1415 + }; 1416 + 1417 + export type MultipartResponseError = unknown; 1418 + 1419 + export type ComplexParamsData = { 1420 + body?: { 1421 + readonly key: string | null; 1422 + name: string | null; 1423 + enabled?: boolean; 1424 + readonly type: 'Monkey' | 'Horse' | 'Bird'; 1425 + listOfModels?: Array<ModelWithString> | null; 1426 + listOfStrings?: Array<(string)> | null; 1427 + parameters: ModelWithString | ModelWithEnum | ModelWithArray | ModelWithDictionary; 1428 + readonly user?: { 1429 + readonly id?: number; 1430 + readonly name?: string | null; 1431 + }; 1432 + }; 1433 + path: { 1434 + id: number; 1435 + }; 1436 + }; 1437 + 1438 + export type ComplexParamsResponse = ModelWithString; 1439 + 1440 + export type ComplexParamsError = unknown; 1441 + 1442 + export type CallWithResultFromHeaderResponse = string; 1443 + 1444 + export type CallWithResultFromHeaderError = unknown; 1445 + 1446 + export type TestErrorCodeData = { 1447 + query: { 1448 + /** 1449 + * Status code to return 1450 + */ 1451 + status: number; 1452 + }; 1453 + }; 1454 + 1455 + export type TestErrorCodeResponse = unknown; 1456 + 1457 + export type TestErrorCodeError = unknown; 1458 + 1459 + export type NonAsciiæøåÆøÅöôêÊ字符串Data = { 1460 + query: { 1461 + /** 1462 + * Dummy input param 1463 + */ 1464 + nonAsciiParamæøåÆØÅöôêÊ: number; 1465 + }; 1466 + }; 1467 + 1468 + export type NonAsciiæøåÆøÅöôêÊ字符串Response = Array<NonAsciiStringæøåÆØÅöôêÊ字符串>; 1469 + 1470 + export type NonAsciiæøåÆøÅöôêÊ字符串Error = unknown; 1471 + 1472 + export type $OpenApiTs = { 1473 + '/api/v{api-version}/no-tag': { 1474 + post: { 1475 + req: PostServiceWithEmptyTagData; 1476 + res: { 1477 + default: ModelWithReadOnlyAndWriteOnly; 1478 + }; 1479 + }; 1480 + }; 1481 + '/api/v{api-version}/simple/$count': { 1482 + get: { 1483 + res: { 1484 + /** 1485 + * Success 1486 + */ 1487 + '200': Model_From_Zendesk; 1488 + }; 1489 + }; 1490 + }; 1491 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1492 + delete: { 1493 + req: DeleteFooData3; 1494 + }; 1495 + }; 1496 + '/api/v{api-version}/descriptions/': { 1497 + post: { 1498 + req: CallWithDescriptionsData; 1499 + }; 1500 + }; 1501 + '/api/v{api-version}/parameters/deprecated': { 1502 + post: { 1503 + req: DeprecatedCallData; 1504 + }; 1505 + }; 1506 + '/api/v{api-version}/parameters/{parameterPath}': { 1507 + post: { 1508 + req: CallWithParametersData; 1509 + }; 1510 + }; 1511 + '/api/v{api-version}/parameters/{parameter.path.1}/{parameter-path-2}/{PARAMETER-PATH-3}': { 1512 + post: { 1513 + req: CallWithWeirdParameterNamesData; 1514 + }; 1515 + }; 1516 + '/api/v{api-version}/parameters/': { 1517 + get: { 1518 + req: GetCallWithOptionalParamData; 1519 + }; 1520 + post: { 1521 + req: PostCallWithOptionalParamData; 1522 + }; 1523 + }; 1524 + '/api/v{api-version}/requestBody/': { 1525 + post: { 1526 + req: PostApiRequestBodyData; 1527 + }; 1528 + }; 1529 + '/api/v{api-version}/formData/': { 1530 + post: { 1531 + req: PostApiFormDataData; 1532 + }; 1533 + }; 1534 + '/api/v{api-version}/defaults': { 1535 + get: { 1536 + req: CallWithDefaultParametersData; 1537 + }; 1538 + post: { 1539 + req: CallWithDefaultOptionalParametersData; 1540 + }; 1541 + put: { 1542 + req: CallToTestOrderOfParamsData; 1543 + }; 1544 + }; 1545 + '/api/v{api-version}/no-content': { 1546 + get: { 1547 + res: { 1548 + /** 1549 + * Success 1550 + */ 1551 + '204': void; 1552 + }; 1553 + }; 1554 + }; 1555 + '/api/v{api-version}/multiple-tags/response-and-no-content': { 1556 + get: { 1557 + res: { 1558 + /** 1559 + * Response is a simple number 1560 + */ 1561 + '200': number; 1562 + /** 1563 + * Success 1564 + */ 1565 + '204': void; 1566 + }; 1567 + }; 1568 + }; 1569 + '/api/v{api-version}/multiple-tags/a': { 1570 + get: { 1571 + res: { 1572 + /** 1573 + * Success 1574 + */ 1575 + '204': void; 1576 + }; 1577 + }; 1578 + }; 1579 + '/api/v{api-version}/multiple-tags/b': { 1580 + get: { 1581 + res: { 1582 + /** 1583 + * Success 1584 + */ 1585 + '204': void; 1586 + }; 1587 + }; 1588 + }; 1589 + '/api/v{api-version}/response': { 1590 + get: { 1591 + res: { 1592 + default: ModelWithString; 1593 + }; 1594 + }; 1595 + post: { 1596 + res: { 1597 + /** 1598 + * Message for 200 response 1599 + */ 1600 + '200': ModelWithBoolean & ModelWithInteger; 1601 + /** 1602 + * Message for 201 response 1603 + */ 1604 + '201': ModelWithString; 1605 + /** 1606 + * Message for 500 error 1607 + */ 1608 + '500': ModelWithStringError; 1609 + /** 1610 + * Message for 501 error 1611 + */ 1612 + '501': ModelWithStringError; 1613 + /** 1614 + * Message for 502 error 1615 + */ 1616 + '502': ModelWithStringError; 1617 + /** 1618 + * Message for 4XX errors 1619 + */ 1620 + '4XX': DictionaryWithArray; 1621 + /** 1622 + * Message for default response 1623 + */ 1624 + default: ModelWithBoolean; 1625 + }; 1626 + }; 1627 + put: { 1628 + res: { 1629 + /** 1630 + * Message for 200 response 1631 + */ 1632 + '200': { 1633 + readonly '@namespace.string'?: string; 1634 + readonly '@namespace.integer'?: number; 1635 + readonly value?: Array<ModelWithString>; 1636 + }; 1637 + /** 1638 + * Message for 201 response 1639 + */ 1640 + '201': ModelThatExtends; 1641 + /** 1642 + * Message for 202 response 1643 + */ 1644 + '202': ModelThatExtendsExtends; 1645 + /** 1646 + * Message for 500 error 1647 + */ 1648 + '500': ModelWithStringError; 1649 + /** 1650 + * Message for 501 error 1651 + */ 1652 + '501': ModelWithStringError; 1653 + /** 1654 + * Message for 502 error 1655 + */ 1656 + '502': ModelWithStringError; 1657 + /** 1658 + * Message for default response 1659 + */ 1660 + default: ModelWithString; 1661 + }; 1662 + }; 1663 + }; 1664 + '/api/v{api-version}/collectionFormat': { 1665 + get: { 1666 + req: CollectionFormatData; 1667 + }; 1668 + }; 1669 + '/api/v{api-version}/types': { 1670 + get: { 1671 + req: TypesData; 1672 + res: { 1673 + /** 1674 + * Response is a simple number 1675 + */ 1676 + '200': number; 1677 + /** 1678 + * Response is a simple string 1679 + */ 1680 + '201': string; 1681 + /** 1682 + * Response is a simple boolean 1683 + */ 1684 + '202': boolean; 1685 + /** 1686 + * Response is a simple object 1687 + */ 1688 + '203': { 1689 + [key: string]: unknown; 1690 + }; 1691 + }; 1692 + }; 1693 + }; 1694 + '/api/v{api-version}/upload': { 1695 + post: { 1696 + req: UploadFileData; 1697 + res: { 1698 + '200': boolean; 1699 + }; 1700 + }; 1701 + }; 1702 + '/api/v{api-version}/file/{id}': { 1703 + get: { 1704 + req: FileResponseData; 1705 + res: { 1706 + /** 1707 + * Success 1708 + */ 1709 + '200': (Blob | File); 1710 + }; 1711 + }; 1712 + }; 1713 + '/api/v{api-version}/complex': { 1714 + get: { 1715 + req: ComplexTypesData; 1716 + res: { 1717 + /** 1718 + * Successful response 1719 + */ 1720 + '200': Array<ModelWithString>; 1721 + /** 1722 + * 400 `server` error 1723 + */ 1724 + '400': unknown; 1725 + /** 1726 + * 500 server error 1727 + */ 1728 + '500': unknown; 1729 + }; 1730 + }; 1731 + }; 1732 + '/api/v{api-version}/multipart': { 1733 + post: { 1734 + req: MultipartRequestData; 1735 + }; 1736 + get: { 1737 + res: { 1738 + /** 1739 + * OK 1740 + */ 1741 + '200': { 1742 + file?: (Blob | File); 1743 + metadata?: { 1744 + foo?: string; 1745 + bar?: string; 1746 + }; 1747 + }; 1748 + }; 1749 + }; 1750 + }; 1751 + '/api/v{api-version}/complex/{id}': { 1752 + put: { 1753 + req: ComplexParamsData; 1754 + res: { 1755 + /** 1756 + * Success 1757 + */ 1758 + '200': ModelWithString; 1759 + }; 1760 + }; 1761 + }; 1762 + '/api/v{api-version}/header': { 1763 + post: { 1764 + res: { 1765 + /** 1766 + * Successful response 1767 + */ 1768 + '200': string; 1769 + /** 1770 + * 400 server error 1771 + */ 1772 + '400': unknown; 1773 + /** 1774 + * 500 server error 1775 + */ 1776 + '500': unknown; 1777 + }; 1778 + }; 1779 + }; 1780 + '/api/v{api-version}/error': { 1781 + post: { 1782 + req: TestErrorCodeData; 1783 + res: { 1784 + /** 1785 + * Custom message: Successful response 1786 + */ 1787 + '200': unknown; 1788 + /** 1789 + * Custom message: Internal Server Error 1790 + */ 1791 + '500': unknown; 1792 + /** 1793 + * Custom message: Not Implemented 1794 + */ 1795 + '501': unknown; 1796 + /** 1797 + * Custom message: Bad Gateway 1798 + */ 1799 + '502': unknown; 1800 + /** 1801 + * Custom message: Service Unavailable 1802 + */ 1803 + '503': unknown; 1804 + }; 1805 + }; 1806 + }; 1807 + '/api/v{api-version}/non-ascii-æøåÆØÅöôêÊ字符串': { 1808 + post: { 1809 + req: NonAsciiæøåÆøÅöôêÊ字符串Data; 1810 + res: { 1811 + /** 1812 + * Successful response 1813 + */ 1814 + '200': Array<NonAsciiStringæøåÆØÅöôêÊ字符串>; 1815 + }; 1816 + }; 1817 + }; 1818 + };
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_legacy_positional_args/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_legacy_positional_args/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_models/types.gen.ts.snap
··· 862 862 /** 863 863 * Parameter with illegal characters 864 864 */ 865 - export type Parameterx_Foo_Bar = string; 865 + export type Parameterx_Foo_Bar = ModelWithString;
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_node/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_node/core/OpenAPI.ts.snap
··· 12 12 this._fns = []; 13 13 } 14 14 15 - eject(fn: Middleware<T>) { 15 + eject(fn: Middleware<T>): void { 16 16 const index = this._fns.indexOf(fn); 17 17 if (index !== -1) { 18 18 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 19 19 } 20 20 } 21 21 22 - use(fn: Middleware<T>) { 22 + use(fn: Middleware<T>): void { 23 23 this._fns = [...this._fns, fn]; 24 24 } 25 25 }
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_options/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_options/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+9 -5
packages/openapi-ts/test/__snapshots__/test/generated/v3_services_name/services.gen.ts.snap
··· 91 91 export class myAwesomeParametersApi { 92 92 /** 93 93 * @param data The data for the request. 94 - * @param data.foo foo in method 95 - * @param data.bar bar in method 94 + * @param data.fooParam foo in method 95 + * @param data.barParam bar in method 96 + * @param data.xFooBar Parameter with illegal characters 96 97 * @throws ApiError 97 98 */ 98 99 public static deleteFoo(data: DeleteFooData3): CancelablePromise<void> { 99 100 return __request(OpenAPI, { 100 101 method: 'DELETE', 101 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 102 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 102 103 path: { 103 - foo: data.foo, 104 - bar: data.bar 104 + foo_param: data.fooParam, 105 + BarParam: data.barParam 106 + }, 107 + headers: { 108 + 'x-Foo-Bar': data.xFooBar 105 109 } 106 110 }); 107 111 }
+14 -9
packages/openapi-ts/test/__snapshots__/test/generated/v3_tree_shakeable/services.gen.ts.snap
··· 93 93 94 94 /** 95 95 * @param data The data for the request. 96 - * @param data.foo foo in method 97 - * @param data.bar bar in method 96 + * @param data.fooParam foo in method 97 + * @param data.barParam bar in method 98 + * @param data.xFooBar Parameter with illegal characters 98 99 * @throws ApiError 99 100 */ 100 101 export const deleteFoo = (data: DeleteFooData3): CancelablePromise<void> => { return __request(OpenAPI, { 101 102 method: 'DELETE', 102 - url: '/api/v{api-version}/foo/{foo}/bar/{bar}', 103 + url: '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}', 103 104 path: { 104 - foo: data.foo, 105 - bar: data.bar 105 + foo_param: data.fooParam, 106 + BarParam: data.barParam 107 + }, 108 + headers: { 109 + 'x-Foo-Bar': data.xFooBar 106 110 } 107 111 }); }; 108 112 ··· 434 438 /** 435 439 * @returns unknown Message for 200 response 436 440 * @returns ModelWithString Message for 201 response 437 - * @returns ModelWithBoolean Message for default response 438 441 * @throws ApiError 439 442 */ 440 443 export const callWithDuplicateResponses = (): CancelablePromise<CallWithDuplicateResponsesResponse> => { return __request(OpenAPI, { ··· 443 446 errors: { 444 447 500: 'Message for 500 error', 445 448 501: 'Message for 501 error', 446 - 502: 'Message for 502 error' 449 + 502: 'Message for 502 error', 450 + '4XX': 'Message for 4XX errors', 451 + default: 'Message for default response' 447 452 } 448 453 }); }; 449 454 ··· 451 456 * @returns unknown Message for 200 response 452 457 * @returns ModelThatExtends Message for 201 response 453 458 * @returns ModelThatExtendsExtends Message for 202 response 454 - * @returns ModelWithString Message for default response 455 459 * @throws ApiError 456 460 */ 457 461 export const callWithResponses = (): CancelablePromise<CallWithResponsesResponse> => { return __request(OpenAPI, { ··· 460 464 errors: { 461 465 500: 'Message for 500 error', 462 466 501: 'Message for 501 error', 463 - 502: 'Message for 502 error' 467 + 502: 'Message for 502 error', 468 + default: 'Message for default response' 464 469 } 465 470 }); }; 466 471
+14 -6
packages/openapi-ts/test/__snapshots__/test/generated/v3_tree_shakeable/types.gen.ts.snap
··· 985 985 /** 986 986 * Parameter with illegal characters 987 987 */ 988 - export type Parameterx_Foo_Bar = string; 988 + export type Parameterx_Foo_Bar = ModelWithString; 989 989 990 990 export type PostServiceWithEmptyTagData = { 991 991 requestBody: ModelWithReadOnlyAndWriteOnly | ModelWithArrayReadOnlyAndWriteOnly; ··· 999 999 /** 1000 1000 * bar in method 1001 1001 */ 1002 - bar: string; 1002 + barParam: string; 1003 1003 /** 1004 1004 * foo in method 1005 1005 */ 1006 - foo: string; 1006 + fooParam: string; 1007 + /** 1008 + * Parameter with illegal characters 1009 + */ 1010 + xFooBar: ModelWithString; 1007 1011 }; 1008 1012 1009 1013 export type CallWithDescriptionsData = { ··· 1247 1251 1248 1252 export type CallWithResponseResponse = ModelWithString; 1249 1253 1250 - export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString | ModelWithBoolean; 1254 + export type CallWithDuplicateResponsesResponse = ModelWithBoolean & ModelWithInteger | ModelWithString; 1251 1255 1252 1256 export type CallWithResponsesResponse = { 1253 1257 readonly '@namespace.string'?: string; 1254 1258 readonly '@namespace.integer'?: number; 1255 1259 readonly value?: Array<ModelWithString>; 1256 - } | ModelThatExtends | ModelThatExtendsExtends | ModelWithString; 1260 + } | ModelThatExtends | ModelThatExtendsExtends; 1257 1261 1258 1262 export type CollectionFormatData = { 1259 1263 /** ··· 1428 1432 }; 1429 1433 }; 1430 1434 }; 1431 - '/api/v{api-version}/foo/{foo}/bar/{bar}': { 1435 + '/api/v{api-version}/foo/{foo_param}/bar/{BarParam}': { 1432 1436 delete: { 1433 1437 req: DeleteFooData3; 1434 1438 }; ··· 1554 1558 * Message for 502 error 1555 1559 */ 1556 1560 502: ModelWithStringError; 1561 + /** 1562 + * Message for 4XX errors 1563 + */ 1564 + '4XX': DictionaryWithArray; 1557 1565 /** 1558 1566 * Message for default response 1559 1567 */
+1 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3_xhr/core/ApiRequestOptions.ts.snap
··· 9 9 readonly body?: any; 10 10 readonly mediaType?: string; 11 11 readonly responseHeader?: string; 12 - readonly errors?: Record<number, string>; 12 + readonly errors?: Record<number | string, string>; 13 13 };
+2 -2
packages/openapi-ts/test/__snapshots__/test/generated/v3_xhr/core/OpenAPI.ts.snap
··· 11 11 this._fns = []; 12 12 } 13 13 14 - eject(fn: Middleware<T>) { 14 + eject(fn: Middleware<T>): void { 15 15 const index = this._fns.indexOf(fn); 16 16 if (index !== -1) { 17 17 this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; 18 18 } 19 19 } 20 20 21 - use(fn: Middleware<T>) { 21 + use(fn: Middleware<T>): void { 22 22 this._fns = [...this._fns, fn]; 23 23 } 24 24 }
+10
packages/openapi-ts/test/index.spec.ts
··· 107 107 }, 108 108 { 109 109 config: createConfig({ 110 + client: '@hey-api/client-fetch', 111 + services: { 112 + asClass: false, 113 + }, 114 + }), 115 + description: 'generate axios client', 116 + name: 'v3_hey-api_client-fetch', 117 + }, 118 + { 119 + config: createConfig({ 110 120 client: 'xhr', 111 121 schemas: false, 112 122 services: false,
+4 -2
packages/openapi-ts/test/sample.cjs
··· 3 3 const main = async () => { 4 4 /** @type {import('../src/node/index').UserConfig} */ 5 5 const config = { 6 - client: 'fetch', 6 + client: '@hey-api/client-fetch', 7 7 input: './test/spec/v3.json', 8 8 // input: 'https://mongodb-mms-prod-build-server.s3.amazonaws.com/openapi/2caffd88277a4e27c95dcefc7e3b6a63a3b03297-v2-2023-11-15.json', 9 9 output: { ··· 13 13 export: false, 14 14 }, 15 15 services: { 16 - export: false, 16 + asClass: true, 17 + // export: false, 18 + // name: '^Parameters', 17 19 }, 18 20 types: { 19 21 enums: 'typescript',
+34 -7
packages/openapi-ts/test/spec/v3.json
··· 96 96 "operationId": "PatchCallWithoutParametersAndResponse" 97 97 } 98 98 }, 99 - "/api/v{api-version}/foo/{foo}/bar/{bar}": { 99 + "/api/v{api-version}/foo/{foo_param}/bar/{BarParam}": { 100 100 "delete": { 101 101 "tags": ["Parameters"], 102 102 "operationId": "deleteFoo", ··· 104 104 { 105 105 "description": "foo in method", 106 106 "in": "path", 107 - "name": "foo", 107 + "name": "foo_param", 108 108 "required": true, 109 109 "schema": { 110 110 "type": "string" ··· 113 113 { 114 114 "description": "bar in method", 115 115 "in": "path", 116 - "name": "bar", 116 + "name": "BarParam", 117 117 "required": true, 118 118 "schema": { 119 119 "type": "string" 120 120 } 121 + }, 122 + { 123 + "description": "Parameter with illegal characters", 124 + "name": "x-Foo-Bar", 125 + "in": "header", 126 + "required": true, 127 + "content": { 128 + "application/json": { 129 + "schema": { 130 + "$ref": "#/components/schemas/ModelWithString" 131 + } 132 + } 133 + } 121 134 } 122 135 ] 123 136 }, ··· 125 138 { 126 139 "description": "foo in global parameters", 127 140 "in": "path", 128 - "name": "foo", 141 + "name": "foo_param", 129 142 "required": true, 130 143 "schema": { 131 144 "type": "string" ··· 134 147 { 135 148 "description": "bar in global parameters", 136 149 "in": "path", 137 - "name": "bar", 150 + "name": "BarParam", 138 151 "required": true, 139 152 "schema": { 140 153 "type": "string" ··· 831 844 "application/json": { 832 845 "schema": { 833 846 "$ref": "#/components/schemas/ModelWithString" 847 + } 848 + } 849 + } 850 + }, 851 + "4XX": { 852 + "description": "Message for 4XX errors", 853 + "content": { 854 + "application/json": { 855 + "schema": { 856 + "$ref": "#/components/schemas/DictionaryWithArray" 834 857 } 835 858 } 836 859 } ··· 1636 1659 "name": "x-Foo-Bar", 1637 1660 "in": "header", 1638 1661 "required": true, 1639 - "schema": { 1640 - "type": "string" 1662 + "content": { 1663 + "application/json": { 1664 + "schema": { 1665 + "$ref": "#/components/schemas/ModelWithString" 1666 + } 1667 + } 1641 1668 } 1642 1669 } 1643 1670 },
+883 -795
pnpm-lock.yaml
··· 8 8 9 9 .: 10 10 devDependencies: 11 + '@changesets/changelog-github': 12 + specifier: 0.5.0 13 + version: 0.5.0(encoding@0.1.13) 11 14 '@changesets/cli': 12 15 specifier: 2.27.3 13 16 version: 2.27.3 14 17 '@rollup/plugin-commonjs': 15 - specifier: 25.0.7 16 - version: 25.0.7(rollup@4.17.2) 18 + specifier: 25.0.8 19 + version: 25.0.8(rollup@4.18.0) 17 20 '@rollup/plugin-terser': 18 21 specifier: 0.4.4 19 - version: 0.4.4(rollup@4.17.2) 22 + version: 0.4.4(rollup@4.18.0) 20 23 '@rollup/plugin-typescript': 21 24 specifier: 11.1.6 22 - version: 11.1.6(rollup@4.17.2)(typescript@5.4.5) 23 - '@svitejs/changesets-changelog-github-compact': 24 - specifier: 1.1.0 25 - version: 1.1.0 25 + version: 11.1.6(rollup@4.18.0)(tslib@2.6.2)(typescript@5.4.5) 26 26 '@types/node': 27 27 specifier: 20.12.12 28 28 version: 20.12.12 29 29 '@vitest/coverage-v8': 30 30 specifier: 1.6.0 31 - version: 1.6.0(vitest@1.6.0) 31 + version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0)) 32 32 eslint: 33 33 specifier: 9.3.0 34 34 version: 9.3.0 ··· 48 48 specifier: 9.0.11 49 49 version: 9.0.11 50 50 lint-staged: 51 - specifier: 15.2.2 52 - version: 15.2.2 51 + specifier: 15.2.5 52 + version: 15.2.5 53 53 prettier: 54 54 specifier: 3.2.5 55 55 version: 3.2.5 ··· 57 57 specifier: 5.0.7 58 58 version: 5.0.7 59 59 rollup: 60 - specifier: 4.17.2 61 - version: 4.17.2 60 + specifier: 4.18.0 61 + version: 4.18.0 62 62 rollup-plugin-dts: 63 63 specifier: 6.1.1 64 - version: 6.1.1(rollup@4.17.2)(typescript@5.4.5) 64 + version: 6.1.1(rollup@4.18.0)(typescript@5.4.5) 65 65 typescript: 66 66 specifier: 5.4.5 67 67 version: 5.4.5 ··· 70 70 version: 7.10.0(eslint@9.3.0)(typescript@5.4.5) 71 71 vitest: 72 72 specifier: 1.6.0 73 - version: 1.6.0(@types/node@20.12.12) 73 + version: 1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 74 74 75 75 docs: 76 76 dependencies: ··· 80 80 devDependencies: 81 81 vitepress: 82 82 specifier: 1.2.2 83 - version: 1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(search-insights@2.13.0)(typescript@5.4.5) 83 + version: 1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(@types/react@18.3.3)(axios@1.7.2)(less@4.2.0)(postcss@8.4.38)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5) 84 84 85 85 examples/openapi-ts-axios: 86 86 dependencies: ··· 88 88 specifier: workspace:* 89 89 version: link:../../packages/client-axios 90 90 axios: 91 - specifier: 1.7.1 92 - version: 1.7.1 91 + specifier: 1.7.2 92 + version: 1.7.2 93 93 react: 94 94 specifier: 18.3.1 95 95 version: 18.3.1 ··· 101 101 specifier: workspace:* 102 102 version: link:../../packages/openapi-ts 103 103 '@types/react': 104 - specifier: 18.3.2 105 - version: 18.3.2 104 + specifier: 18.3.3 105 + version: 18.3.3 106 106 '@types/react-dom': 107 107 specifier: 18.3.0 108 108 version: 18.3.0 109 109 '@typescript-eslint/eslint-plugin': 110 110 specifier: 7.10.0 111 - version: 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@9.3.0)(typescript@5.4.5) 111 + version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) 112 112 '@typescript-eslint/parser': 113 113 specifier: 7.10.0 114 114 version: 7.10.0(eslint@9.3.0)(typescript@5.4.5) 115 115 '@vitejs/plugin-react': 116 - specifier: 4.2.1 117 - version: 4.2.1(vite@5.2.11) 116 + specifier: 4.3.0 117 + version: 4.3.0(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0)) 118 118 eslint: 119 119 specifier: 9.3.0 120 120 version: 9.3.0 ··· 132 132 version: 5.4.5 133 133 vite: 134 134 specifier: 5.2.11 135 - version: 5.2.11(@types/node@20.12.12) 135 + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 136 136 137 137 examples/openapi-ts-fetch: 138 138 dependencies: ··· 141 141 version: link:../../packages/client-fetch 142 142 '@radix-ui/react-form': 143 143 specifier: 0.0.3 144 - version: 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 144 + version: 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 145 145 '@radix-ui/react-icons': 146 146 specifier: 1.3.0 147 147 version: 1.3.0(react@18.3.1) 148 148 '@radix-ui/themes': 149 149 specifier: 3.0.5 150 - version: 3.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 150 + version: 3.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 151 151 react: 152 152 specifier: 18.3.1 153 153 version: 18.3.1 ··· 159 159 specifier: workspace:* 160 160 version: link:../../packages/openapi-ts 161 161 '@types/react': 162 - specifier: 18.3.2 163 - version: 18.3.2 162 + specifier: 18.3.3 163 + version: 18.3.3 164 164 '@types/react-dom': 165 165 specifier: 18.3.0 166 166 version: 18.3.0 167 167 '@typescript-eslint/eslint-plugin': 168 168 specifier: 7.10.0 169 - version: 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@9.3.0)(typescript@5.4.5) 169 + version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) 170 170 '@typescript-eslint/parser': 171 171 specifier: 7.10.0 172 172 version: 7.10.0(eslint@9.3.0)(typescript@5.4.5) 173 173 '@vitejs/plugin-react': 174 - specifier: 4.2.1 175 - version: 4.2.1(vite@5.2.11) 174 + specifier: 4.3.0 175 + version: 4.3.0(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0)) 176 176 autoprefixer: 177 177 specifier: 10.4.19 178 178 version: 10.4.19(postcss@8.4.38) ··· 193 193 version: 3.2.5 194 194 tailwindcss: 195 195 specifier: 3.4.3 196 - version: 3.4.3 196 + version: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)) 197 197 typescript: 198 198 specifier: 5.4.5 199 199 version: 5.4.5 200 200 vite: 201 201 specifier: 5.2.11 202 - version: 5.2.11(@types/node@20.12.12) 202 + version: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 203 203 204 204 packages/client-axios: 205 205 devDependencies: 206 206 axios: 207 - specifier: 1.7.1 208 - version: 1.7.1 207 + specifier: 1.7.2 208 + version: 1.7.2 209 209 210 210 packages/client-core: {} 211 211 ··· 231 231 devDependencies: 232 232 '@angular-devkit/build-angular': 233 233 specifier: 17.3.7 234 - version: 17.3.7(@angular/compiler-cli@17.3.9)(@types/express@4.17.21)(@types/node@20.12.12)(typescript@5.4.5) 234 + version: 17.3.7(@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5))(@types/express@4.17.21)(@types/node@20.12.12)(chokidar@3.6.0)(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))(typescript@5.4.5) 235 235 '@angular/animations': 236 236 specifier: 17.3.9 237 - version: 17.3.9(@angular/core@17.3.9) 237 + version: 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 238 238 '@angular/cli': 239 239 specifier: 17.3.7 240 - version: 17.3.7 240 + version: 17.3.7(chokidar@3.6.0) 241 241 '@angular/common': 242 242 specifier: 17.3.9 243 - version: 17.3.9(@angular/core@17.3.9)(rxjs@7.8.1) 243 + version: 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1) 244 244 '@angular/compiler': 245 245 specifier: 17.3.9 246 - version: 17.3.9(@angular/core@17.3.9) 246 + version: 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 247 247 '@angular/compiler-cli': 248 248 specifier: 17.3.9 249 - version: 17.3.9(@angular/compiler@17.3.9)(typescript@5.4.5) 249 + version: 17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5) 250 250 '@angular/core': 251 251 specifier: 17.3.9 252 252 version: 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 253 253 '@angular/forms': 254 254 specifier: 17.3.9 255 - version: 17.3.9(@angular/common@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9)(rxjs@7.8.1) 255 + version: 17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(rxjs@7.8.1) 256 256 '@angular/platform-browser': 257 257 specifier: 17.3.9 258 - version: 17.3.9(@angular/animations@17.3.9)(@angular/common@17.3.9)(@angular/core@17.3.9) 258 + version: 17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 259 259 '@angular/platform-browser-dynamic': 260 260 specifier: 17.3.9 261 - version: 17.3.9(@angular/common@17.3.9)(@angular/compiler@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9) 261 + version: 17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))) 262 262 '@angular/router': 263 263 specifier: 17.3.9 264 - version: 17.3.9(@angular/common@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9)(rxjs@7.8.1) 264 + version: 17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(rxjs@7.8.1) 265 265 '@rollup/plugin-json': 266 266 specifier: 6.1.0 267 - version: 6.1.0(rollup@4.17.2) 267 + version: 6.1.0(rollup@4.18.0) 268 268 '@rollup/plugin-node-resolve': 269 269 specifier: 15.2.3 270 - version: 15.2.3(rollup@4.17.2) 270 + version: 15.2.3(rollup@4.18.0) 271 271 '@types/cross-spawn': 272 272 specifier: 6.0.6 273 273 version: 6.0.6 ··· 275 275 specifier: 4.17.21 276 276 version: 4.17.21 277 277 axios: 278 - specifier: 1.7.1 279 - version: 1.7.1 278 + specifier: 1.7.2 279 + version: 1.7.2 280 280 cross-spawn: 281 281 specifier: 7.0.3 282 282 version: 7.0.3 ··· 287 287 specifier: 4.19.2 288 288 version: 4.19.2 289 289 glob: 290 - specifier: 10.3.15 291 - version: 10.3.15 290 + specifier: 10.4.1 291 + version: 10.4.1 292 292 node-fetch: 293 293 specifier: 3.3.2 294 294 version: 3.3.2 ··· 296 296 specifier: 3.2.5 297 297 version: 3.2.5 298 298 puppeteer: 299 - specifier: 22.9.0 300 - version: 22.9.0(typescript@5.4.5) 299 + specifier: 22.10.0 300 + version: 22.10.0(typescript@5.4.5) 301 301 rxjs: 302 302 specifier: 7.8.1 303 303 version: 7.8.1 ··· 535 535 resolution: {integrity: sha512-ENUdLLT04aDbbHCRwfKf8gR67AhV0CdFrOAtk+FcakBAgaq6ds3HLK9X0BCyiFUz8pK9uP+k6YZyJaGG7Mt7vQ==} 536 536 engines: {node: '>= 16'} 537 537 538 - '@babel/code-frame@7.24.2': 539 - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 538 + '@babel/code-frame@7.24.6': 539 + resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} 540 540 engines: {node: '>=6.9.0'} 541 541 542 542 '@babel/compat-data@7.24.4': ··· 663 663 resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 664 664 engines: {node: '>=6.9.0'} 665 665 666 - '@babel/helper-validator-identifier@7.24.5': 667 - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} 666 + '@babel/helper-validator-identifier@7.24.6': 667 + resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} 668 668 engines: {node: '>=6.9.0'} 669 669 670 670 '@babel/helper-validator-option@7.23.5': ··· 679 679 resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} 680 680 engines: {node: '>=6.9.0'} 681 681 682 - '@babel/highlight@7.24.5': 683 - resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} 682 + '@babel/highlight@7.24.6': 683 + resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} 684 684 engines: {node: '>=6.9.0'} 685 685 686 686 '@babel/parser@7.24.5': ··· 1160 1160 '@changesets/changelog-git@0.2.0': 1161 1161 resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} 1162 1162 1163 + '@changesets/changelog-github@0.5.0': 1164 + resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} 1165 + 1163 1166 '@changesets/cli@2.27.3': 1164 1167 resolution: {integrity: sha512-ve/VpWApILlSs8cr0okNx5C2LKRawI9XZgvfmf58S8sar2nhx5DPJREFXYZBahs0FeTfvH0rdVl+nGe8QF45Ig==} 1165 1168 hasBin: true ··· 1173 1176 '@changesets/get-dependents-graph@2.0.0': 1174 1177 resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} 1175 1178 1176 - '@changesets/get-github-info@0.5.2': 1177 - resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} 1179 + '@changesets/get-github-info@0.6.0': 1180 + resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} 1178 1181 1179 1182 '@changesets/get-release-plan@4.0.0': 1180 1183 resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} ··· 2410 2413 '@types/react-dom': 2411 2414 optional: true 2412 2415 2413 - '@rollup/plugin-commonjs@25.0.7': 2414 - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} 2416 + '@rollup/plugin-commonjs@25.0.8': 2417 + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} 2415 2418 engines: {node: '>=14.0.0'} 2416 2419 peerDependencies: 2417 2420 rollup: ^2.68.0||^3.0.0||^4.0.0 ··· 2468 2471 rollup: 2469 2472 optional: true 2470 2473 2471 - '@rollup/rollup-android-arm-eabi@4.17.2': 2472 - resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} 2474 + '@rollup/rollup-android-arm-eabi@4.18.0': 2475 + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 2473 2476 cpu: [arm] 2474 2477 os: [android] 2475 2478 2476 - '@rollup/rollup-android-arm64@4.17.2': 2477 - resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} 2479 + '@rollup/rollup-android-arm64@4.18.0': 2480 + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 2478 2481 cpu: [arm64] 2479 2482 os: [android] 2480 2483 2481 - '@rollup/rollup-darwin-arm64@4.17.2': 2482 - resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} 2484 + '@rollup/rollup-darwin-arm64@4.18.0': 2485 + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 2483 2486 cpu: [arm64] 2484 2487 os: [darwin] 2485 2488 2486 - '@rollup/rollup-darwin-x64@4.17.2': 2487 - resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} 2489 + '@rollup/rollup-darwin-x64@4.18.0': 2490 + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 2488 2491 cpu: [x64] 2489 2492 os: [darwin] 2490 2493 2491 - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': 2492 - resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} 2494 + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 2495 + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 2493 2496 cpu: [arm] 2494 2497 os: [linux] 2495 2498 2496 - '@rollup/rollup-linux-arm-musleabihf@4.17.2': 2497 - resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} 2499 + '@rollup/rollup-linux-arm-musleabihf@4.18.0': 2500 + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 2498 2501 cpu: [arm] 2499 2502 os: [linux] 2500 2503 2501 - '@rollup/rollup-linux-arm64-gnu@4.17.2': 2502 - resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} 2504 + '@rollup/rollup-linux-arm64-gnu@4.18.0': 2505 + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 2503 2506 cpu: [arm64] 2504 2507 os: [linux] 2505 2508 2506 - '@rollup/rollup-linux-arm64-musl@4.17.2': 2507 - resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} 2509 + '@rollup/rollup-linux-arm64-musl@4.18.0': 2510 + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 2508 2511 cpu: [arm64] 2509 2512 os: [linux] 2510 2513 2511 - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': 2512 - resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} 2514 + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 2515 + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 2513 2516 cpu: [ppc64] 2514 2517 os: [linux] 2515 2518 2516 - '@rollup/rollup-linux-riscv64-gnu@4.17.2': 2517 - resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} 2519 + '@rollup/rollup-linux-riscv64-gnu@4.18.0': 2520 + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 2518 2521 cpu: [riscv64] 2519 2522 os: [linux] 2520 2523 2521 - '@rollup/rollup-linux-s390x-gnu@4.17.2': 2522 - resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} 2524 + '@rollup/rollup-linux-s390x-gnu@4.18.0': 2525 + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 2523 2526 cpu: [s390x] 2524 2527 os: [linux] 2525 2528 2526 - '@rollup/rollup-linux-x64-gnu@4.17.2': 2527 - resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} 2529 + '@rollup/rollup-linux-x64-gnu@4.18.0': 2530 + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 2528 2531 cpu: [x64] 2529 2532 os: [linux] 2530 2533 2531 - '@rollup/rollup-linux-x64-musl@4.17.2': 2532 - resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} 2534 + '@rollup/rollup-linux-x64-musl@4.18.0': 2535 + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 2533 2536 cpu: [x64] 2534 2537 os: [linux] 2535 2538 2536 - '@rollup/rollup-win32-arm64-msvc@4.17.2': 2537 - resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} 2539 + '@rollup/rollup-win32-arm64-msvc@4.18.0': 2540 + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 2538 2541 cpu: [arm64] 2539 2542 os: [win32] 2540 2543 2541 - '@rollup/rollup-win32-ia32-msvc@4.17.2': 2542 - resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} 2544 + '@rollup/rollup-win32-ia32-msvc@4.18.0': 2545 + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 2543 2546 cpu: [ia32] 2544 2547 os: [win32] 2545 2548 2546 - '@rollup/rollup-win32-x64-msvc@4.17.2': 2547 - resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} 2549 + '@rollup/rollup-win32-x64-msvc@4.18.0': 2550 + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 2548 2551 cpu: [x64] 2549 2552 os: [win32] 2550 2553 ··· 2588 2591 '@stackblitz/sdk@1.10.0': 2589 2592 resolution: {integrity: sha512-IcvE9Xifo2c4/f+yNqjFM/OW5VTBPLed3TxsQ+n8n81Py358IqD5w0IYfFgV5gbDjp2g5H5YK2/Shls/kQNTWQ==} 2590 2593 2591 - '@svitejs/changesets-changelog-github-compact@1.1.0': 2592 - resolution: {integrity: sha512-qhUGGDHcpbY2zpjW3SwqchuW8J/5EzlPFud7xNntHKA7f3a/mx5+g+ruJKFHSAiVZYo30PALt+AyhmPUNKH/Og==} 2593 - engines: {node: ^14.13.1 || ^16.0.0 || >=18} 2594 - 2595 2594 '@tootallnate/quickjs-emscripten@0.23.0': 2596 2595 resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 2597 2596 ··· 2705 2704 '@types/react-dom@18.3.0': 2706 2705 resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 2707 2706 2708 - '@types/react@18.3.2': 2709 - resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} 2707 + '@types/react@18.3.3': 2708 + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 2710 2709 2711 2710 '@types/resolve@1.20.2': 2712 2711 resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} ··· 2802 2801 peerDependencies: 2803 2802 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 2804 2803 2805 - '@vitejs/plugin-react@4.2.1': 2806 - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} 2804 + '@vitejs/plugin-react@4.3.0': 2805 + resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} 2807 2806 engines: {node: ^14.18.0 || >=16.0.0} 2808 2807 peerDependencies: 2809 2808 vite: ^4.2.0 || ^5.0.0 ··· 3168 3167 resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 3169 3168 engines: {node: '>= 0.4'} 3170 3169 3171 - axios@1.7.1: 3172 - resolution: {integrity: sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==} 3170 + axios@1.7.2: 3171 + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} 3173 3172 3174 3173 b4a@1.6.6: 3175 3174 resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} ··· 3212 3211 bare-os@2.3.0: 3213 3212 resolution: {integrity: sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==} 3214 3213 3215 - bare-path@2.1.2: 3216 - resolution: {integrity: sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==} 3214 + bare-path@2.1.3: 3215 + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} 3217 3216 3218 3217 bare-stream@1.0.0: 3219 3218 resolution: {integrity: sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==} ··· 3436 3435 combined-stream@1.0.8: 3437 3436 resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 3438 3437 engines: {node: '>= 0.8'} 3439 - 3440 - commander@11.1.0: 3441 - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 3442 - engines: {node: '>=16'} 3443 3438 3444 3439 commander@12.1.0: 3445 3440 resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} ··· 3734 3729 resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 3735 3730 engines: {node: '>=12'} 3736 3731 3732 + dotenv@8.6.0: 3733 + resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} 3734 + engines: {node: '>=10'} 3735 + 3737 3736 eastasianwidth@0.2.0: 3738 3737 resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 3739 3738 ··· 4210 4209 glob-to-regexp@0.4.1: 4211 4210 resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 4212 4211 4213 - glob@10.3.15: 4214 - resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} 4212 + glob@10.4.1: 4213 + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} 4215 4214 engines: {node: '>=16 || 14 >=14.18'} 4216 4215 hasBin: true 4217 4216 4218 4217 glob@7.2.3: 4219 4218 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 4219 + deprecated: Glob versions prior to v9 are no longer supported 4220 4220 4221 4221 glob@8.1.0: 4222 4222 resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 4223 4223 engines: {node: '>=12'} 4224 + deprecated: Glob versions prior to v9 are no longer supported 4224 4225 4225 4226 globals@11.12.0: 4226 4227 resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} ··· 4423 4424 4424 4425 inflight@1.0.6: 4425 4426 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 4427 + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 4426 4428 4427 4429 inherits@2.0.3: 4428 4430 resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} ··· 4647 4649 resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 4648 4650 engines: {node: '>=8'} 4649 4651 4650 - jackspeak@2.3.6: 4651 - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 4652 + jackspeak@3.1.2: 4653 + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} 4652 4654 engines: {node: '>=14'} 4653 4655 4654 4656 jest-worker@27.5.1: ··· 4771 4773 resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 4772 4774 engines: {node: '>=10'} 4773 4775 4774 - lilconfig@3.0.0: 4775 - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} 4776 - engines: {node: '>=14'} 4777 - 4778 4776 lilconfig@3.1.1: 4779 4777 resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 4780 4778 engines: {node: '>=14'} ··· 4782 4780 lines-and-columns@1.2.4: 4783 4781 resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 4784 4782 4785 - lint-staged@15.2.2: 4786 - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} 4783 + lint-staged@15.2.5: 4784 + resolution: {integrity: sha512-j+DfX7W9YUvdzEZl3Rk47FhDF6xwDBV5wwsCPw6BwWZVPYJemusQmvb9bRsW23Sqsaa+vRloAWogbK4BUuU2zA==} 4787 4785 engines: {node: '>=18.12.0'} 4788 4786 hasBin: true 4789 4787 4790 - listr2@8.0.1: 4791 - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} 4788 + listr2@8.2.1: 4789 + resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} 4792 4790 engines: {node: '>=18.0.0'} 4793 4791 4794 4792 load-yaml-file@0.2.0: ··· 4930 4928 resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 4931 4929 engines: {node: '>= 0.6'} 4932 4930 4933 - micromatch@4.0.5: 4934 - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 4935 - engines: {node: '>=8.6'} 4936 - 4937 4931 micromatch@4.0.6: 4938 4932 resolution: {integrity: sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==} 4933 + engines: {node: '>=8.6'} 4934 + 4935 + micromatch@4.0.7: 4936 + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 4939 4937 engines: {node: '>=8.6'} 4940 4938 4941 4939 mime-db@1.52.0: ··· 5021 5019 resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 5022 5020 engines: {node: '>=8'} 5023 5021 5024 - minipass@7.1.1: 5025 - resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} 5022 + minipass@7.1.2: 5023 + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 5026 5024 engines: {node: '>=16 || 14 >=14.17'} 5027 5025 5028 5026 minisearch@6.3.0: ··· 5608 5606 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 5609 5607 engines: {node: '>=6'} 5610 5608 5611 - puppeteer-core@22.9.0: 5612 - resolution: {integrity: sha512-Q2SYVZ1SIE7jCd/Pp+1/mNLFtdJfGvAF+CqOTDG8HcCNCiBvoXfopXfOfMHQ/FueXhGfJW/I6DartWv6QzpNGg==} 5609 + puppeteer-core@22.10.0: 5610 + resolution: {integrity: sha512-I54J4Vy4I07UHsgB1QSmuFoF7KNQjJWcvFBPhtY+ezMdBfwgGDr8dzYrJa11aPgP9kxIUHjhktcMmmfJkOAtTw==} 5613 5611 engines: {node: '>=18'} 5614 5612 5615 - puppeteer@22.9.0: 5616 - resolution: {integrity: sha512-yNux2cm6Sfik4lNLNjJ25Cdn9spJRbMXxl1YZtVZCEhEeej1sFlCvZ/Cr64LhgyJOuvz3iq2uk+RLFpQpGwrjw==} 5613 + puppeteer@22.10.0: 5614 + resolution: {integrity: sha512-ZOkZd6a6t0BdKcWb0wAYHWQqCfdlN1PPnXOmg/XNrbo6gJhYWFX4qCNb6ahSn8TpAqBqLCoD4Q010F7GwOM7mA==} 5617 5615 engines: {node: '>=18'} 5618 5616 hasBin: true 5619 5617 ··· 5834 5832 rollup: ^3.29.4 || ^4 5835 5833 typescript: ^4.5 || ^5.0 5836 5834 5837 - rollup@4.17.2: 5838 - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} 5835 + rollup@4.18.0: 5836 + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 5839 5837 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 5840 5838 hasBin: true 5841 5839 ··· 5906 5904 resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} 5907 5905 engines: {node: '>= 12.13.0'} 5908 5906 5909 - search-insights@2.13.0: 5910 - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} 5907 + search-insights@2.14.0: 5908 + resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} 5911 5909 5912 5910 select-hose@2.0.0: 5913 5911 resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} ··· 6827 6825 yallist@4.0.0: 6828 6826 resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 6829 6827 6830 - yaml@2.3.4: 6831 - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} 6832 - engines: {node: '>= 14'} 6833 - 6834 6828 yaml@2.4.2: 6835 6829 resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} 6836 6830 engines: {node: '>= 14'} ··· 6875 6869 6876 6870 snapshots: 6877 6871 6878 - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0)': 6872 + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0)': 6879 6873 dependencies: 6880 - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) 6874 + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0) 6881 6875 '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) 6882 6876 transitivePeerDependencies: 6883 6877 - '@algolia/client-search' 6884 6878 - algoliasearch 6885 6879 - search-insights 6886 6880 6887 - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0)': 6881 + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0)': 6888 6882 dependencies: 6889 6883 '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) 6890 - search-insights: 2.13.0 6884 + search-insights: 2.14.0 6891 6885 transitivePeerDependencies: 6892 6886 - '@algolia/client-search' 6893 6887 - algoliasearch ··· 6986 6980 '@jridgewell/gen-mapping': 0.3.5 6987 6981 '@jridgewell/trace-mapping': 0.3.25 6988 6982 6989 - '@angular-devkit/architect@0.1703.7': 6983 + '@angular-devkit/architect@0.1703.7(chokidar@3.6.0)': 6990 6984 dependencies: 6991 - '@angular-devkit/core': 17.3.7 6985 + '@angular-devkit/core': 17.3.7(chokidar@3.6.0) 6992 6986 rxjs: 7.8.1 6993 6987 transitivePeerDependencies: 6994 6988 - chokidar 6995 6989 6996 - '@angular-devkit/build-angular@17.3.7(@angular/compiler-cli@17.3.9)(@types/express@4.17.21)(@types/node@20.12.12)(typescript@5.4.5)': 6990 + '@angular-devkit/build-angular@17.3.7(@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5))(@types/express@4.17.21)(@types/node@20.12.12)(chokidar@3.6.0)(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)))(typescript@5.4.5)': 6997 6991 dependencies: 6998 6992 '@ampproject/remapping': 2.3.0 6999 - '@angular-devkit/architect': 0.1703.7 7000 - '@angular-devkit/build-webpack': 0.1703.7(webpack-dev-server@4.15.1)(webpack@5.90.3) 7001 - '@angular-devkit/core': 17.3.7 7002 - '@angular/compiler-cli': 17.3.9(@angular/compiler@17.3.9)(typescript@5.4.5) 6993 + '@angular-devkit/architect': 0.1703.7(chokidar@3.6.0) 6994 + '@angular-devkit/build-webpack': 0.1703.7(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)))(webpack@5.90.3(esbuild@0.20.1)) 6995 + '@angular-devkit/core': 17.3.7(chokidar@3.6.0) 6996 + '@angular/compiler-cli': 17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5) 7003 6997 '@babel/core': 7.24.0 7004 6998 '@babel/generator': 7.23.6 7005 6999 '@babel/helper-annotate-as-pure': 7.22.5 ··· 7010 7004 '@babel/preset-env': 7.24.0(@babel/core@7.24.0) 7011 7005 '@babel/runtime': 7.24.0 7012 7006 '@discoveryjs/json-ext': 0.5.7 7013 - '@ngtools/webpack': 17.3.7(@angular/compiler-cli@17.3.9)(typescript@5.4.5)(webpack@5.90.3) 7014 - '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.7) 7007 + '@ngtools/webpack': 17.3.7(@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.90.3(esbuild@0.20.1)) 7008 + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1)) 7015 7009 ansi-colors: 4.1.3 7016 7010 autoprefixer: 10.4.18(postcss@8.4.35) 7017 - babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3) 7011 + babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3(esbuild@0.20.1)) 7018 7012 babel-plugin-istanbul: 6.1.1 7019 7013 browserslist: 4.23.0 7020 - copy-webpack-plugin: 11.0.0(webpack@5.90.3) 7014 + copy-webpack-plugin: 11.0.0(webpack@5.90.3(esbuild@0.20.1)) 7021 7015 critters: 0.0.22 7022 - css-loader: 6.10.0(webpack@5.90.3) 7016 + css-loader: 6.10.0(webpack@5.90.3(esbuild@0.20.1)) 7023 7017 esbuild-wasm: 0.20.1 7024 7018 fast-glob: 3.3.2 7025 7019 http-proxy-middleware: 2.0.6(@types/express@4.17.21) ··· 7028 7022 jsonc-parser: 3.2.1 7029 7023 karma-source-map-support: 1.4.0 7030 7024 less: 4.2.0 7031 - less-loader: 11.1.0(less@4.2.0)(webpack@5.90.3) 7032 - license-webpack-plugin: 4.0.2(webpack@5.90.3) 7025 + less-loader: 11.1.0(less@4.2.0)(webpack@5.90.3(esbuild@0.20.1)) 7026 + license-webpack-plugin: 4.0.2(webpack@5.90.3(esbuild@0.20.1)) 7033 7027 loader-utils: 3.2.1 7034 7028 magic-string: 0.30.8 7035 - mini-css-extract-plugin: 2.8.1(webpack@5.90.3) 7029 + mini-css-extract-plugin: 2.8.1(webpack@5.90.3(esbuild@0.20.1)) 7036 7030 mrmime: 2.0.0 7037 7031 open: 8.4.2 7038 7032 ora: 5.4.1 ··· 7040 7034 picomatch: 4.0.1 7041 7035 piscina: 4.4.0 7042 7036 postcss: 8.4.35 7043 - postcss-loader: 8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.90.3) 7037 + postcss-loader: 8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.90.3(esbuild@0.20.1)) 7044 7038 resolve-url-loader: 5.0.0 7045 7039 rxjs: 7.8.1 7046 7040 sass: 1.71.1 7047 - sass-loader: 14.1.1(sass@1.71.1)(webpack@5.90.3) 7041 + sass-loader: 14.1.1(sass@1.71.1)(webpack@5.90.3(esbuild@0.20.1)) 7048 7042 semver: 7.6.0 7049 - source-map-loader: 5.0.0(webpack@5.90.3) 7043 + source-map-loader: 5.0.0(webpack@5.90.3(esbuild@0.20.1)) 7050 7044 source-map-support: 0.5.21 7051 7045 terser: 5.29.1 7052 7046 tree-kill: 1.2.2 ··· 7056 7050 vite: 5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) 7057 7051 watchpack: 2.4.0 7058 7052 webpack: 5.90.3(esbuild@0.20.1) 7059 - webpack-dev-middleware: 6.1.2(webpack@5.90.3) 7060 - webpack-dev-server: 4.15.1(webpack@5.90.3) 7053 + webpack-dev-middleware: 6.1.2(webpack@5.90.3(esbuild@0.20.1)) 7054 + webpack-dev-server: 4.15.1(webpack@5.90.3(esbuild@0.20.1)) 7061 7055 webpack-merge: 5.10.0 7062 - webpack-subresource-integrity: 5.1.0(webpack@5.90.3) 7056 + webpack-subresource-integrity: 5.1.0(webpack@5.90.3(esbuild@0.20.1)) 7063 7057 optionalDependencies: 7064 7058 esbuild: 0.20.1 7059 + tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)) 7065 7060 transitivePeerDependencies: 7066 7061 - '@rspack/core' 7067 7062 - '@swc/core' ··· 7081 7076 - utf-8-validate 7082 7077 - webpack-cli 7083 7078 7084 - '@angular-devkit/build-webpack@0.1703.7(webpack-dev-server@4.15.1)(webpack@5.90.3)': 7079 + '@angular-devkit/build-webpack@0.1703.7(chokidar@3.6.0)(webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)))(webpack@5.90.3(esbuild@0.20.1))': 7085 7080 dependencies: 7086 - '@angular-devkit/architect': 0.1703.7 7081 + '@angular-devkit/architect': 0.1703.7(chokidar@3.6.0) 7087 7082 rxjs: 7.8.1 7088 7083 webpack: 5.90.3(esbuild@0.20.1) 7089 - webpack-dev-server: 4.15.1(webpack@5.90.3) 7084 + webpack-dev-server: 4.15.1(webpack@5.90.3(esbuild@0.20.1)) 7090 7085 transitivePeerDependencies: 7091 7086 - chokidar 7092 7087 7093 - '@angular-devkit/core@17.3.7': 7088 + '@angular-devkit/core@17.3.7(chokidar@3.6.0)': 7094 7089 dependencies: 7095 7090 ajv: 8.12.0 7096 7091 ajv-formats: 2.1.1(ajv@8.12.0) ··· 7098 7093 picomatch: 4.0.1 7099 7094 rxjs: 7.8.1 7100 7095 source-map: 0.7.4 7096 + optionalDependencies: 7097 + chokidar: 3.6.0 7101 7098 7102 - '@angular-devkit/schematics@17.3.7': 7099 + '@angular-devkit/schematics@17.3.7(chokidar@3.6.0)': 7103 7100 dependencies: 7104 - '@angular-devkit/core': 17.3.7 7101 + '@angular-devkit/core': 17.3.7(chokidar@3.6.0) 7105 7102 jsonc-parser: 3.2.1 7106 7103 magic-string: 0.30.8 7107 7104 ora: 5.4.1 ··· 7109 7106 transitivePeerDependencies: 7110 7107 - chokidar 7111 7108 7112 - '@angular/animations@17.3.9(@angular/core@17.3.9)': 7109 + '@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))': 7113 7110 dependencies: 7114 7111 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7115 7112 tslib: 2.6.2 7116 7113 7117 - '@angular/cli@17.3.7': 7114 + '@angular/cli@17.3.7(chokidar@3.6.0)': 7118 7115 dependencies: 7119 - '@angular-devkit/architect': 0.1703.7 7120 - '@angular-devkit/core': 17.3.7 7121 - '@angular-devkit/schematics': 17.3.7 7122 - '@schematics/angular': 17.3.7 7116 + '@angular-devkit/architect': 0.1703.7(chokidar@3.6.0) 7117 + '@angular-devkit/core': 17.3.7(chokidar@3.6.0) 7118 + '@angular-devkit/schematics': 17.3.7(chokidar@3.6.0) 7119 + '@schematics/angular': 17.3.7(chokidar@3.6.0) 7123 7120 '@yarnpkg/lockfile': 1.1.0 7124 7121 ansi-colors: 4.1.3 7125 7122 ini: 4.1.2 ··· 7139 7136 - chokidar 7140 7137 - supports-color 7141 7138 7142 - '@angular/common@17.3.9(@angular/core@17.3.9)(rxjs@7.8.1)': 7139 + '@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1)': 7143 7140 dependencies: 7144 7141 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7145 7142 rxjs: 7.8.1 7146 7143 tslib: 2.6.2 7147 7144 7148 - '@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9)(typescript@5.4.5)': 7145 + '@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5)': 7149 7146 dependencies: 7150 - '@angular/compiler': 17.3.9(@angular/core@17.3.9) 7147 + '@angular/compiler': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7151 7148 '@babel/core': 7.23.9 7152 7149 '@jridgewell/sourcemap-codec': 1.4.15 7153 7150 chokidar: 3.6.0 ··· 7160 7157 transitivePeerDependencies: 7161 7158 - supports-color 7162 7159 7163 - '@angular/compiler@17.3.9(@angular/core@17.3.9)': 7160 + '@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))': 7164 7161 dependencies: 7162 + tslib: 2.6.2 7163 + optionalDependencies: 7165 7164 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7166 - tslib: 2.6.2 7167 7165 7168 7166 '@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)': 7169 7167 dependencies: ··· 7171 7169 tslib: 2.6.2 7172 7170 zone.js: 0.14.6 7173 7171 7174 - '@angular/forms@17.3.9(@angular/common@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9)(rxjs@7.8.1)': 7172 + '@angular/forms@17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(rxjs@7.8.1)': 7175 7173 dependencies: 7176 - '@angular/common': 17.3.9(@angular/core@17.3.9)(rxjs@7.8.1) 7174 + '@angular/common': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1) 7177 7175 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7178 - '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9)(@angular/common@17.3.9)(@angular/core@17.3.9) 7176 + '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7179 7177 rxjs: 7.8.1 7180 7178 tslib: 2.6.2 7181 7179 7182 - '@angular/platform-browser-dynamic@17.3.9(@angular/common@17.3.9)(@angular/compiler@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9)': 7180 + '@angular/platform-browser-dynamic@17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))': 7183 7181 dependencies: 7184 - '@angular/common': 17.3.9(@angular/core@17.3.9)(rxjs@7.8.1) 7185 - '@angular/compiler': 17.3.9(@angular/core@17.3.9) 7182 + '@angular/common': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1) 7183 + '@angular/compiler': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7186 7184 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7187 - '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9)(@angular/common@17.3.9)(@angular/core@17.3.9) 7185 + '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7188 7186 tslib: 2.6.2 7189 7187 7190 - '@angular/platform-browser@17.3.9(@angular/animations@17.3.9)(@angular/common@17.3.9)(@angular/core@17.3.9)': 7188 + '@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))': 7191 7189 dependencies: 7192 - '@angular/animations': 17.3.9(@angular/core@17.3.9) 7193 - '@angular/common': 17.3.9(@angular/core@17.3.9)(rxjs@7.8.1) 7190 + '@angular/common': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1) 7194 7191 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7195 7192 tslib: 2.6.2 7193 + optionalDependencies: 7194 + '@angular/animations': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7196 7195 7197 - '@angular/router@17.3.9(@angular/common@17.3.9)(@angular/core@17.3.9)(@angular/platform-browser@17.3.9)(rxjs@7.8.1)': 7196 + '@angular/router@17.3.9(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(@angular/platform-browser@17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(rxjs@7.8.1)': 7198 7197 dependencies: 7199 - '@angular/common': 17.3.9(@angular/core@17.3.9)(rxjs@7.8.1) 7198 + '@angular/common': 17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1) 7200 7199 '@angular/core': 17.3.9(rxjs@7.8.1)(zone.js@0.14.6) 7201 - '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9)(@angular/common@17.3.9)(@angular/core@17.3.9) 7200 + '@angular/platform-browser': 17.3.9(@angular/animations@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(@angular/common@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6))(rxjs@7.8.1))(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)) 7202 7201 rxjs: 7.8.1 7203 7202 tslib: 2.6.2 7204 7203 ··· 7208 7207 '@types/json-schema': 7.0.15 7209 7208 js-yaml: 4.1.0 7210 7209 7211 - '@babel/code-frame@7.24.2': 7210 + '@babel/code-frame@7.24.6': 7212 7211 dependencies: 7213 - '@babel/highlight': 7.24.5 7212 + '@babel/highlight': 7.24.6 7214 7213 picocolors: 1.0.1 7215 7214 7216 7215 '@babel/compat-data@7.24.4': {} ··· 7218 7217 '@babel/core@7.23.9': 7219 7218 dependencies: 7220 7219 '@ampproject/remapping': 2.3.0 7221 - '@babel/code-frame': 7.24.2 7220 + '@babel/code-frame': 7.24.6 7222 7221 '@babel/generator': 7.24.5 7223 7222 '@babel/helper-compilation-targets': 7.23.6 7224 7223 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.23.9) ··· 7238 7237 '@babel/core@7.24.0': 7239 7238 dependencies: 7240 7239 '@ampproject/remapping': 2.3.0 7241 - '@babel/code-frame': 7.24.2 7240 + '@babel/code-frame': 7.24.6 7242 7241 '@babel/generator': 7.24.5 7243 7242 '@babel/helper-compilation-targets': 7.23.6 7244 7243 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) ··· 7258 7257 '@babel/core@7.24.5': 7259 7258 dependencies: 7260 7259 '@ampproject/remapping': 2.3.0 7261 - '@babel/code-frame': 7.24.2 7260 + '@babel/code-frame': 7.24.6 7262 7261 '@babel/generator': 7.24.5 7263 7262 '@babel/helper-compilation-targets': 7.23.6 7264 7263 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) ··· 7373 7372 '@babel/helper-module-imports': 7.24.3 7374 7373 '@babel/helper-simple-access': 7.24.5 7375 7374 '@babel/helper-split-export-declaration': 7.24.5 7376 - '@babel/helper-validator-identifier': 7.24.5 7375 + '@babel/helper-validator-identifier': 7.24.6 7377 7376 7378 7377 '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.0)': 7379 7378 dependencies: ··· 7382 7381 '@babel/helper-module-imports': 7.24.3 7383 7382 '@babel/helper-simple-access': 7.24.5 7384 7383 '@babel/helper-split-export-declaration': 7.24.5 7385 - '@babel/helper-validator-identifier': 7.24.5 7384 + '@babel/helper-validator-identifier': 7.24.6 7386 7385 7387 7386 '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': 7388 7387 dependencies: ··· 7391 7390 '@babel/helper-module-imports': 7.24.3 7392 7391 '@babel/helper-simple-access': 7.24.5 7393 7392 '@babel/helper-split-export-declaration': 7.24.5 7394 - '@babel/helper-validator-identifier': 7.24.5 7393 + '@babel/helper-validator-identifier': 7.24.6 7395 7394 7396 7395 '@babel/helper-optimise-call-expression@7.22.5': 7397 7396 dependencies: ··· 7431 7430 7432 7431 '@babel/helper-string-parser@7.24.1': {} 7433 7432 7434 - '@babel/helper-validator-identifier@7.24.5': {} 7433 + '@babel/helper-validator-identifier@7.24.6': {} 7435 7434 7436 7435 '@babel/helper-validator-option@7.23.5': {} 7437 7436 ··· 7449 7448 transitivePeerDependencies: 7450 7449 - supports-color 7451 7450 7452 - '@babel/highlight@7.24.5': 7451 + '@babel/highlight@7.24.6': 7453 7452 dependencies: 7454 - '@babel/helper-validator-identifier': 7.24.5 7453 + '@babel/helper-validator-identifier': 7.24.6 7455 7454 chalk: 2.4.2 7456 7455 js-tokens: 4.0.0 7457 7456 picocolors: 1.0.1 ··· 7722 7721 '@babel/helper-hoist-variables': 7.22.5 7723 7722 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) 7724 7723 '@babel/helper-plugin-utils': 7.24.5 7725 - '@babel/helper-validator-identifier': 7.24.5 7724 + '@babel/helper-validator-identifier': 7.24.6 7726 7725 7727 7726 '@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.0)': 7728 7727 dependencies: ··· 7991 7990 7992 7991 '@babel/template@7.24.0': 7993 7992 dependencies: 7994 - '@babel/code-frame': 7.24.2 7993 + '@babel/code-frame': 7.24.6 7995 7994 '@babel/parser': 7.24.5 7996 7995 '@babel/types': 7.24.5 7997 7996 7998 7997 '@babel/traverse@7.24.5': 7999 7998 dependencies: 8000 - '@babel/code-frame': 7.24.2 7999 + '@babel/code-frame': 7.24.6 8001 8000 '@babel/generator': 7.24.5 8002 8001 '@babel/helper-environment-visitor': 7.22.20 8003 8002 '@babel/helper-function-name': 7.23.0 ··· 8013 8012 '@babel/types@7.24.5': 8014 8013 dependencies: 8015 8014 '@babel/helper-string-parser': 7.24.1 8016 - '@babel/helper-validator-identifier': 7.24.5 8015 + '@babel/helper-validator-identifier': 7.24.6 8017 8016 to-fast-properties: 2.0.0 8018 8017 8019 8018 '@bcoe/v8-coverage@0.2.3': {} ··· 8047 8046 dependencies: 8048 8047 '@changesets/types': 6.0.0 8049 8048 8049 + '@changesets/changelog-github@0.5.0(encoding@0.1.13)': 8050 + dependencies: 8051 + '@changesets/get-github-info': 0.6.0(encoding@0.1.13) 8052 + '@changesets/types': 6.0.0 8053 + dotenv: 8.6.0 8054 + transitivePeerDependencies: 8055 + - encoding 8056 + 8050 8057 '@changesets/cli@2.27.3': 8051 8058 dependencies: 8052 8059 '@babel/runtime': 7.24.5 ··· 8104 8111 fs-extra: 7.0.1 8105 8112 semver: 7.6.2 8106 8113 8107 - '@changesets/get-github-info@0.5.2': 8114 + '@changesets/get-github-info@0.6.0(encoding@0.1.13)': 8108 8115 dependencies: 8109 8116 dataloader: 1.4.0 8110 - node-fetch: 2.7.0 8117 + node-fetch: 2.7.0(encoding@0.1.13) 8111 8118 transitivePeerDependencies: 8112 8119 - encoding 8113 8120 ··· 8181 8188 8182 8189 '@docsearch/css@3.6.0': {} 8183 8190 8184 - '@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': 8191 + '@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)': 8185 8192 dependencies: 8186 - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) 8193 + '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0) 8187 8194 preact: 10.22.0 8188 8195 transitivePeerDependencies: 8189 8196 - '@algolia/client-search' ··· 8192 8199 - react-dom 8193 8200 - search-insights 8194 8201 8195 - '@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': 8202 + '@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)': 8196 8203 dependencies: 8197 - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) 8204 + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.14.0) 8198 8205 '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) 8199 8206 '@docsearch/css': 3.6.0 8200 8207 algoliasearch: 4.23.3 8201 - search-insights: 2.13.0 8208 + optionalDependencies: 8209 + '@types/react': 18.3.3 8210 + react: 18.3.1 8211 + react-dom: 18.3.1(react@18.3.1) 8212 + search-insights: 2.14.0 8202 8213 transitivePeerDependencies: 8203 8214 - '@algolia/client-search' 8204 8215 ··· 8441 8452 '@floating-ui/core': 1.6.2 8442 8453 '@floating-ui/utils': 0.2.2 8443 8454 8444 - '@floating-ui/react-dom@2.1.0(react-dom@18.3.1)(react@18.3.1)': 8455 + '@floating-ui/react-dom@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8445 8456 dependencies: 8446 8457 '@floating-ui/dom': 1.6.5 8447 8458 react: 18.3.1 ··· 8537 8548 globby: 11.1.0 8538 8549 read-yaml-file: 1.1.0 8539 8550 8540 - '@ngtools/webpack@17.3.7(@angular/compiler-cli@17.3.9)(typescript@5.4.5)(webpack@5.90.3)': 8551 + '@ngtools/webpack@17.3.7(@angular/compiler-cli@17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.90.3(esbuild@0.20.1))': 8541 8552 dependencies: 8542 - '@angular/compiler-cli': 17.3.9(@angular/compiler@17.3.9)(typescript@5.4.5) 8553 + '@angular/compiler-cli': 17.3.9(@angular/compiler@17.3.9(@angular/core@17.3.9(rxjs@7.8.1)(zone.js@0.14.6)))(typescript@5.4.5) 8543 8554 typescript: 5.4.5 8544 8555 webpack: 5.90.3(esbuild@0.20.1) 8545 8556 ··· 8592 8603 '@npmcli/package-json@5.1.0': 8593 8604 dependencies: 8594 8605 '@npmcli/git': 5.0.7 8595 - glob: 10.3.15 8606 + glob: 10.4.1 8596 8607 hosted-git-info: 7.0.2 8597 8608 json-parse-even-better-errors: 3.0.2 8598 8609 normalize-package-data: 6.0.1 ··· 8644 8655 dependencies: 8645 8656 '@babel/runtime': 7.24.5 8646 8657 8647 - '@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8658 + '@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8648 8659 dependencies: 8649 8660 '@babel/runtime': 7.24.5 8650 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8651 - '@types/react': 18.3.2 8652 - '@types/react-dom': 18.3.0 8661 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8653 8662 react: 18.3.1 8654 8663 react-dom: 18.3.1(react@18.3.1) 8664 + optionalDependencies: 8665 + '@types/react': 18.3.3 8666 + '@types/react-dom': 18.3.0 8655 8667 8656 - '@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8668 + '@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8657 8669 dependencies: 8658 8670 '@babel/runtime': 7.24.5 8659 8671 '@radix-ui/primitive': 1.0.1 8660 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8661 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8662 - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8663 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8664 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8665 - '@types/react': 18.3.2 8666 - '@types/react-dom': 18.3.0 8672 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8673 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8674 + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8675 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8676 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8667 8677 react: 18.3.1 8668 8678 react-dom: 18.3.1(react@18.3.1) 8679 + optionalDependencies: 8680 + '@types/react': 18.3.3 8681 + '@types/react-dom': 18.3.0 8669 8682 8670 - '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8683 + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8671 8684 dependencies: 8672 8685 '@babel/runtime': 7.24.5 8673 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8674 - '@types/react': 18.3.2 8675 - '@types/react-dom': 18.3.0 8686 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8676 8687 react: 18.3.1 8677 8688 react-dom: 18.3.1(react@18.3.1) 8689 + optionalDependencies: 8690 + '@types/react': 18.3.3 8691 + '@types/react-dom': 18.3.0 8678 8692 8679 - '@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8693 + '@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8680 8694 dependencies: 8681 8695 '@babel/runtime': 7.24.5 8682 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8683 - '@types/react': 18.3.2 8684 - '@types/react-dom': 18.3.0 8696 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8685 8697 react: 18.3.1 8686 8698 react-dom: 18.3.1(react@18.3.1) 8699 + optionalDependencies: 8700 + '@types/react': 18.3.3 8701 + '@types/react-dom': 18.3.0 8687 8702 8688 - '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8703 + '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8689 8704 dependencies: 8690 8705 '@babel/runtime': 7.24.5 8691 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8692 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8693 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8694 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8695 - '@types/react': 18.3.2 8696 - '@types/react-dom': 18.3.0 8706 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8707 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8708 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8709 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8697 8710 react: 18.3.1 8698 8711 react-dom: 18.3.1(react@18.3.1) 8712 + optionalDependencies: 8713 + '@types/react': 18.3.3 8714 + '@types/react-dom': 18.3.0 8699 8715 8700 - '@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8716 + '@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8701 8717 dependencies: 8702 8718 '@babel/runtime': 7.24.5 8703 8719 '@radix-ui/primitive': 1.0.1 8704 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8705 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8706 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8707 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8708 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8709 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8710 - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8711 - '@types/react': 18.3.2 8712 - '@types/react-dom': 18.3.0 8720 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8721 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8722 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8723 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8724 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8725 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8726 + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8713 8727 react: 18.3.1 8714 8728 react-dom: 18.3.1(react@18.3.1) 8729 + optionalDependencies: 8730 + '@types/react': 18.3.3 8731 + '@types/react-dom': 18.3.0 8715 8732 8716 - '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8733 + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8717 8734 dependencies: 8718 8735 '@babel/runtime': 7.24.5 8719 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8720 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8721 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8722 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8723 - '@types/react': 18.3.2 8724 - '@types/react-dom': 18.3.0 8736 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8737 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8738 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8739 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8725 8740 react: 18.3.1 8726 8741 react-dom: 18.3.1(react@18.3.1) 8742 + optionalDependencies: 8743 + '@types/react': 18.3.3 8744 + '@types/react-dom': 18.3.0 8727 8745 8728 - '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.2)(react@18.3.1)': 8746 + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1)': 8729 8747 dependencies: 8730 8748 '@babel/runtime': 7.24.5 8731 - '@types/react': 18.3.2 8732 8749 react: 18.3.1 8750 + optionalDependencies: 8751 + '@types/react': 18.3.3 8733 8752 8734 - '@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8753 + '@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8735 8754 dependencies: 8736 8755 '@babel/runtime': 7.24.5 8737 8756 '@radix-ui/primitive': 1.0.1 8738 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8739 - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8740 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8741 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8742 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8743 - '@types/react': 18.3.2 8744 - '@types/react-dom': 18.3.0 8757 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8758 + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8759 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8760 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8761 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8745 8762 react: 18.3.1 8746 8763 react-dom: 18.3.1(react@18.3.1) 8764 + optionalDependencies: 8765 + '@types/react': 18.3.3 8766 + '@types/react-dom': 18.3.0 8747 8767 8748 - '@radix-ui/react-context@1.0.1(@types/react@18.3.2)(react@18.3.1)': 8768 + '@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.3.1)': 8749 8769 dependencies: 8750 8770 '@babel/runtime': 7.24.5 8751 - '@types/react': 18.3.2 8752 8771 react: 18.3.1 8772 + optionalDependencies: 8773 + '@types/react': 18.3.3 8753 8774 8754 - '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8775 + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8755 8776 dependencies: 8756 8777 '@babel/runtime': 7.24.5 8757 8778 '@radix-ui/primitive': 1.0.1 8758 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8759 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8760 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8761 - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8762 - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8763 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8764 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8765 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8766 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8767 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8768 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8769 - '@types/react': 18.3.2 8770 - '@types/react-dom': 18.3.0 8779 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8780 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8781 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8782 + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8783 + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8784 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8785 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8786 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8787 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8788 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8789 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8771 8790 aria-hidden: 1.2.4 8772 8791 react: 18.3.1 8773 8792 react-dom: 18.3.1(react@18.3.1) 8774 - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@18.3.1) 8793 + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) 8794 + optionalDependencies: 8795 + '@types/react': 18.3.3 8796 + '@types/react-dom': 18.3.0 8775 8797 8776 - '@radix-ui/react-direction@1.0.1(@types/react@18.3.2)(react@18.3.1)': 8798 + '@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@18.3.1)': 8777 8799 dependencies: 8778 8800 '@babel/runtime': 7.24.5 8779 - '@types/react': 18.3.2 8780 8801 react: 18.3.1 8802 + optionalDependencies: 8803 + '@types/react': 18.3.3 8781 8804 8782 - '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8805 + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8783 8806 dependencies: 8784 8807 '@babel/runtime': 7.24.5 8785 8808 '@radix-ui/primitive': 1.0.1 8786 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8787 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8788 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8789 - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.2)(react@18.3.1) 8790 - '@types/react': 18.3.2 8791 - '@types/react-dom': 18.3.0 8809 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8810 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8811 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8812 + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.3)(react@18.3.1) 8792 8813 react: 18.3.1 8793 8814 react-dom: 18.3.1(react@18.3.1) 8815 + optionalDependencies: 8816 + '@types/react': 18.3.3 8817 + '@types/react-dom': 18.3.0 8794 8818 8795 - '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8819 + '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8796 8820 dependencies: 8797 8821 '@babel/runtime': 7.24.5 8798 8822 '@radix-ui/primitive': 1.0.1 8799 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8800 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8801 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8802 - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8803 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8804 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8805 - '@types/react': 18.3.2 8806 - '@types/react-dom': 18.3.0 8823 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8824 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8825 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8826 + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8827 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8828 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8807 8829 react: 18.3.1 8808 8830 react-dom: 18.3.1(react@18.3.1) 8831 + optionalDependencies: 8832 + '@types/react': 18.3.3 8833 + '@types/react-dom': 18.3.0 8809 8834 8810 - '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.2)(react@18.3.1)': 8835 + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@18.3.1)': 8811 8836 dependencies: 8812 8837 '@babel/runtime': 7.24.5 8813 - '@types/react': 18.3.2 8814 8838 react: 18.3.1 8839 + optionalDependencies: 8840 + '@types/react': 18.3.3 8815 8841 8816 - '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8842 + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8817 8843 dependencies: 8818 8844 '@babel/runtime': 7.24.5 8819 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8820 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8821 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8822 - '@types/react': 18.3.2 8823 - '@types/react-dom': 18.3.0 8845 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8846 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8847 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8824 8848 react: 18.3.1 8825 8849 react-dom: 18.3.1(react@18.3.1) 8850 + optionalDependencies: 8851 + '@types/react': 18.3.3 8852 + '@types/react-dom': 18.3.0 8826 8853 8827 - '@radix-ui/react-form@0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8854 + '@radix-ui/react-form@0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8828 8855 dependencies: 8829 8856 '@babel/runtime': 7.24.5 8830 8857 '@radix-ui/primitive': 1.0.1 8831 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8832 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8833 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8834 - '@radix-ui/react-label': 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8835 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8836 - '@types/react': 18.3.2 8837 - '@types/react-dom': 18.3.0 8858 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8859 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8860 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8861 + '@radix-ui/react-label': 2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8862 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8838 8863 react: 18.3.1 8839 8864 react-dom: 18.3.1(react@18.3.1) 8865 + optionalDependencies: 8866 + '@types/react': 18.3.3 8867 + '@types/react-dom': 18.3.0 8840 8868 8841 - '@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8869 + '@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8842 8870 dependencies: 8843 8871 '@babel/runtime': 7.24.5 8844 8872 '@radix-ui/primitive': 1.0.1 8845 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8846 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8847 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8848 - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8849 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8850 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8851 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8852 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8853 - '@types/react': 18.3.2 8854 - '@types/react-dom': 18.3.0 8873 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8874 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8875 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8876 + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8877 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8878 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8879 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8880 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8855 8881 react: 18.3.1 8856 8882 react-dom: 18.3.1(react@18.3.1) 8883 + optionalDependencies: 8884 + '@types/react': 18.3.3 8885 + '@types/react-dom': 18.3.0 8857 8886 8858 8887 '@radix-ui/react-icons@1.3.0(react@18.3.1)': 8859 8888 dependencies: 8860 8889 react: 18.3.1 8861 8890 8862 - '@radix-ui/react-id@1.0.1(@types/react@18.3.2)(react@18.3.1)': 8891 + '@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.3.1)': 8863 8892 dependencies: 8864 8893 '@babel/runtime': 7.24.5 8865 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8866 - '@types/react': 18.3.2 8894 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8867 8895 react: 18.3.1 8896 + optionalDependencies: 8897 + '@types/react': 18.3.3 8868 8898 8869 - '@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8899 + '@radix-ui/react-label@2.0.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8870 8900 dependencies: 8871 8901 '@babel/runtime': 7.24.5 8872 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8873 - '@types/react': 18.3.2 8874 - '@types/react-dom': 18.3.0 8902 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8875 8903 react: 18.3.1 8876 8904 react-dom: 18.3.1(react@18.3.1) 8905 + optionalDependencies: 8906 + '@types/react': 18.3.3 8907 + '@types/react-dom': 18.3.0 8877 8908 8878 - '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8909 + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8879 8910 dependencies: 8880 8911 '@babel/runtime': 7.24.5 8881 8912 '@radix-ui/primitive': 1.0.1 8882 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8883 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8884 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8885 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8886 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8887 - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8888 - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8889 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8890 - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8891 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8892 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8893 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8894 - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8895 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8896 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8897 - '@types/react': 18.3.2 8898 - '@types/react-dom': 18.3.0 8913 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8914 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8915 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8916 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8917 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8918 + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8919 + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8920 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8921 + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8922 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8923 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8924 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8925 + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8926 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8927 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8899 8928 aria-hidden: 1.2.4 8900 8929 react: 18.3.1 8901 8930 react-dom: 18.3.1(react@18.3.1) 8902 - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@18.3.1) 8931 + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) 8932 + optionalDependencies: 8933 + '@types/react': 18.3.3 8934 + '@types/react-dom': 18.3.0 8903 8935 8904 - '@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8936 + '@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8905 8937 dependencies: 8906 8938 '@babel/runtime': 7.24.5 8907 8939 '@radix-ui/primitive': 1.0.1 8908 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8909 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8910 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8911 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8912 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8913 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8914 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8915 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8916 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8917 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8918 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8919 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8920 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8921 - '@types/react': 18.3.2 8922 - '@types/react-dom': 18.3.0 8940 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8941 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8942 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8943 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8944 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8945 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8946 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8947 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8948 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8949 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8950 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8951 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8952 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8923 8953 react: 18.3.1 8924 8954 react-dom: 18.3.1(react@18.3.1) 8955 + optionalDependencies: 8956 + '@types/react': 18.3.3 8957 + '@types/react-dom': 18.3.0 8925 8958 8926 - '@radix-ui/react-popover@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8959 + '@radix-ui/react-popover@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8927 8960 dependencies: 8928 8961 '@babel/runtime': 7.24.5 8929 8962 '@radix-ui/primitive': 1.0.1 8930 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8931 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8932 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8933 - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8934 - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8935 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8936 - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8937 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8938 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8939 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8940 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8941 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8942 - '@types/react': 18.3.2 8943 - '@types/react-dom': 18.3.0 8963 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8964 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8965 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8966 + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8967 + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8968 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8969 + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8970 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8971 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8972 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8973 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8974 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8944 8975 aria-hidden: 1.2.4 8945 8976 react: 18.3.1 8946 8977 react-dom: 18.3.1(react@18.3.1) 8947 - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@18.3.1) 8978 + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) 8979 + optionalDependencies: 8980 + '@types/react': 18.3.3 8981 + '@types/react-dom': 18.3.0 8948 8982 8949 - '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 8983 + '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8950 8984 dependencies: 8951 8985 '@babel/runtime': 7.24.5 8952 - '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1) 8953 - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8954 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8955 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8956 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8957 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8958 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8959 - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8960 - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8986 + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8987 + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8988 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8989 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8990 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8991 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8992 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8993 + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8994 + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8961 8995 '@radix-ui/rect': 1.0.1 8962 - '@types/react': 18.3.2 8963 - '@types/react-dom': 18.3.0 8964 8996 react: 18.3.1 8965 8997 react-dom: 18.3.1(react@18.3.1) 8998 + optionalDependencies: 8999 + '@types/react': 18.3.3 9000 + '@types/react-dom': 18.3.0 8966 9001 8967 - '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9002 + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8968 9003 dependencies: 8969 9004 '@babel/runtime': 7.24.5 8970 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 8971 - '@types/react': 18.3.2 8972 - '@types/react-dom': 18.3.0 9005 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 8973 9006 react: 18.3.1 8974 9007 react-dom: 18.3.1(react@18.3.1) 9008 + optionalDependencies: 9009 + '@types/react': 18.3.3 9010 + '@types/react-dom': 18.3.0 8975 9011 8976 - '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9012 + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8977 9013 dependencies: 8978 9014 '@babel/runtime': 7.24.5 8979 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8980 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8981 - '@types/react': 18.3.2 8982 - '@types/react-dom': 18.3.0 9015 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9016 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 8983 9017 react: 18.3.1 8984 9018 react-dom: 18.3.1(react@18.3.1) 9019 + optionalDependencies: 9020 + '@types/react': 18.3.3 9021 + '@types/react-dom': 18.3.0 8985 9022 8986 - '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9023 + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8987 9024 dependencies: 8988 9025 '@babel/runtime': 7.24.5 8989 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 8990 - '@types/react': 18.3.2 8991 - '@types/react-dom': 18.3.0 9026 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 8992 9027 react: 18.3.1 8993 9028 react-dom: 18.3.1(react@18.3.1) 9029 + optionalDependencies: 9030 + '@types/react': 18.3.3 9031 + '@types/react-dom': 18.3.0 8994 9032 8995 - '@radix-ui/react-progress@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9033 + '@radix-ui/react-progress@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 8996 9034 dependencies: 8997 9035 '@babel/runtime': 7.24.5 8998 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 8999 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9000 - '@types/react': 18.3.2 9001 - '@types/react-dom': 18.3.0 9036 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9037 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9002 9038 react: 18.3.1 9003 9039 react-dom: 18.3.1(react@18.3.1) 9040 + optionalDependencies: 9041 + '@types/react': 18.3.3 9042 + '@types/react-dom': 18.3.0 9004 9043 9005 - '@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9044 + '@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9006 9045 dependencies: 9007 9046 '@babel/runtime': 7.24.5 9008 9047 '@radix-ui/primitive': 1.0.1 9009 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9010 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9011 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9012 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9013 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9014 - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9015 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9016 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9017 - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9018 - '@types/react': 18.3.2 9019 - '@types/react-dom': 18.3.0 9048 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9049 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9050 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9051 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9052 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9053 + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9054 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9055 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9056 + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9020 9057 react: 18.3.1 9021 9058 react-dom: 18.3.1(react@18.3.1) 9059 + optionalDependencies: 9060 + '@types/react': 18.3.3 9061 + '@types/react-dom': 18.3.0 9022 9062 9023 - '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9063 + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9024 9064 dependencies: 9025 9065 '@babel/runtime': 7.24.5 9026 9066 '@radix-ui/primitive': 1.0.1 9027 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9028 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9029 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9030 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9031 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9032 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9033 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9034 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9035 - '@types/react': 18.3.2 9036 - '@types/react-dom': 18.3.0 9067 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9068 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9069 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9070 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9071 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9072 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9073 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9074 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9037 9075 react: 18.3.1 9038 9076 react-dom: 18.3.1(react@18.3.1) 9077 + optionalDependencies: 9078 + '@types/react': 18.3.3 9079 + '@types/react-dom': 18.3.0 9039 9080 9040 - '@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9081 + '@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9041 9082 dependencies: 9042 9083 '@babel/runtime': 7.24.5 9043 9084 '@radix-ui/number': 1.0.1 9044 9085 '@radix-ui/primitive': 1.0.1 9045 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9046 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9047 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9048 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9049 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9050 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9051 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9052 - '@types/react': 18.3.2 9053 - '@types/react-dom': 18.3.0 9086 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9087 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9088 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9089 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9090 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9091 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9092 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9054 9093 react: 18.3.1 9055 9094 react-dom: 18.3.1(react@18.3.1) 9095 + optionalDependencies: 9096 + '@types/react': 18.3.3 9097 + '@types/react-dom': 18.3.0 9056 9098 9057 - '@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9099 + '@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9058 9100 dependencies: 9059 9101 '@babel/runtime': 7.24.5 9060 9102 '@radix-ui/number': 1.0.1 9061 9103 '@radix-ui/primitive': 1.0.1 9062 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9063 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9064 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9065 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9066 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9067 - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9068 - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9069 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9070 - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9071 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9072 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9073 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 9074 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9075 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9076 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9077 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9078 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9079 - '@types/react': 18.3.2 9080 - '@types/react-dom': 18.3.0 9104 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9105 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9106 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9107 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9108 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9109 + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9110 + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9111 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9112 + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9113 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9114 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9115 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 9116 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9117 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9118 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9119 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9120 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9081 9121 aria-hidden: 1.2.4 9082 9122 react: 18.3.1 9083 9123 react-dom: 18.3.1(react@18.3.1) 9084 - react-remove-scroll: 2.5.5(@types/react@18.3.2)(react@18.3.1) 9124 + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) 9125 + optionalDependencies: 9126 + '@types/react': 18.3.3 9127 + '@types/react-dom': 18.3.0 9085 9128 9086 - '@radix-ui/react-slider@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9129 + '@radix-ui/react-slider@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9087 9130 dependencies: 9088 9131 '@babel/runtime': 7.24.5 9089 9132 '@radix-ui/number': 1.0.1 9090 9133 '@radix-ui/primitive': 1.0.1 9091 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9092 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9093 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9094 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9095 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9096 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9097 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9098 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9099 - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9100 - '@types/react': 18.3.2 9101 - '@types/react-dom': 18.3.0 9134 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9135 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9136 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9137 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9138 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9139 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9140 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9141 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9142 + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9102 9143 react: 18.3.1 9103 9144 react-dom: 18.3.1(react@18.3.1) 9145 + optionalDependencies: 9146 + '@types/react': 18.3.3 9147 + '@types/react-dom': 18.3.0 9104 9148 9105 - '@radix-ui/react-slot@1.0.2(@types/react@18.3.2)(react@18.3.1)': 9149 + '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1)': 9106 9150 dependencies: 9107 9151 '@babel/runtime': 7.24.5 9108 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9109 - '@types/react': 18.3.2 9152 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9110 9153 react: 18.3.1 9154 + optionalDependencies: 9155 + '@types/react': 18.3.3 9111 9156 9112 - '@radix-ui/react-switch@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9157 + '@radix-ui/react-switch@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9113 9158 dependencies: 9114 9159 '@babel/runtime': 7.24.5 9115 9160 '@radix-ui/primitive': 1.0.1 9116 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9117 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9118 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9119 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9120 - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9121 - '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9122 - '@types/react': 18.3.2 9123 - '@types/react-dom': 18.3.0 9161 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9162 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9163 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9164 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9165 + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9166 + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9124 9167 react: 18.3.1 9125 9168 react-dom: 18.3.1(react@18.3.1) 9169 + optionalDependencies: 9170 + '@types/react': 18.3.3 9171 + '@types/react-dom': 18.3.0 9126 9172 9127 - '@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9173 + '@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9128 9174 dependencies: 9129 9175 '@babel/runtime': 7.24.5 9130 9176 '@radix-ui/primitive': 1.0.1 9131 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9132 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9133 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9134 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9135 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9136 - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9137 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9138 - '@types/react': 18.3.2 9139 - '@types/react-dom': 18.3.0 9177 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9178 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9179 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9180 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9181 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9182 + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9183 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9140 9184 react: 18.3.1 9141 9185 react-dom: 18.3.1(react@18.3.1) 9186 + optionalDependencies: 9187 + '@types/react': 18.3.3 9188 + '@types/react-dom': 18.3.0 9142 9189 9143 - '@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9190 + '@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9144 9191 dependencies: 9145 9192 '@babel/runtime': 7.24.5 9146 9193 '@radix-ui/primitive': 1.0.1 9147 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9148 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9149 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9150 - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9151 - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9152 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9153 - '@types/react': 18.3.2 9154 - '@types/react-dom': 18.3.0 9194 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9195 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9196 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9197 + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9198 + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9199 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9155 9200 react: 18.3.1 9156 9201 react-dom: 18.3.1(react@18.3.1) 9202 + optionalDependencies: 9203 + '@types/react': 18.3.3 9204 + '@types/react-dom': 18.3.0 9157 9205 9158 - '@radix-ui/react-toggle@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9206 + '@radix-ui/react-toggle@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9159 9207 dependencies: 9160 9208 '@babel/runtime': 7.24.5 9161 9209 '@radix-ui/primitive': 1.0.1 9162 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9163 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9164 - '@types/react': 18.3.2 9165 - '@types/react-dom': 18.3.0 9210 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9211 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9166 9212 react: 18.3.1 9167 9213 react-dom: 18.3.1(react@18.3.1) 9214 + optionalDependencies: 9215 + '@types/react': 18.3.3 9216 + '@types/react-dom': 18.3.0 9168 9217 9169 - '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9218 + '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9170 9219 dependencies: 9171 9220 '@babel/runtime': 7.24.5 9172 9221 '@radix-ui/primitive': 1.0.1 9173 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9174 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9175 - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9176 - '@radix-ui/react-id': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9177 - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9178 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9179 - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9180 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9181 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 9182 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9183 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9184 - '@types/react': 18.3.2 9185 - '@types/react-dom': 18.3.0 9222 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9223 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9224 + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9225 + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9226 + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9227 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9228 + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9229 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9230 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 9231 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9232 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9186 9233 react: 18.3.1 9187 9234 react-dom: 18.3.1(react@18.3.1) 9235 + optionalDependencies: 9236 + '@types/react': 18.3.3 9237 + '@types/react-dom': 18.3.0 9188 9238 9189 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9239 + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9190 9240 dependencies: 9191 9241 '@babel/runtime': 7.24.5 9192 - '@types/react': 18.3.2 9193 9242 react: 18.3.1 9243 + optionalDependencies: 9244 + '@types/react': 18.3.3 9194 9245 9195 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9246 + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9196 9247 dependencies: 9197 9248 '@babel/runtime': 7.24.5 9198 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9199 - '@types/react': 18.3.2 9249 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9200 9250 react: 18.3.1 9251 + optionalDependencies: 9252 + '@types/react': 18.3.3 9201 9253 9202 - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.2)(react@18.3.1)': 9254 + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@18.3.1)': 9203 9255 dependencies: 9204 9256 '@babel/runtime': 7.24.5 9205 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9206 - '@types/react': 18.3.2 9257 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9207 9258 react: 18.3.1 9259 + optionalDependencies: 9260 + '@types/react': 18.3.3 9208 9261 9209 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9262 + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9210 9263 dependencies: 9211 9264 '@babel/runtime': 7.24.5 9212 - '@types/react': 18.3.2 9213 9265 react: 18.3.1 9266 + optionalDependencies: 9267 + '@types/react': 18.3.3 9214 9268 9215 - '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9269 + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9216 9270 dependencies: 9217 9271 '@babel/runtime': 7.24.5 9218 - '@types/react': 18.3.2 9219 9272 react: 18.3.1 9273 + optionalDependencies: 9274 + '@types/react': 18.3.3 9220 9275 9221 - '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9276 + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9222 9277 dependencies: 9223 9278 '@babel/runtime': 7.24.5 9224 9279 '@radix-ui/rect': 1.0.1 9225 - '@types/react': 18.3.2 9226 9280 react: 18.3.1 9281 + optionalDependencies: 9282 + '@types/react': 18.3.3 9227 9283 9228 - '@radix-ui/react-use-size@1.0.1(@types/react@18.3.2)(react@18.3.1)': 9284 + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@18.3.1)': 9229 9285 dependencies: 9230 9286 '@babel/runtime': 7.24.5 9231 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9232 - '@types/react': 18.3.2 9287 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9233 9288 react: 18.3.1 9289 + optionalDependencies: 9290 + '@types/react': 18.3.3 9234 9291 9235 - '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9292 + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9236 9293 dependencies: 9237 9294 '@babel/runtime': 7.24.5 9238 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9239 - '@types/react': 18.3.2 9240 - '@types/react-dom': 18.3.0 9295 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9241 9296 react: 18.3.1 9242 9297 react-dom: 18.3.1(react@18.3.1) 9298 + optionalDependencies: 9299 + '@types/react': 18.3.3 9300 + '@types/react-dom': 18.3.0 9243 9301 9244 9302 '@radix-ui/rect@1.0.1': 9245 9303 dependencies: 9246 9304 '@babel/runtime': 7.24.5 9247 9305 9248 - '@radix-ui/themes@3.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)': 9306 + '@radix-ui/themes@3.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 9249 9307 dependencies: 9250 9308 '@radix-ui/colors': 3.0.0 9251 9309 '@radix-ui/primitive': 1.0.1 9252 - '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9253 - '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9254 - '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9255 - '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9256 - '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9257 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9258 - '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9259 - '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9260 - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9261 - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9262 - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9263 - '@radix-ui/react-form': 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9264 - '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9265 - '@radix-ui/react-navigation-menu': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9266 - '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9267 - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9268 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9269 - '@radix-ui/react-progress': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9270 - '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9271 - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9272 - '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9273 - '@radix-ui/react-select': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9274 - '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9275 - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) 9276 - '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9277 - '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9278 - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9279 - '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9280 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9281 - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.2)(react@18.3.1) 9282 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) 9283 - '@types/react': 18.3.2 9284 - '@types/react-dom': 18.3.0 9310 + '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9311 + '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9312 + '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9313 + '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9314 + '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9315 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9316 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9317 + '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9318 + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9319 + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9320 + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9321 + '@radix-ui/react-form': 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9322 + '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9323 + '@radix-ui/react-navigation-menu': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9324 + '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9325 + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9326 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9327 + '@radix-ui/react-progress': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9328 + '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9329 + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9330 + '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9331 + '@radix-ui/react-select': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9332 + '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9333 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) 9334 + '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9335 + '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9336 + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9337 + '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9338 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9339 + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) 9340 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 9285 9341 classnames: 2.5.1 9286 9342 react: 18.3.1 9287 9343 react-dom: 18.3.1(react@18.3.1) 9288 - react-remove-scroll-bar: 2.3.4(@types/react@18.3.2)(react@18.3.1) 9344 + react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.3.1) 9345 + optionalDependencies: 9346 + '@types/react': 18.3.3 9347 + '@types/react-dom': 18.3.0 9289 9348 9290 - '@rollup/plugin-commonjs@25.0.7(rollup@4.17.2)': 9349 + '@rollup/plugin-commonjs@25.0.8(rollup@4.18.0)': 9291 9350 dependencies: 9292 - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) 9351 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) 9293 9352 commondir: 1.0.1 9294 9353 estree-walker: 2.0.2 9295 9354 glob: 8.1.0 9296 9355 is-reference: 1.2.1 9297 9356 magic-string: 0.30.10 9298 - rollup: 4.17.2 9357 + optionalDependencies: 9358 + rollup: 4.18.0 9299 9359 9300 - '@rollup/plugin-json@6.1.0(rollup@4.17.2)': 9360 + '@rollup/plugin-json@6.1.0(rollup@4.18.0)': 9301 9361 dependencies: 9302 - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) 9303 - rollup: 4.17.2 9362 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) 9363 + optionalDependencies: 9364 + rollup: 4.18.0 9304 9365 9305 - '@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2)': 9366 + '@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0)': 9306 9367 dependencies: 9307 - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) 9368 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) 9308 9369 '@types/resolve': 1.20.2 9309 9370 deepmerge: 4.3.1 9310 9371 is-builtin-module: 3.2.1 9311 9372 is-module: 1.0.0 9312 9373 resolve: 1.22.8 9313 - rollup: 4.17.2 9374 + optionalDependencies: 9375 + rollup: 4.18.0 9314 9376 9315 - '@rollup/plugin-terser@0.4.4(rollup@4.17.2)': 9377 + '@rollup/plugin-terser@0.4.4(rollup@4.18.0)': 9316 9378 dependencies: 9317 - rollup: 4.17.2 9318 9379 serialize-javascript: 6.0.2 9319 9380 smob: 1.5.0 9320 9381 terser: 5.31.0 9382 + optionalDependencies: 9383 + rollup: 4.18.0 9321 9384 9322 - '@rollup/plugin-typescript@11.1.6(rollup@4.17.2)(typescript@5.4.5)': 9385 + '@rollup/plugin-typescript@11.1.6(rollup@4.18.0)(tslib@2.6.2)(typescript@5.4.5)': 9323 9386 dependencies: 9324 - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) 9387 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) 9325 9388 resolve: 1.22.8 9326 - rollup: 4.17.2 9327 9389 typescript: 5.4.5 9390 + optionalDependencies: 9391 + rollup: 4.18.0 9392 + tslib: 2.6.2 9328 9393 9329 - '@rollup/pluginutils@5.1.0(rollup@4.17.2)': 9394 + '@rollup/pluginutils@5.1.0(rollup@4.18.0)': 9330 9395 dependencies: 9331 9396 '@types/estree': 1.0.5 9332 9397 estree-walker: 2.0.2 9333 9398 picomatch: 2.3.1 9334 - rollup: 4.17.2 9399 + optionalDependencies: 9400 + rollup: 4.18.0 9335 9401 9336 - '@rollup/rollup-android-arm-eabi@4.17.2': 9402 + '@rollup/rollup-android-arm-eabi@4.18.0': 9337 9403 optional: true 9338 9404 9339 - '@rollup/rollup-android-arm64@4.17.2': 9405 + '@rollup/rollup-android-arm64@4.18.0': 9340 9406 optional: true 9341 9407 9342 - '@rollup/rollup-darwin-arm64@4.17.2': 9408 + '@rollup/rollup-darwin-arm64@4.18.0': 9343 9409 optional: true 9344 9410 9345 - '@rollup/rollup-darwin-x64@4.17.2': 9411 + '@rollup/rollup-darwin-x64@4.18.0': 9346 9412 optional: true 9347 9413 9348 - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': 9414 + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 9349 9415 optional: true 9350 9416 9351 - '@rollup/rollup-linux-arm-musleabihf@4.17.2': 9417 + '@rollup/rollup-linux-arm-musleabihf@4.18.0': 9352 9418 optional: true 9353 9419 9354 - '@rollup/rollup-linux-arm64-gnu@4.17.2': 9420 + '@rollup/rollup-linux-arm64-gnu@4.18.0': 9355 9421 optional: true 9356 9422 9357 - '@rollup/rollup-linux-arm64-musl@4.17.2': 9423 + '@rollup/rollup-linux-arm64-musl@4.18.0': 9358 9424 optional: true 9359 9425 9360 - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': 9426 + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 9361 9427 optional: true 9362 9428 9363 - '@rollup/rollup-linux-riscv64-gnu@4.17.2': 9429 + '@rollup/rollup-linux-riscv64-gnu@4.18.0': 9364 9430 optional: true 9365 9431 9366 - '@rollup/rollup-linux-s390x-gnu@4.17.2': 9432 + '@rollup/rollup-linux-s390x-gnu@4.18.0': 9367 9433 optional: true 9368 9434 9369 - '@rollup/rollup-linux-x64-gnu@4.17.2': 9435 + '@rollup/rollup-linux-x64-gnu@4.18.0': 9370 9436 optional: true 9371 9437 9372 - '@rollup/rollup-linux-x64-musl@4.17.2': 9438 + '@rollup/rollup-linux-x64-musl@4.18.0': 9373 9439 optional: true 9374 9440 9375 - '@rollup/rollup-win32-arm64-msvc@4.17.2': 9441 + '@rollup/rollup-win32-arm64-msvc@4.18.0': 9376 9442 optional: true 9377 9443 9378 - '@rollup/rollup-win32-ia32-msvc@4.17.2': 9444 + '@rollup/rollup-win32-ia32-msvc@4.18.0': 9379 9445 optional: true 9380 9446 9381 - '@rollup/rollup-win32-x64-msvc@4.17.2': 9447 + '@rollup/rollup-win32-x64-msvc@4.18.0': 9382 9448 optional: true 9383 9449 9384 - '@schematics/angular@17.3.7': 9450 + '@schematics/angular@17.3.7(chokidar@3.6.0)': 9385 9451 dependencies: 9386 - '@angular-devkit/core': 17.3.7 9387 - '@angular-devkit/schematics': 17.3.7 9452 + '@angular-devkit/core': 17.3.7(chokidar@3.6.0) 9453 + '@angular-devkit/schematics': 17.3.7(chokidar@3.6.0) 9388 9454 jsonc-parser: 3.2.1 9389 9455 transitivePeerDependencies: 9390 9456 - chokidar ··· 9430 9496 '@sinclair/typebox@0.27.8': {} 9431 9497 9432 9498 '@stackblitz/sdk@1.10.0': {} 9433 - 9434 - '@svitejs/changesets-changelog-github-compact@1.1.0': 9435 - dependencies: 9436 - '@changesets/get-github-info': 0.5.2 9437 - dotenv: 16.4.5 9438 - transitivePeerDependencies: 9439 - - encoding 9440 9499 9441 9500 '@tootallnate/quickjs-emscripten@0.23.0': {} 9442 9501 ··· 9565 9624 9566 9625 '@types/react-dom@18.3.0': 9567 9626 dependencies: 9568 - '@types/react': 18.3.2 9627 + '@types/react': 18.3.3 9569 9628 9570 - '@types/react@18.3.2': 9629 + '@types/react@18.3.3': 9571 9630 dependencies: 9572 9631 '@types/prop-types': 15.7.12 9573 9632 csstype: 3.1.3 ··· 9608 9667 '@types/node': 20.12.12 9609 9668 optional: true 9610 9669 9611 - '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0)(eslint@9.3.0)(typescript@5.4.5)': 9670 + '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5)': 9612 9671 dependencies: 9613 9672 '@eslint-community/regexpp': 4.10.0 9614 9673 '@typescript-eslint/parser': 7.10.0(eslint@9.3.0)(typescript@5.4.5) ··· 9621 9680 ignore: 5.3.1 9622 9681 natural-compare: 1.4.0 9623 9682 ts-api-utils: 1.3.0(typescript@5.4.5) 9683 + optionalDependencies: 9624 9684 typescript: 5.4.5 9625 9685 transitivePeerDependencies: 9626 9686 - supports-color ··· 9633 9693 '@typescript-eslint/visitor-keys': 7.10.0 9634 9694 debug: 4.3.4 9635 9695 eslint: 9.3.0 9696 + optionalDependencies: 9636 9697 typescript: 5.4.5 9637 9698 transitivePeerDependencies: 9638 9699 - supports-color ··· 9649 9710 debug: 4.3.4 9650 9711 eslint: 9.3.0 9651 9712 ts-api-utils: 1.3.0(typescript@5.4.5) 9713 + optionalDependencies: 9652 9714 typescript: 5.4.5 9653 9715 transitivePeerDependencies: 9654 9716 - supports-color ··· 9665 9727 minimatch: 9.0.4 9666 9728 semver: 7.6.2 9667 9729 ts-api-utils: 1.3.0(typescript@5.4.5) 9730 + optionalDependencies: 9668 9731 typescript: 5.4.5 9669 9732 transitivePeerDependencies: 9670 9733 - supports-color ··· 9685 9748 '@typescript-eslint/types': 7.10.0 9686 9749 eslint-visitor-keys: 3.4.3 9687 9750 9688 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.7)': 9751 + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1))': 9689 9752 dependencies: 9690 9753 vite: 5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1) 9691 9754 9692 - '@vitejs/plugin-react@4.2.1(vite@5.2.11)': 9755 + '@vitejs/plugin-react@4.3.0(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0))': 9693 9756 dependencies: 9694 9757 '@babel/core': 7.24.5 9695 9758 '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.5) 9696 9759 '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) 9697 9760 '@types/babel__core': 7.20.5 9698 9761 react-refresh: 0.14.2 9699 - vite: 5.2.11(@types/node@20.12.12) 9762 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 9700 9763 transitivePeerDependencies: 9701 9764 - supports-color 9702 9765 9703 - '@vitejs/plugin-vue@5.0.4(vite@5.2.11)(vue@3.4.27)': 9766 + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': 9704 9767 dependencies: 9705 - vite: 5.2.11(@types/node@20.12.12) 9768 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 9706 9769 vue: 3.4.27(typescript@5.4.5) 9707 9770 9708 - '@vitest/coverage-v8@1.6.0(vitest@1.6.0)': 9771 + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0))': 9709 9772 dependencies: 9710 9773 '@ampproject/remapping': 2.3.0 9711 9774 '@bcoe/v8-coverage': 0.2.3 ··· 9720 9783 std-env: 3.7.0 9721 9784 strip-literal: 2.1.0 9722 9785 test-exclude: 6.0.0 9723 - vitest: 1.6.0(@types/node@20.12.12) 9786 + vitest: 1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 9724 9787 transitivePeerDependencies: 9725 9788 - supports-color 9726 9789 ··· 9783 9846 '@vue/compiler-dom': 3.4.27 9784 9847 '@vue/shared': 3.4.27 9785 9848 9786 - '@vue/devtools-api@7.2.1(vue@3.4.27)': 9849 + '@vue/devtools-api@7.2.1(vue@3.4.27(typescript@5.4.5))': 9787 9850 dependencies: 9788 - '@vue/devtools-kit': 7.2.1(vue@3.4.27) 9851 + '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5)) 9789 9852 transitivePeerDependencies: 9790 9853 - vue 9791 9854 9792 - '@vue/devtools-kit@7.2.1(vue@3.4.27)': 9855 + '@vue/devtools-kit@7.2.1(vue@3.4.27(typescript@5.4.5))': 9793 9856 dependencies: 9794 9857 '@vue/devtools-shared': 7.2.1 9795 9858 hookable: 5.5.3 ··· 9817 9880 '@vue/shared': 3.4.27 9818 9881 csstype: 3.1.3 9819 9882 9820 - '@vue/server-renderer@3.4.27(vue@3.4.27)': 9883 + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.4.5))': 9821 9884 dependencies: 9822 9885 '@vue/compiler-ssr': 3.4.27 9823 9886 '@vue/shared': 3.4.27 ··· 9825 9888 9826 9889 '@vue/shared@3.4.27': {} 9827 9890 9828 - '@vueuse/core@10.9.0(vue@3.4.27)': 9891 + '@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5))': 9829 9892 dependencies: 9830 9893 '@types/web-bluetooth': 0.0.20 9831 9894 '@vueuse/metadata': 10.9.0 9832 - '@vueuse/shared': 10.9.0(vue@3.4.27) 9833 - vue-demi: 0.14.7(vue@3.4.27) 9895 + '@vueuse/shared': 10.9.0(vue@3.4.27(typescript@5.4.5)) 9896 + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) 9834 9897 transitivePeerDependencies: 9835 9898 - '@vue/composition-api' 9836 9899 - vue 9837 9900 9838 - '@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.27)': 9901 + '@vueuse/integrations@10.9.0(axios@1.7.2)(focus-trap@7.5.4)(vue@3.4.27(typescript@5.4.5))': 9839 9902 dependencies: 9840 - '@vueuse/core': 10.9.0(vue@3.4.27) 9841 - '@vueuse/shared': 10.9.0(vue@3.4.27) 9903 + '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) 9904 + '@vueuse/shared': 10.9.0(vue@3.4.27(typescript@5.4.5)) 9905 + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) 9906 + optionalDependencies: 9907 + axios: 1.7.2 9842 9908 focus-trap: 7.5.4 9843 - vue-demi: 0.14.7(vue@3.4.27) 9844 9909 transitivePeerDependencies: 9845 9910 - '@vue/composition-api' 9846 9911 - vue 9847 9912 9848 9913 '@vueuse/metadata@10.9.0': {} 9849 9914 9850 - '@vueuse/shared@10.9.0(vue@3.4.27)': 9915 + '@vueuse/shared@10.9.0(vue@3.4.27(typescript@5.4.5))': 9851 9916 dependencies: 9852 - vue-demi: 0.14.7(vue@3.4.27) 9917 + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) 9853 9918 transitivePeerDependencies: 9854 9919 - '@vue/composition-api' 9855 9920 - vue ··· 9978 10043 indent-string: 4.0.0 9979 10044 9980 10045 ajv-formats@2.1.1(ajv@8.12.0): 9981 - dependencies: 10046 + optionalDependencies: 9982 10047 ajv: 8.12.0 9983 10048 9984 10049 ajv-formats@2.1.1(ajv@8.13.0): 9985 - dependencies: 10050 + optionalDependencies: 9986 10051 ajv: 8.13.0 9987 10052 9988 10053 ajv-keywords@3.5.2(ajv@6.12.6): ··· 10141 10206 dependencies: 10142 10207 possible-typed-array-names: 1.0.0 10143 10208 10144 - axios@1.7.1: 10209 + axios@1.7.2: 10145 10210 dependencies: 10146 10211 follow-redirects: 1.15.6 10147 10212 form-data: 4.0.0 ··· 10151 10216 10152 10217 b4a@1.6.6: {} 10153 10218 10154 - babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.90.3): 10219 + babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.90.3(esbuild@0.20.1)): 10155 10220 dependencies: 10156 10221 '@babel/core': 7.24.0 10157 10222 find-cache-dir: 4.0.0 ··· 10200 10265 bare-fs@2.3.0: 10201 10266 dependencies: 10202 10267 bare-events: 2.2.2 10203 - bare-path: 2.1.2 10268 + bare-path: 2.1.3 10204 10269 bare-stream: 1.0.0 10205 10270 optional: true 10206 10271 10207 10272 bare-os@2.3.0: 10208 10273 optional: true 10209 10274 10210 - bare-path@2.1.2: 10275 + bare-path@2.1.3: 10211 10276 dependencies: 10212 10277 bare-os: 2.3.0 10213 10278 optional: true ··· 10321 10386 dependencies: 10322 10387 '@npmcli/fs': 3.1.1 10323 10388 fs-minipass: 3.0.3 10324 - glob: 10.3.15 10389 + glob: 10.4.1 10325 10390 lru-cache: 10.2.2 10326 - minipass: 7.1.1 10391 + minipass: 7.1.2 10327 10392 minipass-collect: 2.0.1 10328 10393 minipass-flush: 1.0.5 10329 10394 minipass-pipeline: 1.2.4 ··· 10473 10538 dependencies: 10474 10539 delayed-stream: 1.0.0 10475 10540 10476 - commander@11.1.0: {} 10477 - 10478 10541 commander@12.1.0: {} 10479 10542 10480 10543 commander@2.20.3: {} ··· 10527 10590 dependencies: 10528 10591 is-what: 3.14.1 10529 10592 10530 - copy-webpack-plugin@11.0.0(webpack@5.90.3): 10593 + copy-webpack-plugin@11.0.0(webpack@5.90.3(esbuild@0.20.1)): 10531 10594 dependencies: 10532 10595 fast-glob: 3.3.2 10533 10596 glob-parent: 6.0.2 ··· 10549 10612 import-fresh: 3.3.0 10550 10613 js-yaml: 4.1.0 10551 10614 parse-json: 5.2.0 10615 + optionalDependencies: 10552 10616 typescript: 5.4.5 10553 10617 10554 10618 create-require@1.1.1: {} ··· 10575 10639 shebang-command: 2.0.0 10576 10640 which: 2.0.2 10577 10641 10578 - css-loader@6.10.0(webpack@5.90.3): 10642 + css-loader@6.10.0(webpack@5.90.3(esbuild@0.20.1)): 10579 10643 dependencies: 10580 10644 icss-utils: 5.1.0(postcss@8.4.35) 10581 10645 postcss: 8.4.35 ··· 10585 10649 postcss-modules-values: 4.0.0(postcss@8.4.35) 10586 10650 postcss-value-parser: 4.2.0 10587 10651 semver: 7.6.2 10652 + optionalDependencies: 10588 10653 webpack: 5.90.3(esbuild@0.20.1) 10589 10654 10590 10655 css-select@5.1.0: ··· 10745 10810 10746 10811 dotenv@16.4.5: {} 10747 10812 10813 + dotenv@8.6.0: {} 10814 + 10748 10815 eastasianwidth@0.2.0: {} 10749 10816 10750 10817 ee-first@1.1.1: {} ··· 10925 10992 '@esbuild/win32-arm64': 0.20.1 10926 10993 '@esbuild/win32-ia32': 0.20.1 10927 10994 '@esbuild/win32-x64': 0.20.1 10995 + optional: true 10928 10996 10929 10997 esbuild@0.20.2: 10930 10998 optionalDependencies: ··· 11247 11315 11248 11316 find-yarn-workspace-root2@1.2.16: 11249 11317 dependencies: 11250 - micromatch: 4.0.6 11318 + micromatch: 4.0.7 11251 11319 pkg-dir: 4.2.0 11252 11320 11253 11321 flat-cache@4.0.1: ··· 11314 11382 11315 11383 fs-minipass@3.0.3: 11316 11384 dependencies: 11317 - minipass: 7.1.1 11385 + minipass: 7.1.2 11318 11386 11319 11387 fs-monkey@1.0.6: {} 11320 11388 ··· 11398 11466 11399 11467 glob-to-regexp@0.4.1: {} 11400 11468 11401 - glob@10.3.15: 11469 + glob@10.4.1: 11402 11470 dependencies: 11403 11471 foreground-child: 3.1.1 11404 - jackspeak: 2.3.6 11472 + jackspeak: 3.1.2 11405 11473 minimatch: 9.0.4 11406 - minipass: 7.1.1 11474 + minipass: 7.1.2 11407 11475 path-scurry: 1.11.1 11408 11476 11409 11477 glob@7.2.3: ··· 11552 11620 11553 11621 http-proxy-middleware@2.0.6(@types/express@4.17.21): 11554 11622 dependencies: 11555 - '@types/express': 4.17.21 11556 11623 '@types/http-proxy': 1.17.14 11557 11624 http-proxy: 1.18.1 11558 11625 is-glob: 4.0.3 11559 11626 is-plain-obj: 3.0.0 11560 - micromatch: 4.0.6 11627 + micromatch: 4.0.7 11628 + optionalDependencies: 11629 + '@types/express': 4.17.21 11561 11630 transitivePeerDependencies: 11562 11631 - debug 11563 11632 ··· 11832 11901 html-escaper: 2.0.2 11833 11902 istanbul-lib-report: 3.0.1 11834 11903 11835 - jackspeak@2.3.6: 11904 + jackspeak@3.1.2: 11836 11905 dependencies: 11837 11906 '@isaacs/cliui': 8.0.2 11838 11907 optionalDependencies: ··· 11912 11981 picocolors: 1.0.1 11913 11982 shell-quote: 1.8.1 11914 11983 11915 - less-loader@11.1.0(less@4.2.0)(webpack@5.90.3): 11984 + less-loader@11.1.0(less@4.2.0)(webpack@5.90.3(esbuild@0.20.1)): 11916 11985 dependencies: 11917 11986 klona: 2.0.6 11918 11987 less: 4.2.0 ··· 11937 12006 prelude-ls: 1.2.1 11938 12007 type-check: 0.4.0 11939 12008 11940 - license-webpack-plugin@4.0.2(webpack@5.90.3): 12009 + license-webpack-plugin@4.0.2(webpack@5.90.3(esbuild@0.20.1)): 11941 12010 dependencies: 11942 - webpack: 5.90.3(esbuild@0.20.1) 11943 12011 webpack-sources: 3.2.3 12012 + optionalDependencies: 12013 + webpack: 5.90.3(esbuild@0.20.1) 11944 12014 11945 12015 lilconfig@2.1.0: {} 11946 - 11947 - lilconfig@3.0.0: {} 11948 12016 11949 12017 lilconfig@3.1.1: {} 11950 12018 11951 12019 lines-and-columns@1.2.4: {} 11952 12020 11953 - lint-staged@15.2.2: 12021 + lint-staged@15.2.5: 11954 12022 dependencies: 11955 12023 chalk: 5.3.0 11956 - commander: 11.1.0 12024 + commander: 12.1.0 11957 12025 debug: 4.3.4 11958 12026 execa: 8.0.1 11959 - lilconfig: 3.0.0 11960 - listr2: 8.0.1 11961 - micromatch: 4.0.5 12027 + lilconfig: 3.1.1 12028 + listr2: 8.2.1 12029 + micromatch: 4.0.7 11962 12030 pidtree: 0.6.0 11963 12031 string-argv: 0.3.2 11964 - yaml: 2.3.4 12032 + yaml: 2.4.2 11965 12033 transitivePeerDependencies: 11966 12034 - supports-color 11967 12035 11968 - listr2@8.0.1: 12036 + listr2@8.2.1: 11969 12037 dependencies: 11970 12038 cli-truncate: 4.0.0 11971 12039 colorette: 2.0.20 ··· 12086 12154 cacache: 18.0.3 12087 12155 http-cache-semantics: 4.1.1 12088 12156 is-lambda: 1.0.1 12089 - minipass: 7.1.1 12157 + minipass: 7.1.2 12090 12158 minipass-fetch: 3.0.5 12091 12159 minipass-flush: 1.0.5 12092 12160 minipass-pipeline: 1.2.4 ··· 12131 12199 12132 12200 methods@1.1.2: {} 12133 12201 12134 - micromatch@4.0.5: 12202 + micromatch@4.0.6: 12135 12203 dependencies: 12136 12204 braces: 3.0.3 12137 - picomatch: 2.3.1 12205 + picomatch: 4.0.2 12138 12206 12139 - micromatch@4.0.6: 12207 + micromatch@4.0.7: 12140 12208 dependencies: 12141 12209 braces: 3.0.3 12142 - picomatch: 4.0.2 12210 + picomatch: 2.3.1 12143 12211 12144 12212 mime-db@1.52.0: {} 12145 12213 ··· 12155 12223 12156 12224 min-indent@1.0.1: {} 12157 12225 12158 - mini-css-extract-plugin@2.8.1(webpack@5.90.3): 12226 + mini-css-extract-plugin@2.8.1(webpack@5.90.3(esbuild@0.20.1)): 12159 12227 dependencies: 12160 12228 schema-utils: 4.2.0 12161 12229 tapable: 2.2.1 ··· 12185 12253 12186 12254 minipass-collect@2.0.1: 12187 12255 dependencies: 12188 - minipass: 7.1.1 12256 + minipass: 7.1.2 12189 12257 12190 12258 minipass-fetch@3.0.5: 12191 12259 dependencies: 12192 - minipass: 7.1.1 12260 + minipass: 7.1.2 12193 12261 minipass-sized: 1.0.3 12194 12262 minizlib: 2.1.2 12195 12263 optionalDependencies: ··· 12218 12286 12219 12287 minipass@5.0.0: {} 12220 12288 12221 - minipass@7.1.1: {} 12289 + minipass@7.1.2: {} 12222 12290 12223 12291 minisearch@6.3.0: {} 12224 12292 ··· 12290 12358 12291 12359 node-fetch-native@1.6.4: {} 12292 12360 12293 - node-fetch@2.7.0: 12361 + node-fetch@2.7.0(encoding@0.1.13): 12294 12362 dependencies: 12295 12363 whatwg-url: 5.0.0 12364 + optionalDependencies: 12365 + encoding: 0.1.13 12296 12366 12297 12367 node-fetch@3.3.2: 12298 12368 dependencies: ··· 12309 12379 dependencies: 12310 12380 env-paths: 2.2.1 12311 12381 exponential-backoff: 3.1.1 12312 - glob: 10.3.15 12382 + glob: 10.4.1 12313 12383 graceful-fs: 4.2.11 12314 12384 make-fetch-happen: 13.0.1 12315 12385 nopt: 7.2.1 ··· 12376 12446 dependencies: 12377 12447 '@npmcli/redact': 1.1.0 12378 12448 make-fetch-happen: 13.0.1 12379 - minipass: 7.1.1 12449 + minipass: 7.1.2 12380 12450 minipass-fetch: 3.0.5 12381 12451 minipass-json-stream: 1.0.1 12382 12452 minizlib: 2.1.2 ··· 12544 12614 '@npmcli/run-script': 7.0.4 12545 12615 cacache: 18.0.3 12546 12616 fs-minipass: 3.0.3 12547 - minipass: 7.1.1 12617 + minipass: 7.1.2 12548 12618 npm-package-arg: 11.0.1 12549 12619 npm-packlist: 8.0.2 12550 12620 npm-pick-manifest: 9.0.0 ··· 12566 12636 12567 12637 parse-json@5.2.0: 12568 12638 dependencies: 12569 - '@babel/code-frame': 7.24.2 12639 + '@babel/code-frame': 7.24.6 12570 12640 error-ex: 1.3.2 12571 12641 json-parse-even-better-errors: 2.3.1 12572 12642 lines-and-columns: 1.2.4 ··· 12604 12674 path-scurry@1.11.1: 12605 12675 dependencies: 12606 12676 lru-cache: 10.2.2 12607 - minipass: 7.1.1 12677 + minipass: 7.1.2 12608 12678 12609 12679 path-to-regexp@0.1.7: {} 12610 12680 ··· 12666 12736 camelcase-css: 2.0.1 12667 12737 postcss: 8.4.38 12668 12738 12669 - postcss-load-config@4.0.2(postcss@8.4.38): 12739 + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)): 12670 12740 dependencies: 12671 12741 lilconfig: 3.1.1 12742 + yaml: 2.4.2 12743 + optionalDependencies: 12672 12744 postcss: 8.4.38 12673 - yaml: 2.4.2 12745 + ts-node: 10.9.2(@types/node@20.12.12)(typescript@5.4.5) 12674 12746 12675 - postcss-loader@8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.90.3): 12747 + postcss-loader@8.1.1(postcss@8.4.35)(typescript@5.4.5)(webpack@5.90.3(esbuild@0.20.1)): 12676 12748 dependencies: 12677 12749 cosmiconfig: 9.0.0(typescript@5.4.5) 12678 12750 jiti: 1.21.0 12679 12751 postcss: 8.4.35 12680 12752 semver: 7.6.2 12753 + optionalDependencies: 12681 12754 webpack: 5.90.3(esbuild@0.20.1) 12682 12755 transitivePeerDependencies: 12683 12756 - typescript ··· 12797 12870 12798 12871 punycode@2.3.1: {} 12799 12872 12800 - puppeteer-core@22.9.0: 12873 + puppeteer-core@22.10.0: 12801 12874 dependencies: 12802 12875 '@puppeteer/browsers': 2.2.3 12803 12876 chromium-bidi: 0.5.19(devtools-protocol@0.0.1286932) ··· 12809 12882 - supports-color 12810 12883 - utf-8-validate 12811 12884 12812 - puppeteer@22.9.0(typescript@5.4.5): 12885 + puppeteer@22.10.0(typescript@5.4.5): 12813 12886 dependencies: 12814 12887 '@puppeteer/browsers': 2.2.3 12815 12888 cosmiconfig: 9.0.0(typescript@5.4.5) 12816 12889 devtools-protocol: 0.0.1286932 12817 - puppeteer-core: 22.9.0 12890 + puppeteer-core: 22.10.0 12818 12891 transitivePeerDependencies: 12819 12892 - bufferutil 12820 12893 - supports-color ··· 12859 12932 12860 12933 react-refresh@0.14.2: {} 12861 12934 12862 - react-remove-scroll-bar@2.3.4(@types/react@18.3.2)(react@18.3.1): 12935 + react-remove-scroll-bar@2.3.4(@types/react@18.3.3)(react@18.3.1): 12863 12936 dependencies: 12864 - '@types/react': 18.3.2 12865 12937 react: 18.3.1 12866 - react-style-singleton: 2.2.1(@types/react@18.3.2)(react@18.3.1) 12938 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 12867 12939 tslib: 2.6.2 12940 + optionalDependencies: 12941 + '@types/react': 18.3.3 12868 12942 12869 - react-remove-scroll@2.5.5(@types/react@18.3.2)(react@18.3.1): 12943 + react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.3.1): 12870 12944 dependencies: 12871 - '@types/react': 18.3.2 12872 12945 react: 18.3.1 12873 - react-remove-scroll-bar: 2.3.4(@types/react@18.3.2)(react@18.3.1) 12874 - react-style-singleton: 2.2.1(@types/react@18.3.2)(react@18.3.1) 12946 + react-remove-scroll-bar: 2.3.4(@types/react@18.3.3)(react@18.3.1) 12947 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 12875 12948 tslib: 2.6.2 12876 - use-callback-ref: 1.3.2(@types/react@18.3.2)(react@18.3.1) 12877 - use-sidecar: 1.1.2(@types/react@18.3.2)(react@18.3.1) 12949 + use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) 12950 + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) 12951 + optionalDependencies: 12952 + '@types/react': 18.3.3 12878 12953 12879 - react-style-singleton@2.2.1(@types/react@18.3.2)(react@18.3.1): 12954 + react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): 12880 12955 dependencies: 12881 - '@types/react': 18.3.2 12882 12956 get-nonce: 1.0.1 12883 12957 invariant: 2.2.4 12884 12958 react: 18.3.1 12885 12959 tslib: 2.6.2 12960 + optionalDependencies: 12961 + '@types/react': 18.3.3 12886 12962 12887 12963 react@18.3.1: 12888 12964 dependencies: ··· 12899 12975 12900 12976 read-package-json@7.0.1: 12901 12977 dependencies: 12902 - glob: 10.3.15 12978 + glob: 10.4.1 12903 12979 json-parse-even-better-errors: 3.0.2 12904 12980 normalize-package-data: 6.0.1 12905 12981 npm-normalize-package-bin: 3.0.1 ··· 13037 13113 13038 13114 rimraf@5.0.7: 13039 13115 dependencies: 13040 - glob: 10.3.15 13116 + glob: 10.4.1 13041 13117 13042 - rollup-plugin-dts@6.1.1(rollup@4.17.2)(typescript@5.4.5): 13118 + rollup-plugin-dts@6.1.1(rollup@4.18.0)(typescript@5.4.5): 13043 13119 dependencies: 13044 13120 magic-string: 0.30.10 13045 - rollup: 4.17.2 13121 + rollup: 4.18.0 13046 13122 typescript: 5.4.5 13047 13123 optionalDependencies: 13048 - '@babel/code-frame': 7.24.2 13124 + '@babel/code-frame': 7.24.6 13049 13125 13050 - rollup@4.17.2: 13126 + rollup@4.18.0: 13051 13127 dependencies: 13052 13128 '@types/estree': 1.0.5 13053 13129 optionalDependencies: 13054 - '@rollup/rollup-android-arm-eabi': 4.17.2 13055 - '@rollup/rollup-android-arm64': 4.17.2 13056 - '@rollup/rollup-darwin-arm64': 4.17.2 13057 - '@rollup/rollup-darwin-x64': 4.17.2 13058 - '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 13059 - '@rollup/rollup-linux-arm-musleabihf': 4.17.2 13060 - '@rollup/rollup-linux-arm64-gnu': 4.17.2 13061 - '@rollup/rollup-linux-arm64-musl': 4.17.2 13062 - '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 13063 - '@rollup/rollup-linux-riscv64-gnu': 4.17.2 13064 - '@rollup/rollup-linux-s390x-gnu': 4.17.2 13065 - '@rollup/rollup-linux-x64-gnu': 4.17.2 13066 - '@rollup/rollup-linux-x64-musl': 4.17.2 13067 - '@rollup/rollup-win32-arm64-msvc': 4.17.2 13068 - '@rollup/rollup-win32-ia32-msvc': 4.17.2 13069 - '@rollup/rollup-win32-x64-msvc': 4.17.2 13130 + '@rollup/rollup-android-arm-eabi': 4.18.0 13131 + '@rollup/rollup-android-arm64': 4.18.0 13132 + '@rollup/rollup-darwin-arm64': 4.18.0 13133 + '@rollup/rollup-darwin-x64': 4.18.0 13134 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 13135 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 13136 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 13137 + '@rollup/rollup-linux-arm64-musl': 4.18.0 13138 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 13139 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 13140 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 13141 + '@rollup/rollup-linux-x64-gnu': 4.18.0 13142 + '@rollup/rollup-linux-x64-musl': 4.18.0 13143 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 13144 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 13145 + '@rollup/rollup-win32-x64-msvc': 4.18.0 13070 13146 fsevents: 2.3.3 13071 13147 13072 13148 run-async@3.0.0: {} ··· 13098 13174 13099 13175 safer-buffer@2.1.2: {} 13100 13176 13101 - sass-loader@14.1.1(sass@1.71.1)(webpack@5.90.3): 13177 + sass-loader@14.1.1(sass@1.71.1)(webpack@5.90.3(esbuild@0.20.1)): 13102 13178 dependencies: 13103 13179 neo-async: 2.6.2 13180 + optionalDependencies: 13104 13181 sass: 1.71.1 13105 13182 webpack: 5.90.3(esbuild@0.20.1) 13106 13183 ··· 13130 13207 ajv-formats: 2.1.1(ajv@8.13.0) 13131 13208 ajv-keywords: 5.1.0(ajv@8.13.0) 13132 13209 13133 - search-insights@2.13.0: {} 13210 + search-insights@2.14.0: {} 13134 13211 13135 13212 select-hose@2.0.0: {} 13136 13213 ··· 13308 13385 13309 13386 source-map-js@1.2.0: {} 13310 13387 13311 - source-map-loader@5.0.0(webpack@5.90.3): 13388 + source-map-loader@5.0.0(webpack@5.90.3(esbuild@0.20.1)): 13312 13389 dependencies: 13313 13390 iconv-lite: 0.6.3 13314 13391 source-map-js: 1.2.0 ··· 13371 13448 13372 13449 ssri@10.0.6: 13373 13450 dependencies: 13374 - minipass: 7.1.1 13451 + minipass: 7.1.2 13375 13452 13376 13453 stackback@0.0.2: {} 13377 13454 ··· 13467 13544 dependencies: 13468 13545 '@jridgewell/gen-mapping': 0.3.5 13469 13546 commander: 4.1.1 13470 - glob: 10.3.15 13547 + glob: 10.4.1 13471 13548 lines-and-columns: 1.2.4 13472 13549 mz: 2.7.0 13473 13550 pirates: 4.0.6 ··· 13491 13568 13492 13569 tabbable@6.2.0: {} 13493 13570 13494 - tailwindcss@3.4.3: 13571 + tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)): 13495 13572 dependencies: 13496 13573 '@alloc/quick-lru': 5.2.0 13497 13574 arg: 5.0.2 ··· 13510 13587 postcss: 8.4.38 13511 13588 postcss-import: 15.1.0(postcss@8.4.38) 13512 13589 postcss-js: 4.0.1(postcss@8.4.38) 13513 - postcss-load-config: 4.0.2(postcss@8.4.38) 13590 + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.12)(typescript@5.4.5)) 13514 13591 postcss-nested: 6.0.1(postcss@8.4.38) 13515 13592 postcss-selector-parser: 6.0.16 13516 13593 resolve: 1.22.8 ··· 13526 13603 tar-stream: 3.1.7 13527 13604 optionalDependencies: 13528 13605 bare-fs: 2.3.0 13529 - bare-path: 2.1.2 13606 + bare-path: 2.1.3 13530 13607 13531 13608 tar-stream@3.1.7: 13532 13609 dependencies: ··· 13545 13622 13546 13623 term-size@2.2.1: {} 13547 13624 13548 - terser-webpack-plugin@5.3.10(esbuild@0.20.1)(webpack@5.90.3): 13625 + terser-webpack-plugin@5.3.10(esbuild@0.20.1)(webpack@5.90.3(esbuild@0.20.1)): 13549 13626 dependencies: 13550 13627 '@jridgewell/trace-mapping': 0.3.25 13551 - esbuild: 0.20.1 13552 13628 jest-worker: 27.5.1 13553 13629 schema-utils: 3.3.0 13554 13630 serialize-javascript: 6.0.2 13555 13631 terser: 5.29.1 13556 13632 webpack: 5.90.3(esbuild@0.20.1) 13633 + optionalDependencies: 13634 + esbuild: 0.20.1 13557 13635 13558 13636 terser@5.29.1: 13559 13637 dependencies: ··· 13712 13790 13713 13791 typescript-eslint@7.10.0(eslint@9.3.0)(typescript@5.4.5): 13714 13792 dependencies: 13715 - '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@9.3.0)(typescript@5.4.5) 13793 + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@9.3.0)(typescript@5.4.5))(eslint@9.3.0)(typescript@5.4.5) 13716 13794 '@typescript-eslint/parser': 7.10.0(eslint@9.3.0)(typescript@5.4.5) 13717 13795 '@typescript-eslint/utils': 7.10.0(eslint@9.3.0)(typescript@5.4.5) 13718 13796 eslint: 9.3.0 13797 + optionalDependencies: 13719 13798 typescript: 5.4.5 13720 13799 transitivePeerDependencies: 13721 13800 - supports-color ··· 13780 13859 13781 13860 urlpattern-polyfill@10.0.0: {} 13782 13861 13783 - use-callback-ref@1.3.2(@types/react@18.3.2)(react@18.3.1): 13862 + use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): 13784 13863 dependencies: 13785 - '@types/react': 18.3.2 13786 13864 react: 18.3.1 13787 13865 tslib: 2.6.2 13866 + optionalDependencies: 13867 + '@types/react': 18.3.3 13788 13868 13789 - use-sidecar@1.1.2(@types/react@18.3.2)(react@18.3.1): 13869 + use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): 13790 13870 dependencies: 13791 - '@types/react': 18.3.2 13792 13871 detect-node-es: 1.1.0 13793 13872 react: 18.3.1 13794 13873 tslib: 2.6.2 13874 + optionalDependencies: 13875 + '@types/react': 18.3.3 13795 13876 13796 13877 util-deprecate@1.0.2: {} 13797 13878 ··· 13810 13891 13811 13892 vary@1.1.2: {} 13812 13893 13813 - vite-node@1.6.0(@types/node@20.12.12): 13894 + vite-node@1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0): 13814 13895 dependencies: 13815 13896 cac: 6.7.14 13816 13897 debug: 4.3.4 13817 13898 pathe: 1.1.2 13818 13899 picocolors: 1.0.1 13819 - vite: 5.2.11(@types/node@20.12.12) 13900 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 13820 13901 transitivePeerDependencies: 13821 13902 - '@types/node' 13822 13903 - less ··· 13829 13910 13830 13911 vite@5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1): 13831 13912 dependencies: 13832 - '@types/node': 20.12.12 13833 13913 esbuild: 0.19.12 13834 - less: 4.2.0 13835 13914 postcss: 8.4.35 13836 - rollup: 4.17.2 13915 + rollup: 4.18.0 13916 + optionalDependencies: 13917 + '@types/node': 20.12.12 13918 + fsevents: 2.3.3 13919 + less: 4.2.0 13837 13920 sass: 1.71.1 13838 13921 terser: 5.29.1 13839 - optionalDependencies: 13840 - fsevents: 2.3.3 13841 13922 13842 - vite@5.2.11(@types/node@20.12.12): 13923 + vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0): 13843 13924 dependencies: 13844 - '@types/node': 20.12.12 13845 13925 esbuild: 0.20.2 13846 13926 postcss: 8.4.38 13847 - rollup: 4.17.2 13927 + rollup: 4.18.0 13848 13928 optionalDependencies: 13929 + '@types/node': 20.12.12 13849 13930 fsevents: 2.3.3 13931 + less: 4.2.0 13932 + sass: 1.71.1 13933 + terser: 5.31.0 13850 13934 13851 - vitepress@1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(search-insights@2.13.0)(typescript@5.4.5): 13935 + vitepress@1.2.2(@algolia/client-search@4.23.3)(@types/node@20.12.12)(@types/react@18.3.3)(axios@1.7.2)(less@4.2.0)(postcss@8.4.38)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.71.1)(search-insights@2.14.0)(terser@5.31.0)(typescript@5.4.5): 13852 13936 dependencies: 13853 13937 '@docsearch/css': 3.6.0 13854 - '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) 13938 + '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0) 13855 13939 '@shikijs/core': 1.6.0 13856 13940 '@shikijs/transformers': 1.6.0 13857 13941 '@types/markdown-it': 14.1.1 13858 - '@vitejs/plugin-vue': 5.0.4(vite@5.2.11)(vue@3.4.27) 13859 - '@vue/devtools-api': 7.2.1(vue@3.4.27) 13942 + '@vitejs/plugin-vue': 5.0.4(vite@5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) 13943 + '@vue/devtools-api': 7.2.1(vue@3.4.27(typescript@5.4.5)) 13860 13944 '@vue/shared': 3.4.27 13861 - '@vueuse/core': 10.9.0(vue@3.4.27) 13862 - '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.27) 13945 + '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) 13946 + '@vueuse/integrations': 10.9.0(axios@1.7.2)(focus-trap@7.5.4)(vue@3.4.27(typescript@5.4.5)) 13863 13947 focus-trap: 7.5.4 13864 13948 mark.js: 8.11.1 13865 13949 minisearch: 6.3.0 13866 13950 shiki: 1.6.0 13867 - vite: 5.2.11(@types/node@20.12.12) 13951 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 13868 13952 vue: 3.4.27(typescript@5.4.5) 13953 + optionalDependencies: 13954 + postcss: 8.4.38 13869 13955 transitivePeerDependencies: 13870 13956 - '@algolia/client-search' 13871 13957 - '@types/node' ··· 13893 13979 - typescript 13894 13980 - universal-cookie 13895 13981 13896 - vitest@1.6.0(@types/node@20.12.12): 13982 + vitest@1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0): 13897 13983 dependencies: 13898 - '@types/node': 20.12.12 13899 13984 '@vitest/expect': 1.6.0 13900 13985 '@vitest/runner': 1.6.0 13901 13986 '@vitest/snapshot': 1.6.0 ··· 13913 13998 strip-literal: 2.1.0 13914 13999 tinybench: 2.8.0 13915 14000 tinypool: 0.8.4 13916 - vite: 5.2.11(@types/node@20.12.12) 13917 - vite-node: 1.6.0(@types/node@20.12.12) 14001 + vite: 5.2.11(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 14002 + vite-node: 1.6.0(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.31.0) 13918 14003 why-is-node-running: 2.2.2 14004 + optionalDependencies: 14005 + '@types/node': 20.12.12 13919 14006 transitivePeerDependencies: 13920 14007 - less 13921 14008 - lightningcss ··· 13925 14012 - supports-color 13926 14013 - terser 13927 14014 13928 - vue-demi@0.14.7(vue@3.4.27): 14015 + vue-demi@0.14.7(vue@3.4.27(typescript@5.4.5)): 13929 14016 dependencies: 13930 14017 vue: 3.4.27(typescript@5.4.5) 13931 14018 ··· 13934 14021 '@vue/compiler-dom': 3.4.27 13935 14022 '@vue/compiler-sfc': 3.4.27 13936 14023 '@vue/runtime-dom': 3.4.27 13937 - '@vue/server-renderer': 3.4.27(vue@3.4.27) 14024 + '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.4.5)) 13938 14025 '@vue/shared': 3.4.27 14026 + optionalDependencies: 13939 14027 typescript: 5.4.5 13940 14028 13941 14029 watchpack@2.4.0: ··· 13955 14043 13956 14044 webidl-conversions@3.0.1: {} 13957 14045 13958 - webpack-dev-middleware@5.3.4(webpack@5.90.3): 14046 + webpack-dev-middleware@5.3.4(webpack@5.90.3(esbuild@0.20.1)): 13959 14047 dependencies: 13960 14048 colorette: 2.0.20 13961 14049 memfs: 3.5.3 ··· 13964 14052 schema-utils: 4.2.0 13965 14053 webpack: 5.90.3(esbuild@0.20.1) 13966 14054 13967 - webpack-dev-middleware@6.1.2(webpack@5.90.3): 14055 + webpack-dev-middleware@6.1.2(webpack@5.90.3(esbuild@0.20.1)): 13968 14056 dependencies: 13969 14057 colorette: 2.0.20 13970 14058 memfs: 3.5.3 13971 14059 mime-types: 2.1.35 13972 14060 range-parser: 1.2.1 13973 14061 schema-utils: 4.2.0 14062 + optionalDependencies: 13974 14063 webpack: 5.90.3(esbuild@0.20.1) 13975 14064 13976 - webpack-dev-server@4.15.1(webpack@5.90.3): 14065 + webpack-dev-server@4.15.1(webpack@5.90.3(esbuild@0.20.1)): 13977 14066 dependencies: 13978 14067 '@types/bonjour': 3.5.13 13979 14068 '@types/connect-history-api-fallback': 1.5.4 ··· 14003 14092 serve-index: 1.9.1 14004 14093 sockjs: 0.3.24 14005 14094 spdy: 4.0.2 14095 + webpack-dev-middleware: 5.3.4(webpack@5.90.3(esbuild@0.20.1)) 14096 + ws: 8.17.0 14097 + optionalDependencies: 14006 14098 webpack: 5.90.3(esbuild@0.20.1) 14007 - webpack-dev-middleware: 5.3.4(webpack@5.90.3) 14008 - ws: 8.17.0 14009 14099 transitivePeerDependencies: 14010 14100 - bufferutil 14011 14101 - debug ··· 14020 14110 14021 14111 webpack-sources@3.2.3: {} 14022 14112 14023 - webpack-subresource-integrity@5.1.0(webpack@5.90.3): 14113 + webpack-subresource-integrity@5.1.0(webpack@5.90.3(esbuild@0.20.1)): 14024 14114 dependencies: 14025 14115 typed-assert: 1.0.9 14026 14116 webpack: 5.90.3(esbuild@0.20.1) ··· 14048 14138 neo-async: 2.6.2 14049 14139 schema-utils: 3.3.0 14050 14140 tapable: 2.2.1 14051 - terser-webpack-plugin: 5.3.10(esbuild@0.20.1)(webpack@5.90.3) 14141 + terser-webpack-plugin: 5.3.10(esbuild@0.20.1)(webpack@5.90.3(esbuild@0.20.1)) 14052 14142 watchpack: 2.4.0 14053 14143 webpack-sources: 3.2.3 14054 14144 transitivePeerDependencies: ··· 14152 14242 yallist@3.1.1: {} 14153 14243 14154 14244 yallist@4.0.0: {} 14155 - 14156 - yaml@2.3.4: {} 14157 14245 14158 14246 yaml@2.4.2: {} 14159 14247