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

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #901 from hey-api/chore/tanstack-query-wip-7

docs: add TanStack React Query example

authored by

Lubos and committed by
GitHub
c3d08157 2ee2463a

+6456 -308
+5
.changeset/hungry-apples-grab.md
··· 1 + --- 2 + '@example/openapi-ts-tanstack-react-query': patch 3 + --- 4 + 5 + docs: add TanStack React Query example
+5
.changeset/selfish-flowers-approve.md
··· 1 + --- 2 + '@example/openapi-ts-tanstack-vue-query': patch 3 + --- 4 + 5 + docs: add TanStack Vue Query example
+6
.changeset/silent-readers-press.md
··· 1 + --- 2 + '@hey-api/client-axios': patch 3 + '@hey-api/client-fetch': patch 4 + --- 5 + 6 + fix: export more types to resolve TypeScript errors
+9 -8
eslint.config.js
··· 1 1 import eslint from '@eslint/js'; 2 - import eslintConfigPrettier from 'eslint-config-prettier'; 3 - import eslintPluginSimpleImportSort from 'eslint-plugin-simple-import-sort'; 4 - import eslintPluginSortKeysFix from 'eslint-plugin-sort-keys-fix'; 5 - import eslintPluginTypeScriptSortKeys from 'eslint-plugin-typescript-sort-keys'; 2 + import configPrettier from 'eslint-config-prettier'; 3 + import pluginSimpleImportSort from 'eslint-plugin-simple-import-sort'; 4 + import pluginSortKeysFix from 'eslint-plugin-sort-keys-fix'; 5 + import pluginTypeScriptSortKeys from 'eslint-plugin-typescript-sort-keys'; 6 + // import pluginVue from 'eslint-plugin-vue' 6 7 import globals from 'globals'; 7 8 import tseslint from 'typescript-eslint'; 8 9 ··· 17 18 }, 18 19 }, 19 20 plugins: { 20 - 'simple-import-sort': eslintPluginSimpleImportSort, 21 - 'sort-keys-fix': eslintPluginSortKeysFix, 22 - 'typescript-sort-keys': eslintPluginTypeScriptSortKeys, 21 + 'simple-import-sort': pluginSimpleImportSort, 22 + 'sort-keys-fix': pluginSortKeysFix, 23 + 'typescript-sort-keys': pluginTypeScriptSortKeys, 23 24 }, 24 25 rules: { 25 26 '@typescript-eslint/ban-ts-comment': 'off', ··· 42 43 'typescript-sort-keys/string-enum': 'warn', 43 44 }, 44 45 }, 45 - eslintConfigPrettier, 46 + configPrettier, 46 47 { 47 48 ignores: [ 48 49 '**/dist/',
-15
examples/openapi-ts-axios/src/App.css
··· 1 1 @tailwind base; 2 2 @tailwind components; 3 3 @tailwind utilities; 4 - 5 - .logo { 6 - height: 4em; 7 - will-change: filter; 8 - transition: filter 300ms; 9 - } 10 - 11 - @keyframes logo-spin { 12 - from { 13 - transform: rotate(0deg); 14 - } 15 - to { 16 - transform: rotate(360deg); 17 - } 18 - }
+7 -13
examples/openapi-ts-axios/src/App.tsx
··· 18 18 import { useState } from 'react'; 19 19 20 20 import { $Pet } from './client/schemas.gen'; 21 - import { addPet, client, getPetById, updatePet } from './client/services.gen'; 21 + import { addPet, getPetById, updatePet } from './client/services.gen'; 22 22 import type { Pet } from './client/types.gen'; 23 - 24 - // configure internal service client 25 - client.setConfig({ 26 - // set default base url for requests 27 - baseURL: 'https://petstore3.swagger.io/api/v3', 28 - // set default headers for requests 29 - headers: { 30 - Authorization: 'Bearer <token_from_service_client>', 31 - }, 32 - }); 33 23 34 24 const localClient = createClient({ 35 25 // set default base url for requests made by this client ··· 147 137 <Container size="1"> 148 138 <Section size="1" /> 149 139 <Flex align="center"> 150 - <a href="https://heyapi.vercel.app/" target="_blank"> 140 + <a 141 + className="shrink-0" 142 + href="https://heyapi.vercel.app/" 143 + target="_blank" 144 + > 151 145 <img 152 146 src="https://heyapi.vercel.app/logo.png" 153 - className="logo vanilla" 147 + className="h-16 w-16 transition duration-300 will-change-auto" 154 148 alt="Hey API logo" 155 149 /> 156 150 </a>
+11
examples/openapi-ts-axios/src/main.tsx
··· 5 5 import ReactDOM from 'react-dom/client'; 6 6 7 7 import App from './App.tsx'; 8 + import { client } from './client/services.gen'; 9 + 10 + // configure internal service client 11 + client.setConfig({ 12 + // set default base url for requests 13 + baseURL: 'https://petstore3.swagger.io/api/v3', 14 + // set default headers for requests 15 + headers: { 16 + Authorization: 'Bearer <token_from_service_client>', 17 + }, 18 + }); 8 19 9 20 ReactDOM.createRoot(document.getElementById('root')!).render( 10 21 <React.StrictMode>
-15
examples/openapi-ts-fetch/src/App.css
··· 1 1 @tailwind base; 2 2 @tailwind components; 3 3 @tailwind utilities; 4 - 5 - .logo { 6 - height: 4em; 7 - will-change: filter; 8 - transition: filter 300ms; 9 - } 10 - 11 - @keyframes logo-spin { 12 - from { 13 - transform: rotate(0deg); 14 - } 15 - to { 16 - transform: rotate(360deg); 17 - } 18 - }
+7 -13
examples/openapi-ts-fetch/src/App.tsx
··· 18 18 import { useState } from 'react'; 19 19 20 20 import { $Pet } from './client/schemas.gen'; 21 - import { addPet, client, getPetById, updatePet } from './client/services.gen'; 21 + import { addPet, getPetById, updatePet } from './client/services.gen'; 22 22 import type { Pet } from './client/types.gen'; 23 - 24 - // configure internal service client 25 - client.setConfig({ 26 - // set default base url for requests 27 - baseUrl: 'https://petstore3.swagger.io/api/v3', 28 - // set default headers for requests 29 - headers: { 30 - Authorization: 'Bearer <token_from_service_client>', 31 - }, 32 - }); 33 23 34 24 const localClient = createClient({ 35 25 // set default base url for requests made by this client ··· 147 137 <Container size="1"> 148 138 <Section size="1" /> 149 139 <Flex align="center"> 150 - <a href="https://heyapi.vercel.app/" target="_blank"> 140 + <a 141 + className="shrink-0" 142 + href="https://heyapi.vercel.app/" 143 + target="_blank" 144 + > 151 145 <img 152 146 src="https://heyapi.vercel.app/logo.png" 153 - className="logo vanilla" 147 + className="h-16 w-16 transition duration-300 will-change-auto" 154 148 alt="Hey API logo" 155 149 /> 156 150 </a>
+11
examples/openapi-ts-fetch/src/main.tsx
··· 5 5 import ReactDOM from 'react-dom/client'; 6 6 7 7 import App from './App.tsx'; 8 + import { client } from './client/services.gen'; 9 + 10 + // configure internal service client 11 + client.setConfig({ 12 + // set default base url for requests 13 + baseUrl: 'https://petstore3.swagger.io/api/v3', 14 + // set default headers for requests 15 + headers: { 16 + Authorization: 'Bearer <token_from_service_client>', 17 + }, 18 + }); 8 19 9 20 ReactDOM.createRoot(document.getElementById('root')!).render( 10 21 <React.StrictMode>
+24
examples/openapi-ts-tanstack-react-query/.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+13
examples/openapi-ts-tanstack-react-query/index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <!-- <link rel="icon" type="image/svg+xml" href="/vite.svg" /> --> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Hey API + TanStack React Query Demo</title> 8 + </head> 9 + <body> 10 + <div id="root"></div> 11 + <script type="module" src="/src/main.tsx"></script> 12 + </body> 13 + </html>
+18
examples/openapi-ts-tanstack-react-query/openapi-ts.config.ts
··· 1 + import { defineConfig } from '@hey-api/openapi-ts'; 2 + 3 + export default defineConfig({ 4 + client: '@hey-api/client-fetch', 5 + input: 6 + 'https://raw.githubusercontent.com/swagger-api/swagger-petstore/master/src/main/resources/openapi.yaml', 7 + // 'https://raw.githubusercontent.com/Redocly/museum-openapi-example/main/openapi.yaml', 8 + // '../../packages/openapi-ts/test/spec/v3.json', 9 + output: { 10 + format: 'prettier', 11 + lint: 'eslint', 12 + path: './src/client', 13 + }, 14 + plugins: ['@tanstack/react-query'], 15 + types: { 16 + enums: 'javascript', 17 + }, 18 + });
+41
examples/openapi-ts-tanstack-react-query/package.json
··· 1 + { 2 + "name": "@example/openapi-ts-tanstack-react-query", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "build": "tsc && vite build", 8 + "dev": "vite", 9 + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 + "openapi-ts": "openapi-ts", 11 + "preview": "vite preview", 12 + "typecheck": "tsc --noEmit" 13 + }, 14 + "dependencies": { 15 + "@hey-api/client-fetch": "workspace:*", 16 + "@radix-ui/react-form": "0.1.0", 17 + "@radix-ui/react-icons": "1.3.0", 18 + "@radix-ui/themes": "3.1.1", 19 + "@tanstack/react-query": "5.51.23", 20 + "@tanstack/react-query-devtools": "5.51.23", 21 + "react": "18.3.1", 22 + "react-dom": "18.3.1" 23 + }, 24 + "devDependencies": { 25 + "@hey-api/openapi-ts": "workspace:*", 26 + "@types/react": "18.3.3", 27 + "@types/react-dom": "18.3.0", 28 + "@typescript-eslint/eslint-plugin": "7.15.0", 29 + "@typescript-eslint/parser": "7.15.0", 30 + "@vitejs/plugin-react": "4.3.1", 31 + "autoprefixer": "10.4.19", 32 + "eslint": "9.6.0", 33 + "eslint-plugin-react-hooks": "4.6.2", 34 + "eslint-plugin-react-refresh": "0.4.7", 35 + "postcss": "8.4.39", 36 + "prettier": "3.3.2", 37 + "tailwindcss": "3.4.4", 38 + "typescript": "5.5.3", 39 + "vite": "5.3.3" 40 + } 41 + }
+6
examples/openapi-ts-tanstack-react-query/postcss.config.js
··· 1 + export default { 2 + plugins: { 3 + autoprefixer: {}, 4 + tailwindcss: {}, 5 + }, 6 + };
+3
examples/openapi-ts-tanstack-react-query/src/App.css
··· 1 + @tailwind base; 2 + @tailwind components; 3 + @tailwind utilities;
+267
examples/openapi-ts-tanstack-react-query/src/App.tsx
··· 1 + import './App.css'; 2 + 3 + import { createClient } from '@hey-api/client-fetch'; 4 + import * as Form from '@radix-ui/react-form'; 5 + import { DownloadIcon, PlusIcon, ReloadIcon } from '@radix-ui/react-icons'; 6 + import { 7 + Avatar, 8 + Box, 9 + Button, 10 + Card, 11 + Container, 12 + Flex, 13 + Heading, 14 + Section, 15 + Text, 16 + TextField, 17 + } from '@radix-ui/themes'; 18 + import { useMutation, useQuery } from '@tanstack/react-query'; 19 + import { useEffect, useState } from 'react'; 20 + 21 + import { 22 + addPetMutation, 23 + getPetByIdOptions, 24 + updatePetMutation, 25 + } from './client/@tanstack/react-query.gen'; 26 + import { $Pet } from './client/schemas.gen'; 27 + import type { Pet } from './client/types.gen'; 28 + 29 + const localClient = createClient({ 30 + // set default base url for requests made by this client 31 + baseUrl: 'https://petstore3.swagger.io/api/v3', 32 + /** 33 + * Set default headers only for requests made by this client. This is to 34 + * demonstrate local clients and their configuration taking precedence over 35 + * internal service client. 36 + */ 37 + headers: { 38 + Authorization: 'Bearer <token_from_local_client>', 39 + }, 40 + }); 41 + 42 + localClient.interceptors.request.use((request, options) => { 43 + // Middleware is great for adding authorization tokens to requests made to 44 + // protected paths. Headers are set randomly here to allow surfacing the 45 + // default headers, too. 46 + if ( 47 + options.url === '/pet/{petId}' && 48 + options.method === 'GET' && 49 + Math.random() < 0.5 50 + ) { 51 + request.headers.set('Authorization', 'Bearer <token_from_interceptor>'); 52 + } 53 + return request; 54 + }); 55 + 56 + function App() { 57 + const [pet, setPet] = useState<Pet>(); 58 + const [petId, setPetId] = useState<number>(); 59 + const [isRequiredNameError, setIsRequiredNameError] = useState(false); 60 + 61 + const addPet = useMutation({ 62 + ...addPetMutation, 63 + onError: (error) => { 64 + console.log(error); 65 + setIsRequiredNameError(false); 66 + }, 67 + onSuccess: (data) => { 68 + setPet(data); 69 + setIsRequiredNameError(false); 70 + }, 71 + }); 72 + 73 + const updatePet = useMutation({ 74 + ...updatePetMutation, 75 + onError: (error) => { 76 + console.log(error); 77 + }, 78 + onSuccess: (data) => { 79 + setPet(data); 80 + }, 81 + }); 82 + 83 + const { data, error } = useQuery({ 84 + ...getPetByIdOptions({ 85 + client: localClient, 86 + path: { 87 + petId: petId!, 88 + }, 89 + }), 90 + enabled: Boolean(petId), 91 + }); 92 + 93 + const onAddPet = async (formData: FormData) => { 94 + // simple form field validation to demonstrate using schemas 95 + if ($Pet.required.includes('name') && !formData.get('name')) { 96 + setIsRequiredNameError(true); 97 + return; 98 + } 99 + 100 + addPet.mutate({ 101 + body: { 102 + category: { 103 + id: 0, 104 + name: formData.get('category') as string, 105 + }, 106 + id: 0, 107 + name: formData.get('name') as string, 108 + photoUrls: ['string'], 109 + status: 'available', 110 + tags: [ 111 + { 112 + id: 0, 113 + name: 'string', 114 + }, 115 + ], 116 + }, 117 + }); 118 + }; 119 + 120 + const onGetPetById = async () => { 121 + // random id 1-10 122 + setPetId(Math.floor(Math.random() * (10 - 1 + 1) + 1)); 123 + }; 124 + 125 + const onUpdatePet = async () => { 126 + updatePet.mutate({ 127 + body: { 128 + category: { 129 + id: 0, 130 + name: 'Cats', 131 + }, 132 + id: 2, 133 + name: 'Updated Kitty', 134 + photoUrls: ['string'], 135 + status: 'available', 136 + tags: [ 137 + { 138 + id: 0, 139 + name: 'string', 140 + }, 141 + ], 142 + }, 143 + // setting headers per request 144 + headers: { 145 + Authorization: 'Bearer <token_from_method>', 146 + }, 147 + }); 148 + }; 149 + 150 + useEffect(() => { 151 + if (error) { 152 + console.log(error); 153 + return; 154 + } 155 + setPet(data!); 156 + }, [data, error]); 157 + 158 + return ( 159 + <Box 160 + style={{ background: 'var(--gray-a2)', borderRadius: 'var(--radius-3)' }} 161 + > 162 + <Container size="1"> 163 + <Section size="1" /> 164 + <Flex align="center"> 165 + <a 166 + className="shrink-0" 167 + href="https://heyapi.vercel.app/" 168 + target="_blank" 169 + > 170 + <img 171 + src="https://heyapi.vercel.app/logo.png" 172 + className="h-16 w-16 transition duration-300 will-change-auto" 173 + alt="Hey API logo" 174 + /> 175 + </a> 176 + <Heading>@hey-api/openapi-ts 🤝 TanStack React Query</Heading> 177 + </Flex> 178 + <Section size="1" /> 179 + <Flex direction="column" gapY="2"> 180 + <Box maxWidth="240px"> 181 + <Card> 182 + <Flex gap="3" align="center"> 183 + <Avatar 184 + size="3" 185 + src={pet?.photoUrls[0]} 186 + radius="full" 187 + fallback={pet?.name.slice(0, 1) ?? 'N'} 188 + /> 189 + <Box> 190 + <Text as="div" size="2" weight="bold"> 191 + Name: {pet?.name ?? 'N/A'} 192 + </Text> 193 + <Text as="div" size="2" color="gray"> 194 + Category: {pet?.category?.name ?? 'N/A'} 195 + </Text> 196 + </Box> 197 + </Flex> 198 + </Card> 199 + </Box> 200 + <Button onClick={onGetPetById}> 201 + <DownloadIcon /> Get Random Pet 202 + </Button> 203 + </Flex> 204 + <Section size="1" /> 205 + <Flex direction="column" gapY="2"> 206 + <Form.Root 207 + className="w-[260px]" 208 + onSubmit={(event) => { 209 + event.preventDefault(); 210 + onAddPet(new FormData(event.currentTarget)); 211 + }} 212 + > 213 + <Form.Field className="grid mb-[10px]" name="email"> 214 + <div className="flex items-baseline justify-between"> 215 + <Form.Label className="text-[15px] font-medium leading-[35px] text-white"> 216 + Name 217 + </Form.Label> 218 + {isRequiredNameError && ( 219 + <Form.Message className="text-[13px] text-white opacity-[0.8]"> 220 + Please enter a name 221 + </Form.Message> 222 + )} 223 + </div> 224 + <Form.Control asChild> 225 + <TextField.Root placeholder="Kitty" name="name" type="text" /> 226 + </Form.Control> 227 + </Form.Field> 228 + <Form.Field className="grid mb-[10px]" name="question"> 229 + <div className="flex items-baseline justify-between"> 230 + <Form.Label className="text-[15px] font-medium leading-[35px] text-white"> 231 + Category 232 + </Form.Label> 233 + <Form.Message 234 + className="text-[13px] text-white opacity-[0.8]" 235 + match="valueMissing" 236 + > 237 + Please enter a category 238 + </Form.Message> 239 + </div> 240 + <Form.Control asChild> 241 + <TextField.Root 242 + placeholder="Cats" 243 + name="category" 244 + type="text" 245 + required 246 + /> 247 + </Form.Control> 248 + </Form.Field> 249 + <Flex gapX="2"> 250 + <Form.Submit asChild> 251 + <Button type="submit"> 252 + <PlusIcon /> Add Pet 253 + </Button> 254 + </Form.Submit> 255 + <Button onClick={onUpdatePet} type="button"> 256 + <ReloadIcon /> Update Pet 257 + </Button> 258 + </Flex> 259 + </Form.Root> 260 + </Flex> 261 + <Section size="1" /> 262 + </Container> 263 + </Box> 264 + ); 265 + } 266 + 267 + export default App;
+503
examples/openapi-ts-tanstack-react-query/src/client/@tanstack/react-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options } from '@hey-api/client-fetch'; 4 + import { 5 + type DefaultError, 6 + queryOptions, 7 + type UseMutationOptions, 8 + } from '@tanstack/react-query'; 9 + 10 + import { 11 + addPet, 12 + createUser, 13 + createUsersWithListInput, 14 + deleteOrder, 15 + deletePet, 16 + deleteUser, 17 + findPetsByStatus, 18 + findPetsByTags, 19 + getInventory, 20 + getOrderById, 21 + getPetById, 22 + getUserByName, 23 + loginUser, 24 + logoutUser, 25 + placeOrder, 26 + updatePet, 27 + updatePetWithForm, 28 + updateUser, 29 + uploadFile, 30 + } from '../services.gen'; 31 + import type { 32 + AddPetData, 33 + AddPetError, 34 + AddPetResponse, 35 + CreateUserData, 36 + CreateUserError, 37 + CreateUserResponse, 38 + CreateUsersWithListInputData, 39 + CreateUsersWithListInputError, 40 + CreateUsersWithListInputResponse, 41 + DeleteOrderData, 42 + DeletePetData, 43 + DeleteUserData, 44 + FindPetsByStatusData, 45 + FindPetsByTagsData, 46 + GetOrderByIdData, 47 + GetPetByIdData, 48 + GetUserByNameData, 49 + LoginUserData, 50 + PlaceOrderData, 51 + PlaceOrderError, 52 + PlaceOrderResponse, 53 + UpdatePetData, 54 + UpdatePetError, 55 + UpdatePetResponse, 56 + UpdatePetWithFormData, 57 + UpdateUserData, 58 + UpdateUserError, 59 + UpdateUserResponse, 60 + UploadFileData, 61 + UploadFileError, 62 + UploadFileResponse, 63 + } from '../types.gen'; 64 + 65 + type QueryKey<TOptions extends Options> = [ 66 + { 67 + infinite?: boolean; 68 + params: Pick<TOptions, 'body' | 'headers' | 'path' | 'query'>; 69 + scope: string; 70 + }, 71 + ]; 72 + 73 + const createQueryKeyParams = <TOptions extends Options>( 74 + options?: TOptions, 75 + ): QueryKey<TOptions>[0]['params'] => { 76 + const params: QueryKey<TOptions>[0]['params'] = 77 + {} as QueryKey<TOptions>[0]['params']; 78 + if (options?.body) { 79 + params.body = options.body; 80 + } 81 + if (options?.headers) { 82 + params.headers = options.headers; 83 + } 84 + if (options?.path) { 85 + params.path = options.path; 86 + } 87 + if (options?.query) { 88 + params.query = options.query; 89 + } 90 + return params; 91 + }; 92 + 93 + export const addPetOptions = (options: Options<AddPetData>) => 94 + queryOptions({ 95 + queryFn: async ({ queryKey }) => { 96 + const { data } = await addPet({ 97 + ...options, 98 + ...queryKey[0].params, 99 + throwOnError: true, 100 + }); 101 + return data; 102 + }, 103 + queryKey: [ 104 + { 105 + params: createQueryKeyParams(options), 106 + scope: 'addPet', 107 + }, 108 + ], 109 + }); 110 + 111 + export const addPetMutation: UseMutationOptions< 112 + AddPetResponse, 113 + AddPetError, 114 + Options<AddPetData> 115 + > = { 116 + mutationFn: async (options) => { 117 + const { data } = await addPet({ 118 + ...options, 119 + throwOnError: true, 120 + }); 121 + return data; 122 + }, 123 + }; 124 + 125 + export const updatePetMutation: UseMutationOptions< 126 + UpdatePetResponse, 127 + UpdatePetError, 128 + Options<UpdatePetData> 129 + > = { 130 + mutationFn: async (options) => { 131 + const { data } = await updatePet({ 132 + ...options, 133 + throwOnError: true, 134 + }); 135 + return data; 136 + }, 137 + }; 138 + 139 + export const findPetsByStatusOptions = ( 140 + options?: Options<FindPetsByStatusData>, 141 + ) => 142 + queryOptions({ 143 + queryFn: async ({ queryKey }) => { 144 + const { data } = await findPetsByStatus({ 145 + ...options, 146 + ...queryKey[0].params, 147 + throwOnError: true, 148 + }); 149 + return data; 150 + }, 151 + queryKey: [ 152 + { 153 + params: createQueryKeyParams(options), 154 + scope: 'findPetsByStatus', 155 + }, 156 + ], 157 + }); 158 + 159 + export const findPetsByTagsOptions = (options?: Options<FindPetsByTagsData>) => 160 + queryOptions({ 161 + queryFn: async ({ queryKey }) => { 162 + const { data } = await findPetsByTags({ 163 + ...options, 164 + ...queryKey[0].params, 165 + throwOnError: true, 166 + }); 167 + return data; 168 + }, 169 + queryKey: [ 170 + { 171 + params: createQueryKeyParams(options), 172 + scope: 'findPetsByTags', 173 + }, 174 + ], 175 + }); 176 + 177 + export const getPetByIdOptions = (options: Options<GetPetByIdData>) => 178 + queryOptions({ 179 + queryFn: async ({ queryKey }) => { 180 + const { data } = await getPetById({ 181 + ...options, 182 + ...queryKey[0].params, 183 + throwOnError: true, 184 + }); 185 + return data; 186 + }, 187 + queryKey: [ 188 + { 189 + params: createQueryKeyParams(options), 190 + scope: 'getPetById', 191 + }, 192 + ], 193 + }); 194 + 195 + export const updatePetWithFormOptions = ( 196 + options: Options<UpdatePetWithFormData>, 197 + ) => 198 + queryOptions({ 199 + queryFn: async ({ queryKey }) => { 200 + const { data } = await updatePetWithForm({ 201 + ...options, 202 + ...queryKey[0].params, 203 + throwOnError: true, 204 + }); 205 + return data; 206 + }, 207 + queryKey: [ 208 + { 209 + params: createQueryKeyParams(options), 210 + scope: 'updatePetWithForm', 211 + }, 212 + ], 213 + }); 214 + 215 + export const updatePetWithFormMutation: UseMutationOptions< 216 + void, 217 + DefaultError, 218 + Options<UpdatePetWithFormData> 219 + > = { 220 + mutationFn: async (options) => { 221 + const { data } = await updatePetWithForm({ 222 + ...options, 223 + throwOnError: true, 224 + }); 225 + return data; 226 + }, 227 + }; 228 + 229 + export const deletePetMutation: UseMutationOptions< 230 + void, 231 + DefaultError, 232 + Options<DeletePetData> 233 + > = { 234 + mutationFn: async (options) => { 235 + const { data } = await deletePet({ 236 + ...options, 237 + throwOnError: true, 238 + }); 239 + return data; 240 + }, 241 + }; 242 + 243 + export const uploadFileOptions = (options: Options<UploadFileData>) => 244 + queryOptions({ 245 + queryFn: async ({ queryKey }) => { 246 + const { data } = await uploadFile({ 247 + ...options, 248 + ...queryKey[0].params, 249 + throwOnError: true, 250 + }); 251 + return data; 252 + }, 253 + queryKey: [ 254 + { 255 + params: createQueryKeyParams(options), 256 + scope: 'uploadFile', 257 + }, 258 + ], 259 + }); 260 + 261 + export const uploadFileMutation: UseMutationOptions< 262 + UploadFileResponse, 263 + UploadFileError, 264 + Options<UploadFileData> 265 + > = { 266 + mutationFn: async (options) => { 267 + const { data } = await uploadFile({ 268 + ...options, 269 + throwOnError: true, 270 + }); 271 + return data; 272 + }, 273 + }; 274 + 275 + export const getInventoryOptions = (options?: Options) => 276 + queryOptions({ 277 + queryFn: async ({ queryKey }) => { 278 + const { data } = await getInventory({ 279 + ...options, 280 + ...queryKey[0].params, 281 + throwOnError: true, 282 + }); 283 + return data; 284 + }, 285 + queryKey: [ 286 + { 287 + params: createQueryKeyParams(options), 288 + scope: 'getInventory', 289 + }, 290 + ], 291 + }); 292 + 293 + export const placeOrderOptions = (options?: Options<PlaceOrderData>) => 294 + queryOptions({ 295 + queryFn: async ({ queryKey }) => { 296 + const { data } = await placeOrder({ 297 + ...options, 298 + ...queryKey[0].params, 299 + throwOnError: true, 300 + }); 301 + return data; 302 + }, 303 + queryKey: [ 304 + { 305 + params: createQueryKeyParams(options), 306 + scope: 'placeOrder', 307 + }, 308 + ], 309 + }); 310 + 311 + export const placeOrderMutation: UseMutationOptions< 312 + PlaceOrderResponse, 313 + PlaceOrderError, 314 + Options<PlaceOrderData> 315 + > = { 316 + mutationFn: async (options) => { 317 + const { data } = await placeOrder({ 318 + ...options, 319 + throwOnError: true, 320 + }); 321 + return data; 322 + }, 323 + }; 324 + 325 + export const getOrderByIdOptions = (options: Options<GetOrderByIdData>) => 326 + queryOptions({ 327 + queryFn: async ({ queryKey }) => { 328 + const { data } = await getOrderById({ 329 + ...options, 330 + ...queryKey[0].params, 331 + throwOnError: true, 332 + }); 333 + return data; 334 + }, 335 + queryKey: [ 336 + { 337 + params: createQueryKeyParams(options), 338 + scope: 'getOrderById', 339 + }, 340 + ], 341 + }); 342 + 343 + export const deleteOrderMutation: UseMutationOptions< 344 + void, 345 + DefaultError, 346 + Options<DeleteOrderData> 347 + > = { 348 + mutationFn: async (options) => { 349 + const { data } = await deleteOrder({ 350 + ...options, 351 + throwOnError: true, 352 + }); 353 + return data; 354 + }, 355 + }; 356 + 357 + export const createUserOptions = (options?: Options<CreateUserData>) => 358 + queryOptions({ 359 + queryFn: async ({ queryKey }) => { 360 + const { data } = await createUser({ 361 + ...options, 362 + ...queryKey[0].params, 363 + throwOnError: true, 364 + }); 365 + return data; 366 + }, 367 + queryKey: [ 368 + { 369 + params: createQueryKeyParams(options), 370 + scope: 'createUser', 371 + }, 372 + ], 373 + }); 374 + 375 + export const createUserMutation: UseMutationOptions< 376 + CreateUserResponse, 377 + CreateUserError, 378 + Options<CreateUserData> 379 + > = { 380 + mutationFn: async (options) => { 381 + const { data } = await createUser({ 382 + ...options, 383 + throwOnError: true, 384 + }); 385 + return data; 386 + }, 387 + }; 388 + 389 + export const createUsersWithListInputOptions = ( 390 + options?: Options<CreateUsersWithListInputData>, 391 + ) => 392 + queryOptions({ 393 + queryFn: async ({ queryKey }) => { 394 + const { data } = await createUsersWithListInput({ 395 + ...options, 396 + ...queryKey[0].params, 397 + throwOnError: true, 398 + }); 399 + return data; 400 + }, 401 + queryKey: [ 402 + { 403 + params: createQueryKeyParams(options), 404 + scope: 'createUsersWithListInput', 405 + }, 406 + ], 407 + }); 408 + 409 + export const createUsersWithListInputMutation: UseMutationOptions< 410 + CreateUsersWithListInputResponse, 411 + CreateUsersWithListInputError, 412 + Options<CreateUsersWithListInputData> 413 + > = { 414 + mutationFn: async (options) => { 415 + const { data } = await createUsersWithListInput({ 416 + ...options, 417 + throwOnError: true, 418 + }); 419 + return data; 420 + }, 421 + }; 422 + 423 + export const loginUserOptions = (options?: Options<LoginUserData>) => 424 + queryOptions({ 425 + queryFn: async ({ queryKey }) => { 426 + const { data } = await loginUser({ 427 + ...options, 428 + ...queryKey[0].params, 429 + throwOnError: true, 430 + }); 431 + return data; 432 + }, 433 + queryKey: [ 434 + { 435 + params: createQueryKeyParams(options), 436 + scope: 'loginUser', 437 + }, 438 + ], 439 + }); 440 + 441 + export const logoutUserOptions = (options?: Options) => 442 + queryOptions({ 443 + queryFn: async ({ queryKey }) => { 444 + const { data } = await logoutUser({ 445 + ...options, 446 + ...queryKey[0].params, 447 + throwOnError: true, 448 + }); 449 + return data; 450 + }, 451 + queryKey: [ 452 + { 453 + params: createQueryKeyParams(options), 454 + scope: 'logoutUser', 455 + }, 456 + ], 457 + }); 458 + 459 + export const getUserByNameOptions = (options: Options<GetUserByNameData>) => 460 + queryOptions({ 461 + queryFn: async ({ queryKey }) => { 462 + const { data } = await getUserByName({ 463 + ...options, 464 + ...queryKey[0].params, 465 + throwOnError: true, 466 + }); 467 + return data; 468 + }, 469 + queryKey: [ 470 + { 471 + params: createQueryKeyParams(options), 472 + scope: 'getUserByName', 473 + }, 474 + ], 475 + }); 476 + 477 + export const updateUserMutation: UseMutationOptions< 478 + UpdateUserResponse, 479 + UpdateUserError, 480 + Options<UpdateUserData> 481 + > = { 482 + mutationFn: async (options) => { 483 + const { data } = await updateUser({ 484 + ...options, 485 + throwOnError: true, 486 + }); 487 + return data; 488 + }, 489 + }; 490 + 491 + export const deleteUserMutation: UseMutationOptions< 492 + void, 493 + DefaultError, 494 + Options<DeleteUserData> 495 + > = { 496 + mutationFn: async (options) => { 497 + const { data } = await deleteUser({ 498 + ...options, 499 + throwOnError: true, 500 + }); 501 + return data; 502 + }, 503 + };
+4
examples/openapi-ts-tanstack-react-query/src/client/index.ts
··· 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';
+244
examples/openapi-ts-tanstack-react-query/src/client/schemas.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export const $Order = { 4 + properties: { 5 + complete: { 6 + type: 'boolean', 7 + }, 8 + id: { 9 + example: 10, 10 + format: 'int64', 11 + type: 'integer', 12 + }, 13 + petId: { 14 + example: 198772, 15 + format: 'int64', 16 + type: 'integer', 17 + }, 18 + quantity: { 19 + example: 7, 20 + format: 'int32', 21 + type: 'integer', 22 + }, 23 + shipDate: { 24 + format: 'date-time', 25 + type: 'string', 26 + }, 27 + status: { 28 + description: 'Order Status', 29 + enum: ['placed', 'approved', 'delivered'], 30 + example: 'approved', 31 + type: 'string', 32 + }, 33 + }, 34 + type: 'object', 35 + 'x-swagger-router-model': 'io.swagger.petstore.model.Order', 36 + xml: { 37 + name: 'order', 38 + }, 39 + } as const; 40 + 41 + export const $Customer = { 42 + properties: { 43 + address: { 44 + items: { 45 + $ref: '#/components/schemas/Address', 46 + }, 47 + type: 'array', 48 + xml: { 49 + name: 'addresses', 50 + wrapped: true, 51 + }, 52 + }, 53 + id: { 54 + example: 100000, 55 + format: 'int64', 56 + type: 'integer', 57 + }, 58 + username: { 59 + example: 'fehguy', 60 + type: 'string', 61 + }, 62 + }, 63 + type: 'object', 64 + xml: { 65 + name: 'customer', 66 + }, 67 + } as const; 68 + 69 + export const $Address = { 70 + properties: { 71 + city: { 72 + example: 'Palo Alto', 73 + type: 'string', 74 + }, 75 + state: { 76 + example: 'CA', 77 + type: 'string', 78 + }, 79 + street: { 80 + example: '437 Lytton', 81 + type: 'string', 82 + }, 83 + zip: { 84 + example: 94301, 85 + type: 'string', 86 + }, 87 + }, 88 + type: 'object', 89 + xml: { 90 + name: 'address', 91 + }, 92 + } as const; 93 + 94 + export const $Category = { 95 + properties: { 96 + id: { 97 + example: 1, 98 + format: 'int64', 99 + type: 'integer', 100 + }, 101 + name: { 102 + example: 'Dogs', 103 + type: 'string', 104 + }, 105 + }, 106 + type: 'object', 107 + 'x-swagger-router-model': 'io.swagger.petstore.model.Category', 108 + xml: { 109 + name: 'category', 110 + }, 111 + } as const; 112 + 113 + export const $User = { 114 + properties: { 115 + email: { 116 + example: 'john@email.com', 117 + type: 'string', 118 + }, 119 + firstName: { 120 + example: 'John', 121 + type: 'string', 122 + }, 123 + id: { 124 + example: 10, 125 + format: 'int64', 126 + type: 'integer', 127 + }, 128 + lastName: { 129 + example: 'James', 130 + type: 'string', 131 + }, 132 + password: { 133 + example: 12345, 134 + type: 'string', 135 + }, 136 + phone: { 137 + example: 12345, 138 + type: 'string', 139 + }, 140 + userStatus: { 141 + description: 'User Status', 142 + example: 1, 143 + format: 'int32', 144 + type: 'integer', 145 + }, 146 + username: { 147 + example: 'theUser', 148 + type: 'string', 149 + }, 150 + }, 151 + type: 'object', 152 + 'x-swagger-router-model': 'io.swagger.petstore.model.User', 153 + xml: { 154 + name: 'user', 155 + }, 156 + } as const; 157 + 158 + export const $Tag = { 159 + properties: { 160 + id: { 161 + format: 'int64', 162 + type: 'integer', 163 + }, 164 + name: { 165 + type: 'string', 166 + }, 167 + }, 168 + type: 'object', 169 + 'x-swagger-router-model': 'io.swagger.petstore.model.Tag', 170 + xml: { 171 + name: 'tag', 172 + }, 173 + } as const; 174 + 175 + export const $Pet = { 176 + properties: { 177 + category: { 178 + $ref: '#/components/schemas/Category', 179 + }, 180 + id: { 181 + example: 10, 182 + format: 'int64', 183 + type: 'integer', 184 + }, 185 + name: { 186 + example: 'doggie', 187 + type: 'string', 188 + }, 189 + photoUrls: { 190 + items: { 191 + type: 'string', 192 + xml: { 193 + name: 'photoUrl', 194 + }, 195 + }, 196 + type: 'array', 197 + xml: { 198 + wrapped: true, 199 + }, 200 + }, 201 + status: { 202 + description: 'pet status in the store', 203 + enum: ['available', 'pending', 'sold'], 204 + type: 'string', 205 + }, 206 + tags: { 207 + items: { 208 + $ref: '#/components/schemas/Tag', 209 + xml: { 210 + name: 'tag', 211 + }, 212 + }, 213 + type: 'array', 214 + xml: { 215 + wrapped: true, 216 + }, 217 + }, 218 + }, 219 + required: ['name', 'photoUrls'], 220 + type: 'object', 221 + 'x-swagger-router-model': 'io.swagger.petstore.model.Pet', 222 + xml: { 223 + name: 'pet', 224 + }, 225 + } as const; 226 + 227 + export const $ApiResponse = { 228 + properties: { 229 + code: { 230 + format: 'int32', 231 + type: 'integer', 232 + }, 233 + message: { 234 + type: 'string', 235 + }, 236 + type: { 237 + type: 'string', 238 + }, 239 + }, 240 + type: 'object', 241 + xml: { 242 + name: '##default', 243 + }, 244 + } as const;
+337
examples/openapi-ts-tanstack-react-query/src/client/services.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { 4 + createClient, 5 + createConfig, 6 + type Options, 7 + } from '@hey-api/client-fetch'; 8 + 9 + import type { 10 + AddPetData, 11 + AddPetError, 12 + AddPetResponse, 13 + CreateUserData, 14 + CreateUserError, 15 + CreateUserResponse, 16 + CreateUsersWithListInputData, 17 + CreateUsersWithListInputError, 18 + CreateUsersWithListInputResponse, 19 + DeleteOrderData, 20 + DeletePetData, 21 + DeleteUserData, 22 + FindPetsByStatusData, 23 + FindPetsByStatusError, 24 + FindPetsByStatusResponse, 25 + FindPetsByTagsData, 26 + FindPetsByTagsError, 27 + FindPetsByTagsResponse, 28 + GetInventoryError, 29 + GetInventoryResponse, 30 + GetOrderByIdData, 31 + GetOrderByIdError, 32 + GetOrderByIdResponse, 33 + GetPetByIdData, 34 + GetPetByIdError, 35 + GetPetByIdResponse, 36 + GetUserByNameData, 37 + GetUserByNameError, 38 + GetUserByNameResponse, 39 + LoginUserData, 40 + LoginUserError, 41 + LoginUserResponse, 42 + LogoutUserError, 43 + LogoutUserResponse, 44 + PlaceOrderData, 45 + PlaceOrderError, 46 + PlaceOrderResponse, 47 + UpdatePetData, 48 + UpdatePetError, 49 + UpdatePetResponse, 50 + UpdatePetWithFormData, 51 + UpdateUserData, 52 + UpdateUserError, 53 + UpdateUserResponse, 54 + UploadFileData, 55 + UploadFileError, 56 + UploadFileResponse, 57 + } from './types.gen'; 58 + 59 + export const client = createClient(createConfig()); 60 + 61 + /** 62 + * Add a new pet to the store 63 + * Add a new pet to the store 64 + */ 65 + export const addPet = <ThrowOnError extends boolean = false>( 66 + options: Options<AddPetData, ThrowOnError>, 67 + ) => 68 + (options?.client ?? client).post<AddPetResponse, AddPetError, ThrowOnError>({ 69 + ...options, 70 + url: '/pet', 71 + }); 72 + 73 + /** 74 + * Update an existing pet 75 + * Update an existing pet by Id 76 + */ 77 + export const updatePet = <ThrowOnError extends boolean = false>( 78 + options: Options<UpdatePetData, ThrowOnError>, 79 + ) => 80 + (options?.client ?? client).put< 81 + UpdatePetResponse, 82 + UpdatePetError, 83 + ThrowOnError 84 + >({ 85 + ...options, 86 + url: '/pet', 87 + }); 88 + 89 + /** 90 + * Finds Pets by status 91 + * Multiple status values can be provided with comma separated strings 92 + */ 93 + export const findPetsByStatus = <ThrowOnError extends boolean = false>( 94 + options?: Options<FindPetsByStatusData, ThrowOnError>, 95 + ) => 96 + (options?.client ?? client).get< 97 + FindPetsByStatusResponse, 98 + FindPetsByStatusError, 99 + ThrowOnError 100 + >({ 101 + ...options, 102 + url: '/pet/findByStatus', 103 + }); 104 + 105 + /** 106 + * Finds Pets by tags 107 + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. 108 + */ 109 + export const findPetsByTags = <ThrowOnError extends boolean = false>( 110 + options?: Options<FindPetsByTagsData, ThrowOnError>, 111 + ) => 112 + (options?.client ?? client).get< 113 + FindPetsByTagsResponse, 114 + FindPetsByTagsError, 115 + ThrowOnError 116 + >({ 117 + ...options, 118 + url: '/pet/findByTags', 119 + }); 120 + 121 + /** 122 + * Find pet by ID 123 + * Returns a single pet 124 + */ 125 + export const getPetById = <ThrowOnError extends boolean = false>( 126 + options: Options<GetPetByIdData, ThrowOnError>, 127 + ) => 128 + (options?.client ?? client).get< 129 + GetPetByIdResponse, 130 + GetPetByIdError, 131 + ThrowOnError 132 + >({ 133 + ...options, 134 + url: '/pet/{petId}', 135 + }); 136 + 137 + /** 138 + * Updates a pet in the store with form data 139 + */ 140 + export const updatePetWithForm = <ThrowOnError extends boolean = false>( 141 + options: Options<UpdatePetWithFormData, ThrowOnError>, 142 + ) => 143 + (options?.client ?? client).post<void, unknown, ThrowOnError>({ 144 + ...options, 145 + url: '/pet/{petId}', 146 + }); 147 + 148 + /** 149 + * Deletes a pet 150 + */ 151 + export const deletePet = <ThrowOnError extends boolean = false>( 152 + options: Options<DeletePetData, ThrowOnError>, 153 + ) => 154 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 155 + ...options, 156 + url: '/pet/{petId}', 157 + }); 158 + 159 + /** 160 + * uploads an image 161 + */ 162 + export const uploadFile = <ThrowOnError extends boolean = false>( 163 + options: Options<UploadFileData, ThrowOnError>, 164 + ) => 165 + (options?.client ?? client).post< 166 + UploadFileResponse, 167 + UploadFileError, 168 + ThrowOnError 169 + >({ 170 + ...options, 171 + url: '/pet/{petId}/uploadImage', 172 + }); 173 + 174 + /** 175 + * Returns pet inventories by status 176 + * Returns a map of status codes to quantities 177 + */ 178 + export const getInventory = <ThrowOnError extends boolean = false>( 179 + options?: Options<unknown, ThrowOnError>, 180 + ) => 181 + (options?.client ?? client).get< 182 + GetInventoryResponse, 183 + GetInventoryError, 184 + ThrowOnError 185 + >({ 186 + ...options, 187 + url: '/store/inventory', 188 + }); 189 + 190 + /** 191 + * Place an order for a pet 192 + * Place a new order in the store 193 + */ 194 + export const placeOrder = <ThrowOnError extends boolean = false>( 195 + options?: Options<PlaceOrderData, ThrowOnError>, 196 + ) => 197 + (options?.client ?? client).post< 198 + PlaceOrderResponse, 199 + PlaceOrderError, 200 + ThrowOnError 201 + >({ 202 + ...options, 203 + url: '/store/order', 204 + }); 205 + 206 + /** 207 + * Find purchase order by ID 208 + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. 209 + */ 210 + export const getOrderById = <ThrowOnError extends boolean = false>( 211 + options: Options<GetOrderByIdData, ThrowOnError>, 212 + ) => 213 + (options?.client ?? client).get< 214 + GetOrderByIdResponse, 215 + GetOrderByIdError, 216 + ThrowOnError 217 + >({ 218 + ...options, 219 + url: '/store/order/{orderId}', 220 + }); 221 + 222 + /** 223 + * Delete purchase order by ID 224 + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors 225 + */ 226 + export const deleteOrder = <ThrowOnError extends boolean = false>( 227 + options: Options<DeleteOrderData, ThrowOnError>, 228 + ) => 229 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 230 + ...options, 231 + url: '/store/order/{orderId}', 232 + }); 233 + 234 + /** 235 + * Create user 236 + * This can only be done by the logged in user. 237 + */ 238 + export const createUser = <ThrowOnError extends boolean = false>( 239 + options?: Options<CreateUserData, ThrowOnError>, 240 + ) => 241 + (options?.client ?? client).post< 242 + CreateUserResponse, 243 + CreateUserError, 244 + ThrowOnError 245 + >({ 246 + ...options, 247 + url: '/user', 248 + }); 249 + 250 + /** 251 + * Creates list of users with given input array 252 + * Creates list of users with given input array 253 + */ 254 + export const createUsersWithListInput = <ThrowOnError extends boolean = false>( 255 + options?: Options<CreateUsersWithListInputData, ThrowOnError>, 256 + ) => 257 + (options?.client ?? client).post< 258 + CreateUsersWithListInputResponse, 259 + CreateUsersWithListInputError, 260 + ThrowOnError 261 + >({ 262 + ...options, 263 + url: '/user/createWithList', 264 + }); 265 + 266 + /** 267 + * Logs user into the system 268 + */ 269 + export const loginUser = <ThrowOnError extends boolean = false>( 270 + options?: Options<LoginUserData, ThrowOnError>, 271 + ) => 272 + (options?.client ?? client).get< 273 + LoginUserResponse, 274 + LoginUserError, 275 + ThrowOnError 276 + >({ 277 + ...options, 278 + url: '/user/login', 279 + }); 280 + 281 + /** 282 + * Logs out current logged in user session 283 + */ 284 + export const logoutUser = <ThrowOnError extends boolean = false>( 285 + options?: Options<unknown, ThrowOnError>, 286 + ) => 287 + (options?.client ?? client).get< 288 + LogoutUserResponse, 289 + LogoutUserError, 290 + ThrowOnError 291 + >({ 292 + ...options, 293 + url: '/user/logout', 294 + }); 295 + 296 + /** 297 + * Get user by user name 298 + */ 299 + export const getUserByName = <ThrowOnError extends boolean = false>( 300 + options: Options<GetUserByNameData, ThrowOnError>, 301 + ) => 302 + (options?.client ?? client).get< 303 + GetUserByNameResponse, 304 + GetUserByNameError, 305 + ThrowOnError 306 + >({ 307 + ...options, 308 + url: '/user/{username}', 309 + }); 310 + 311 + /** 312 + * Update user 313 + * This can only be done by the logged in user. 314 + */ 315 + export const updateUser = <ThrowOnError extends boolean = false>( 316 + options: Options<UpdateUserData, ThrowOnError>, 317 + ) => 318 + (options?.client ?? client).put< 319 + UpdateUserResponse, 320 + UpdateUserError, 321 + ThrowOnError 322 + >({ 323 + ...options, 324 + url: '/user/{username}', 325 + }); 326 + 327 + /** 328 + * Delete user 329 + * This can only be done by the logged in user. 330 + */ 331 + export const deleteUser = <ThrowOnError extends boolean = false>( 332 + options: Options<DeleteUserData, ThrowOnError>, 333 + ) => 334 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 335 + ...options, 336 + url: '/user/{username}', 337 + });
+591
examples/openapi-ts-tanstack-react-query/src/client/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type Order = { 4 + complete?: boolean; 5 + id?: number; 6 + petId?: number; 7 + quantity?: number; 8 + shipDate?: string; 9 + /** 10 + * Order Status 11 + */ 12 + status?: 'placed' | 'approved' | 'delivered'; 13 + }; 14 + 15 + /** 16 + * Order Status 17 + */ 18 + export type status = 'placed' | 'approved' | 'delivered'; 19 + 20 + /** 21 + * Order Status 22 + */ 23 + export const status = { 24 + APPROVED: 'approved', 25 + DELIVERED: 'delivered', 26 + PLACED: 'placed', 27 + } as const; 28 + 29 + export type Customer = { 30 + address?: Array<Address>; 31 + id?: number; 32 + username?: string; 33 + }; 34 + 35 + export type Address = { 36 + city?: string; 37 + state?: string; 38 + street?: string; 39 + zip?: string; 40 + }; 41 + 42 + export type Category = { 43 + id?: number; 44 + name?: string; 45 + }; 46 + 47 + export type User = { 48 + email?: string; 49 + firstName?: string; 50 + id?: number; 51 + lastName?: string; 52 + password?: string; 53 + phone?: string; 54 + /** 55 + * User Status 56 + */ 57 + userStatus?: number; 58 + username?: string; 59 + }; 60 + 61 + export type Tag = { 62 + id?: number; 63 + name?: string; 64 + }; 65 + 66 + export type Pet = { 67 + category?: Category; 68 + id?: number; 69 + name: string; 70 + photoUrls: Array<string>; 71 + /** 72 + * pet status in the store 73 + */ 74 + status?: 'available' | 'pending' | 'sold'; 75 + tags?: Array<Tag>; 76 + }; 77 + 78 + /** 79 + * pet status in the store 80 + */ 81 + export type status2 = 'available' | 'pending' | 'sold'; 82 + 83 + /** 84 + * pet status in the store 85 + */ 86 + export const status2 = { 87 + AVAILABLE: 'available', 88 + PENDING: 'pending', 89 + SOLD: 'sold', 90 + } as const; 91 + 92 + export type ApiResponse = { 93 + code?: number; 94 + message?: string; 95 + type?: string; 96 + }; 97 + 98 + export type AddPetData = { 99 + /** 100 + * Create a new pet in the store 101 + */ 102 + body: Pet; 103 + }; 104 + 105 + export type AddPetResponse = Pet; 106 + 107 + export type AddPetError = unknown; 108 + 109 + export type UpdatePetData = { 110 + /** 111 + * Update an existent pet in the store 112 + */ 113 + body: Pet; 114 + }; 115 + 116 + export type UpdatePetResponse = Pet; 117 + 118 + export type UpdatePetError = unknown; 119 + 120 + export type FindPetsByStatusData = { 121 + query?: { 122 + /** 123 + * Status values that need to be considered for filter 124 + */ 125 + status?: 'available' | 'pending' | 'sold'; 126 + }; 127 + }; 128 + 129 + export type FindPetsByStatusResponse = Array<Pet>; 130 + 131 + export type FindPetsByStatusError = unknown; 132 + 133 + export type FindPetsByTagsData = { 134 + query?: { 135 + /** 136 + * Tags to filter by 137 + */ 138 + tags?: Array<string>; 139 + }; 140 + }; 141 + 142 + export type FindPetsByTagsResponse = Array<Pet>; 143 + 144 + export type FindPetsByTagsError = unknown; 145 + 146 + export type GetPetByIdData = { 147 + path: { 148 + /** 149 + * ID of pet to return 150 + */ 151 + petId: number; 152 + }; 153 + }; 154 + 155 + export type GetPetByIdResponse = Pet; 156 + 157 + export type GetPetByIdError = unknown; 158 + 159 + export type UpdatePetWithFormData = { 160 + path: { 161 + /** 162 + * ID of pet that needs to be updated 163 + */ 164 + petId: number; 165 + }; 166 + query?: { 167 + /** 168 + * Name of pet that needs to be updated 169 + */ 170 + name?: string; 171 + /** 172 + * Status of pet that needs to be updated 173 + */ 174 + status?: string; 175 + }; 176 + }; 177 + 178 + export type DeletePetData = { 179 + headers?: { 180 + api_key?: string; 181 + }; 182 + path: { 183 + /** 184 + * Pet id to delete 185 + */ 186 + petId: number; 187 + }; 188 + }; 189 + 190 + export type UploadFileData = { 191 + body?: Blob | File; 192 + path: { 193 + /** 194 + * ID of pet to update 195 + */ 196 + petId: number; 197 + }; 198 + query?: { 199 + /** 200 + * Additional Metadata 201 + */ 202 + additionalMetadata?: string; 203 + }; 204 + }; 205 + 206 + export type UploadFileResponse = ApiResponse; 207 + 208 + export type UploadFileError = unknown; 209 + 210 + export type GetInventoryResponse = { 211 + [key: string]: number; 212 + }; 213 + 214 + export type GetInventoryError = unknown; 215 + 216 + export type PlaceOrderData = { 217 + body?: Order; 218 + }; 219 + 220 + export type PlaceOrderResponse = Order; 221 + 222 + export type PlaceOrderError = unknown; 223 + 224 + export type GetOrderByIdData = { 225 + path: { 226 + /** 227 + * ID of order that needs to be fetched 228 + */ 229 + orderId: number; 230 + }; 231 + }; 232 + 233 + export type GetOrderByIdResponse = Order; 234 + 235 + export type GetOrderByIdError = unknown; 236 + 237 + export type DeleteOrderData = { 238 + path: { 239 + /** 240 + * ID of the order that needs to be deleted 241 + */ 242 + orderId: number; 243 + }; 244 + }; 245 + 246 + export type CreateUserData = { 247 + /** 248 + * Created user object 249 + */ 250 + body?: User; 251 + }; 252 + 253 + export type CreateUserResponse = User; 254 + 255 + export type CreateUserError = unknown; 256 + 257 + export type CreateUsersWithListInputData = { 258 + body?: Array<User>; 259 + }; 260 + 261 + export type CreateUsersWithListInputResponse = User | unknown; 262 + 263 + export type CreateUsersWithListInputError = unknown; 264 + 265 + export type LoginUserData = { 266 + query?: { 267 + /** 268 + * The password for login in clear text 269 + */ 270 + password?: string; 271 + /** 272 + * The user name for login 273 + */ 274 + username?: string; 275 + }; 276 + }; 277 + 278 + export type LoginUserResponse = string; 279 + 280 + export type LoginUserError = unknown; 281 + 282 + export type LogoutUserResponse = unknown; 283 + 284 + export type LogoutUserError = unknown; 285 + 286 + export type GetUserByNameData = { 287 + path: { 288 + /** 289 + * The name that needs to be fetched. Use user1 for testing. 290 + */ 291 + username: string; 292 + }; 293 + }; 294 + 295 + export type GetUserByNameResponse = User; 296 + 297 + export type GetUserByNameError = unknown; 298 + 299 + export type UpdateUserData = { 300 + /** 301 + * Update an existent user in the store 302 + */ 303 + body?: User; 304 + path: { 305 + /** 306 + * name that needs to be updated 307 + */ 308 + username: string; 309 + }; 310 + }; 311 + 312 + export type UpdateUserResponse = unknown; 313 + 314 + export type UpdateUserError = unknown; 315 + 316 + export type DeleteUserData = { 317 + path: { 318 + /** 319 + * The name that needs to be deleted 320 + */ 321 + username: string; 322 + }; 323 + }; 324 + 325 + export type $OpenApiTs = { 326 + '/pet': { 327 + post: { 328 + req: AddPetData; 329 + res: { 330 + /** 331 + * Successful operation 332 + */ 333 + '200': Pet; 334 + /** 335 + * Invalid input 336 + */ 337 + '405': unknown; 338 + }; 339 + }; 340 + put: { 341 + req: UpdatePetData; 342 + res: { 343 + /** 344 + * Successful operation 345 + */ 346 + '200': Pet; 347 + /** 348 + * Invalid ID supplied 349 + */ 350 + '400': unknown; 351 + /** 352 + * Pet not found 353 + */ 354 + '404': unknown; 355 + /** 356 + * Validation exception 357 + */ 358 + '405': unknown; 359 + }; 360 + }; 361 + }; 362 + '/pet/findByStatus': { 363 + get: { 364 + req: FindPetsByStatusData; 365 + res: { 366 + /** 367 + * successful operation 368 + */ 369 + '200': Array<Pet>; 370 + /** 371 + * Invalid status value 372 + */ 373 + '400': unknown; 374 + }; 375 + }; 376 + }; 377 + '/pet/findByTags': { 378 + get: { 379 + req: FindPetsByTagsData; 380 + res: { 381 + /** 382 + * successful operation 383 + */ 384 + '200': Array<Pet>; 385 + /** 386 + * Invalid tag value 387 + */ 388 + '400': unknown; 389 + }; 390 + }; 391 + }; 392 + '/pet/{petId}': { 393 + delete: { 394 + req: DeletePetData; 395 + res: { 396 + /** 397 + * Invalid pet value 398 + */ 399 + '400': unknown; 400 + }; 401 + }; 402 + get: { 403 + req: GetPetByIdData; 404 + res: { 405 + /** 406 + * successful operation 407 + */ 408 + '200': Pet; 409 + /** 410 + * Invalid ID supplied 411 + */ 412 + '400': unknown; 413 + /** 414 + * Pet not found 415 + */ 416 + '404': unknown; 417 + }; 418 + }; 419 + post: { 420 + req: UpdatePetWithFormData; 421 + res: { 422 + /** 423 + * Invalid input 424 + */ 425 + '405': unknown; 426 + }; 427 + }; 428 + }; 429 + '/pet/{petId}/uploadImage': { 430 + post: { 431 + req: UploadFileData; 432 + res: { 433 + /** 434 + * successful operation 435 + */ 436 + '200': ApiResponse; 437 + }; 438 + }; 439 + }; 440 + '/store/inventory': { 441 + get: { 442 + res: { 443 + /** 444 + * successful operation 445 + */ 446 + '200': { 447 + [key: string]: number; 448 + }; 449 + }; 450 + }; 451 + }; 452 + '/store/order': { 453 + post: { 454 + req: PlaceOrderData; 455 + res: { 456 + /** 457 + * successful operation 458 + */ 459 + '200': Order; 460 + /** 461 + * Invalid input 462 + */ 463 + '405': unknown; 464 + }; 465 + }; 466 + }; 467 + '/store/order/{orderId}': { 468 + delete: { 469 + req: DeleteOrderData; 470 + res: { 471 + /** 472 + * Invalid ID supplied 473 + */ 474 + '400': unknown; 475 + /** 476 + * Order not found 477 + */ 478 + '404': unknown; 479 + }; 480 + }; 481 + get: { 482 + req: GetOrderByIdData; 483 + res: { 484 + /** 485 + * successful operation 486 + */ 487 + '200': Order; 488 + /** 489 + * Invalid ID supplied 490 + */ 491 + '400': unknown; 492 + /** 493 + * Order not found 494 + */ 495 + '404': unknown; 496 + }; 497 + }; 498 + }; 499 + '/user': { 500 + post: { 501 + req: CreateUserData; 502 + res: { 503 + /** 504 + * successful operation 505 + */ 506 + default: User; 507 + }; 508 + }; 509 + }; 510 + '/user/createWithList': { 511 + post: { 512 + req: CreateUsersWithListInputData; 513 + res: { 514 + /** 515 + * Successful operation 516 + */ 517 + '200': User; 518 + /** 519 + * successful operation 520 + */ 521 + default: unknown; 522 + }; 523 + }; 524 + }; 525 + '/user/login': { 526 + get: { 527 + req: LoginUserData; 528 + res: { 529 + /** 530 + * successful operation 531 + */ 532 + '200': string; 533 + /** 534 + * Invalid username/password supplied 535 + */ 536 + '400': unknown; 537 + }; 538 + }; 539 + }; 540 + '/user/logout': { 541 + get: { 542 + res: { 543 + /** 544 + * successful operation 545 + */ 546 + default: unknown; 547 + }; 548 + }; 549 + }; 550 + '/user/{username}': { 551 + delete: { 552 + req: DeleteUserData; 553 + res: { 554 + /** 555 + * Invalid username supplied 556 + */ 557 + '400': unknown; 558 + /** 559 + * User not found 560 + */ 561 + '404': unknown; 562 + }; 563 + }; 564 + get: { 565 + req: GetUserByNameData; 566 + res: { 567 + /** 568 + * successful operation 569 + */ 570 + '200': User; 571 + /** 572 + * Invalid username supplied 573 + */ 574 + '400': unknown; 575 + /** 576 + * User not found 577 + */ 578 + '404': unknown; 579 + }; 580 + }; 581 + put: { 582 + req: UpdateUserData; 583 + res: { 584 + /** 585 + * successful operation 586 + */ 587 + default: unknown; 588 + }; 589 + }; 590 + }; 591 + };
+39
examples/openapi-ts-tanstack-react-query/src/main.tsx
··· 1 + import '@radix-ui/themes/styles.css'; 2 + 3 + import { Theme } from '@radix-ui/themes'; 4 + import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; 5 + import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; 6 + import React from 'react'; 7 + import ReactDOM from 'react-dom/client'; 8 + 9 + import App from './App.tsx'; 10 + import { client } from './client/services.gen'; 11 + 12 + const queryClient = new QueryClient({ 13 + defaultOptions: { 14 + queries: { 15 + staleTime: 60000, 16 + }, 17 + }, 18 + }); 19 + 20 + // configure internal service client 21 + client.setConfig({ 22 + // set default base url for requests 23 + baseUrl: 'https://petstore3.swagger.io/api/v3', 24 + // set default headers for requests 25 + headers: { 26 + Authorization: 'Bearer <token_from_service_client>', 27 + }, 28 + }); 29 + 30 + ReactDOM.createRoot(document.getElementById('root')!).render( 31 + <React.StrictMode> 32 + <QueryClientProvider client={queryClient}> 33 + <Theme appearance="dark"> 34 + <App /> 35 + </Theme> 36 + <ReactQueryDevtools initialIsOpen={false} /> 37 + </QueryClientProvider> 38 + </React.StrictMode>, 39 + );
+1
examples/openapi-ts-tanstack-react-query/src/vite-env.d.ts
··· 1 + /// <reference types="vite/client" />
+8
examples/openapi-ts-tanstack-react-query/tailwind.config.js
··· 1 + /** @type {import('tailwindcss').Config} */ 2 + export default { 3 + content: ['./index.html', './src/**/*.{html,js,ts,jsx,tsx}'], 4 + plugins: [], 5 + theme: { 6 + extend: {}, 7 + }, 8 + };
+25
examples/openapi-ts-tanstack-react-query/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2020", 4 + "useDefineForClassFields": true, 5 + "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 + "module": "ESNext", 7 + "skipLibCheck": true, 8 + 9 + /* Bundler mode */ 10 + "moduleResolution": "bundler", 11 + "allowImportingTsExtensions": true, 12 + "resolveJsonModule": true, 13 + "isolatedModules": true, 14 + "noEmit": true, 15 + "jsx": "react-jsx", 16 + 17 + /* Linting */ 18 + "strict": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "noFallthroughCasesInSwitch": true 22 + }, 23 + "include": ["src"], 24 + "references": [{ "path": "./tsconfig.node.json" }] 25 + }
+11
examples/openapi-ts-tanstack-react-query/tsconfig.node.json
··· 1 + { 2 + "compilerOptions": { 3 + "composite": true, 4 + "skipLibCheck": true, 5 + "module": "ESNext", 6 + "moduleResolution": "bundler", 7 + "allowSyntheticDefaultImports": true, 8 + "strict": true 9 + }, 10 + "include": ["vite.config.ts"] 11 + }
+7
examples/openapi-ts-tanstack-react-query/vite.config.ts
··· 1 + import react from '@vitejs/plugin-react'; 2 + import { defineConfig } from 'vite'; 3 + 4 + // https://vitejs.dev/config/ 5 + export default defineConfig({ 6 + plugins: [react()], 7 + });
+15
examples/openapi-ts-tanstack-vue-query/.eslintrc.cjs
··· 1 + /* eslint-env node */ 2 + require('@rushstack/eslint-patch/modern-module-resolution') 3 + 4 + module.exports = { 5 + extends: [ 6 + 'plugin:vue/vue3-essential', 7 + 'eslint:recommended', 8 + '@vue/eslint-config-typescript', 9 + '@vue/eslint-config-prettier/skip-formatting' 10 + ], 11 + parserOptions: { 12 + ecmaVersion: 'latest' 13 + }, 14 + root: true 15 + }
+30
examples/openapi-ts-tanstack-vue-query/.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + .DS_Store 12 + dist 13 + dist-ssr 14 + coverage 15 + *.local 16 + 17 + /cypress/videos/ 18 + /cypress/screenshots/ 19 + 20 + # Editor directories and files 21 + .vscode/* 22 + !.vscode/extensions.json 23 + .idea 24 + *.suo 25 + *.ntvs* 26 + *.njsproj 27 + *.sln 28 + *.sw? 29 + 30 + *.tsbuildinfo
+8
examples/openapi-ts-tanstack-vue-query/.prettierrc.json
··· 1 + { 2 + "$schema": "https://json.schemastore.org/prettierrc", 3 + "semi": false, 4 + "tabWidth": 2, 5 + "singleQuote": true, 6 + "printWidth": 100, 7 + "trailingComma": "none" 8 + }
+3
examples/openapi-ts-tanstack-vue-query/.vscode/extensions.json
··· 1 + { 2 + "recommendations": ["Vue.volar", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] 3 + }
+45
examples/openapi-ts-tanstack-vue-query/README.md
··· 1 + # vue-project 2 + 3 + This template should help get you started developing with Vue 3 in Vite. 4 + 5 + ## Recommended IDE Setup 6 + 7 + [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). 8 + 9 + ## Type Support for `.vue` Imports in TS 10 + 11 + TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. 12 + 13 + ## Customize configuration 14 + 15 + See [Vite Configuration Reference](https://vitejs.dev/config/). 16 + 17 + ## Project Setup 18 + 19 + ```sh 20 + pnpm install 21 + ``` 22 + 23 + ### Compile and Hot-Reload for Development 24 + 25 + ```sh 26 + pnpm dev 27 + ``` 28 + 29 + ### Type-Check, Compile and Minify for Production 30 + 31 + ```sh 32 + pnpm build 33 + ``` 34 + 35 + ### Run Unit Tests with [Vitest](https://vitest.dev/) 36 + 37 + ```sh 38 + pnpm test:unit 39 + ``` 40 + 41 + ### Lint with [ESLint](https://eslint.org/) 42 + 43 + ```sh 44 + pnpm lint 45 + ```
+1
examples/openapi-ts-tanstack-vue-query/env.d.ts
··· 1 + /// <reference types="vite/client" />
+13
examples/openapi-ts-tanstack-vue-query/index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" href="/favicon.ico" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Hey API + TanStack Vue Query Demo</title> 8 + </head> 9 + <body> 10 + <div id="app"></div> 11 + <script type="module" src="/src/main.ts"></script> 12 + </body> 13 + </html>
+18
examples/openapi-ts-tanstack-vue-query/openapi-ts.config.ts
··· 1 + import { defineConfig } from '@hey-api/openapi-ts' 2 + 3 + export default defineConfig({ 4 + client: '@hey-api/client-fetch', 5 + input: 6 + 'https://raw.githubusercontent.com/swagger-api/swagger-petstore/master/src/main/resources/openapi.yaml', 7 + // 'https://raw.githubusercontent.com/Redocly/museum-openapi-example/main/openapi.yaml', 8 + // '../../packages/openapi-ts/test/spec/v3.json', 9 + output: { 10 + format: 'prettier', 11 + lint: 'eslint', 12 + path: './src/client' 13 + }, 14 + plugins: ['@tanstack/vue-query'], 15 + types: { 16 + enums: 'javascript' 17 + } 18 + })
+49
examples/openapi-ts-tanstack-vue-query/package.json
··· 1 + { 2 + "name": "@example/openapi-ts-tanstack-vue-query", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "build-only": "vite build", 8 + "build": "run-p typecheck \"build-only {@}\" --", 9 + "dev": "vite", 10 + "format": "prettier --write src/", 11 + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", 12 + "openapi-ts": "openapi-ts", 13 + "preview": "vite preview", 14 + "test:unit": "vitest", 15 + "typecheck:old": "vue-tsc --build --force", 16 + "typecheck": "vue-tsc --version" 17 + }, 18 + "dependencies": { 19 + "@hey-api/client-fetch": "workspace:*", 20 + "@tanstack/vue-query": "5.51.21", 21 + "@tanstack/vue-query-devtools": "5.51.21", 22 + "pinia": "2.2.1", 23 + "vue": "3.4.37", 24 + "vue-router": "4.4.3" 25 + }, 26 + "devDependencies": { 27 + "@hey-api/openapi-ts": "workspace:*", 28 + "@rushstack/eslint-patch": "1.10.4", 29 + "@tsconfig/node20": "20.1.4", 30 + "@types/jsdom": "21.1.7", 31 + "@types/node": "20.14.5", 32 + "@vitejs/plugin-vue": "5.0.5", 33 + "@vitejs/plugin-vue-jsx": "4.0.0", 34 + "@vue/eslint-config-prettier": "9.0.0", 35 + "@vue/eslint-config-typescript": "13.0.0", 36 + "@vue/test-utils": "2.4.6", 37 + "@vue/tsconfig": "0.5.1", 38 + "eslint": "9.6.0", 39 + "eslint-plugin-vue": "9.27.0", 40 + "jsdom": "24.1.0", 41 + "npm-run-all2": "6.2.0", 42 + "prettier": "3.3.2", 43 + "typescript": "5.5.3", 44 + "vite": "5.3.3", 45 + "vite-plugin-vue-devtools": "7.3.1", 46 + "vitest": "1.6.0", 47 + "vue-tsc": "2.0.29" 48 + } 49 + }
examples/openapi-ts-tanstack-vue-query/public/favicon.ico

This is a binary file and will not be displayed.

+157
examples/openapi-ts-tanstack-vue-query/src/App.vue
··· 1 + <script setup lang="ts"> 2 + // import { useMutation, useQuery } from '@tanstack/vue-query' 3 + import { VueQueryDevtools } from '@tanstack/vue-query-devtools' 4 + import { RouterLink, RouterView } from 'vue-router' 5 + import { addPetMutation } from './client/@tanstack/vue-query.gen' 6 + 7 + const addPet = useMutation({ 8 + ...addPetMutation, 9 + onError: (error) => { 10 + console.log(error) 11 + // setIsRequiredNameError(false); 12 + }, 13 + onSuccess: (data) => { 14 + console.log(data) 15 + // setPet(data); 16 + // setIsRequiredNameError(false); 17 + } 18 + }) 19 + 20 + const mutate = () => { 21 + addPet.mutate({ 22 + body: { 23 + category: { 24 + id: 0, 25 + // name: formData.get('category') as string, 26 + name: 'Cats' 27 + }, 28 + id: 0, 29 + // name: formData.get('name') as string, 30 + name: 'Kitty', 31 + photoUrls: ['string'], 32 + status: 'available', 33 + tags: [ 34 + { 35 + id: 0, 36 + name: 'string' 37 + } 38 + ] 39 + } 40 + }) 41 + } 42 + </script> 43 + 44 + <template> 45 + <header> 46 + <img 47 + alt="Hey API logo" 48 + class="logo" 49 + src="https://heyapi.vercel.app/logo.png" 50 + width="125" 51 + height="125" 52 + /> 53 + 54 + <div class="wrapper"> 55 + <div class="greetings"> 56 + <h1 class="green">@hey-api/openapi-ts 🤝 TanStack Vue Query</h1> 57 + </div> 58 + 59 + <button @click="mutate" type="button">Mutate</button> 60 + <!-- <nav> 61 + <RouterLink to="/">Home</RouterLink> 62 + <RouterLink to="/about">About</RouterLink> 63 + </nav> --> 64 + </div> 65 + </header> 66 + 67 + <RouterView /> 68 + <VueQueryDevtools /> 69 + </template> 70 + 71 + <style scoped> 72 + header { 73 + line-height: 1.5; 74 + max-height: 100vh; 75 + } 76 + 77 + .logo { 78 + display: block; 79 + margin: 0 auto 2rem; 80 + } 81 + 82 + nav { 83 + width: 100%; 84 + font-size: 12px; 85 + text-align: center; 86 + margin-top: 2rem; 87 + } 88 + 89 + nav a.router-link-exact-active { 90 + color: var(--color-text); 91 + } 92 + 93 + nav a.router-link-exact-active:hover { 94 + background-color: transparent; 95 + } 96 + 97 + nav a { 98 + display: inline-block; 99 + padding: 0 1rem; 100 + border-left: 1px solid var(--color-border); 101 + } 102 + 103 + nav a:first-of-type { 104 + border: 0; 105 + } 106 + 107 + @media (min-width: 1024px) { 108 + header { 109 + display: flex; 110 + place-items: center; 111 + padding-right: calc(var(--section-gap) / 2); 112 + } 113 + 114 + .logo { 115 + margin: 0 2rem 0 0; 116 + } 117 + 118 + header .wrapper { 119 + display: flex; 120 + place-items: flex-start; 121 + flex-wrap: wrap; 122 + } 123 + 124 + nav { 125 + text-align: left; 126 + margin-left: -1rem; 127 + font-size: 1rem; 128 + 129 + padding: 1rem 0; 130 + margin-top: 1rem; 131 + } 132 + } 133 + 134 + /* from HelloWorld component */ 135 + h1 { 136 + font-size: 2rem; 137 + font-weight: 500; 138 + position: relative; 139 + top: -10px; 140 + } 141 + 142 + h3 { 143 + font-size: 1.2rem; 144 + } 145 + 146 + .greetings h1, 147 + .greetings h3 { 148 + text-align: center; 149 + } 150 + 151 + @media (min-width: 1024px) { 152 + .greetings h1, 153 + .greetings h3 { 154 + text-align: left; 155 + } 156 + } 157 + </style>
+86
examples/openapi-ts-tanstack-vue-query/src/assets/base.css
··· 1 + /* color palette from <https://github.com/vuejs/theme> */ 2 + :root { 3 + --vt-c-white: #ffffff; 4 + --vt-c-white-soft: #f8f8f8; 5 + --vt-c-white-mute: #f2f2f2; 6 + 7 + --vt-c-black: #181818; 8 + --vt-c-black-soft: #222222; 9 + --vt-c-black-mute: #282828; 10 + 11 + --vt-c-indigo: #2c3e50; 12 + 13 + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); 14 + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); 15 + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); 16 + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); 17 + 18 + --vt-c-text-light-1: var(--vt-c-indigo); 19 + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); 20 + --vt-c-text-dark-1: var(--vt-c-white); 21 + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); 22 + } 23 + 24 + /* semantic color variables for this project */ 25 + :root { 26 + --color-background: var(--vt-c-white); 27 + --color-background-soft: var(--vt-c-white-soft); 28 + --color-background-mute: var(--vt-c-white-mute); 29 + 30 + --color-border: var(--vt-c-divider-light-2); 31 + --color-border-hover: var(--vt-c-divider-light-1); 32 + 33 + --color-heading: var(--vt-c-text-light-1); 34 + --color-text: var(--vt-c-text-light-1); 35 + 36 + --section-gap: 160px; 37 + } 38 + 39 + @media (prefers-color-scheme: dark) { 40 + :root { 41 + --color-background: var(--vt-c-black); 42 + --color-background-soft: var(--vt-c-black-soft); 43 + --color-background-mute: var(--vt-c-black-mute); 44 + 45 + --color-border: var(--vt-c-divider-dark-2); 46 + --color-border-hover: var(--vt-c-divider-dark-1); 47 + 48 + --color-heading: var(--vt-c-text-dark-1); 49 + --color-text: var(--vt-c-text-dark-2); 50 + } 51 + } 52 + 53 + *, 54 + *::before, 55 + *::after { 56 + box-sizing: border-box; 57 + margin: 0; 58 + font-weight: normal; 59 + } 60 + 61 + body { 62 + min-height: 100vh; 63 + color: var(--color-text); 64 + background: var(--color-background); 65 + transition: 66 + color 0.5s, 67 + background-color 0.5s; 68 + line-height: 1.6; 69 + font-family: 70 + Inter, 71 + -apple-system, 72 + BlinkMacSystemFont, 73 + 'Segoe UI', 74 + Roboto, 75 + Oxygen, 76 + Ubuntu, 77 + Cantarell, 78 + 'Fira Sans', 79 + 'Droid Sans', 80 + 'Helvetica Neue', 81 + sans-serif; 82 + font-size: 15px; 83 + text-rendering: optimizeLegibility; 84 + -webkit-font-smoothing: antialiased; 85 + -moz-osx-font-smoothing: grayscale; 86 + }
+35
examples/openapi-ts-tanstack-vue-query/src/assets/main.css
··· 1 + @import './base.css'; 2 + 3 + #app { 4 + max-width: 1280px; 5 + margin: 0 auto; 6 + padding: 2rem; 7 + font-weight: normal; 8 + } 9 + 10 + a, 11 + .green { 12 + text-decoration: none; 13 + color: hsla(160, 100%, 37%, 1); 14 + transition: 0.4s; 15 + padding: 3px; 16 + } 17 + 18 + @media (hover: hover) { 19 + a:hover { 20 + background-color: hsla(160, 100%, 37%, 0.2); 21 + } 22 + } 23 + 24 + @media (min-width: 1024px) { 25 + body { 26 + display: flex; 27 + place-items: center; 28 + } 29 + 30 + #app { 31 + display: grid; 32 + grid-template-columns: 1fr 1fr; 33 + padding: 0 2rem; 34 + } 35 + }
+484
examples/openapi-ts-tanstack-vue-query/src/client/@tanstack/vue-query.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import type { Options } from '@hey-api/client-fetch' 4 + import { type DefaultError, queryOptions, type UseMutationOptions } from '@tanstack/vue-query' 5 + 6 + import { 7 + addPet, 8 + createUser, 9 + createUsersWithListInput, 10 + deleteOrder, 11 + deletePet, 12 + deleteUser, 13 + findPetsByStatus, 14 + findPetsByTags, 15 + getInventory, 16 + getOrderById, 17 + getPetById, 18 + getUserByName, 19 + loginUser, 20 + logoutUser, 21 + placeOrder, 22 + updatePet, 23 + updatePetWithForm, 24 + updateUser, 25 + uploadFile 26 + } from '../services.gen' 27 + import type { 28 + AddPetData, 29 + AddPetError, 30 + AddPetResponse, 31 + CreateUserData, 32 + CreateUserError, 33 + CreateUserResponse, 34 + CreateUsersWithListInputData, 35 + CreateUsersWithListInputError, 36 + CreateUsersWithListInputResponse, 37 + DeleteOrderData, 38 + DeletePetData, 39 + DeleteUserData, 40 + FindPetsByStatusData, 41 + FindPetsByTagsData, 42 + GetOrderByIdData, 43 + GetPetByIdData, 44 + GetUserByNameData, 45 + LoginUserData, 46 + PlaceOrderData, 47 + PlaceOrderError, 48 + PlaceOrderResponse, 49 + UpdatePetData, 50 + UpdatePetError, 51 + UpdatePetResponse, 52 + UpdatePetWithFormData, 53 + UpdateUserData, 54 + UpdateUserError, 55 + UpdateUserResponse, 56 + UploadFileData, 57 + UploadFileError, 58 + UploadFileResponse 59 + } from '../types.gen' 60 + 61 + type QueryKey<TOptions extends Options> = [ 62 + { 63 + infinite?: boolean 64 + params: Pick<TOptions, 'body' | 'headers' | 'path' | 'query'> 65 + scope: string 66 + } 67 + ] 68 + 69 + const createQueryKeyParams = <TOptions extends Options>( 70 + options?: TOptions 71 + ): QueryKey<TOptions>[0]['params'] => { 72 + const params: QueryKey<TOptions>[0]['params'] = {} as QueryKey<TOptions>[0]['params'] 73 + if (options?.body) { 74 + params.body = options.body 75 + } 76 + if (options?.headers) { 77 + params.headers = options.headers 78 + } 79 + if (options?.path) { 80 + params.path = options.path 81 + } 82 + if (options?.query) { 83 + params.query = options.query 84 + } 85 + return params 86 + } 87 + 88 + export const addPetOptions = (options: Options<AddPetData>) => 89 + queryOptions({ 90 + queryFn: async ({ queryKey }) => { 91 + const { data } = await addPet({ 92 + ...options, 93 + ...queryKey[0].params, 94 + throwOnError: true 95 + }) 96 + return data 97 + }, 98 + queryKey: [ 99 + { 100 + params: createQueryKeyParams(options), 101 + scope: 'addPet' 102 + } 103 + ] 104 + }) 105 + 106 + export const addPetMutation: UseMutationOptions< 107 + AddPetResponse, 108 + AddPetError, 109 + Options<AddPetData> 110 + > = { 111 + mutationFn: async (options) => { 112 + const { data } = await addPet({ 113 + ...options, 114 + throwOnError: true 115 + }) 116 + return data 117 + } 118 + } 119 + 120 + export const updatePetMutation: UseMutationOptions< 121 + UpdatePetResponse, 122 + UpdatePetError, 123 + Options<UpdatePetData> 124 + > = { 125 + mutationFn: async (options) => { 126 + const { data } = await updatePet({ 127 + ...options, 128 + throwOnError: true 129 + }) 130 + return data 131 + } 132 + } 133 + 134 + export const findPetsByStatusOptions = (options?: Options<FindPetsByStatusData>) => 135 + queryOptions({ 136 + queryFn: async ({ queryKey }) => { 137 + const { data } = await findPetsByStatus({ 138 + ...options, 139 + ...queryKey[0].params, 140 + throwOnError: true 141 + }) 142 + return data 143 + }, 144 + queryKey: [ 145 + { 146 + params: createQueryKeyParams(options), 147 + scope: 'findPetsByStatus' 148 + } 149 + ] 150 + }) 151 + 152 + export const findPetsByTagsOptions = (options?: Options<FindPetsByTagsData>) => 153 + queryOptions({ 154 + queryFn: async ({ queryKey }) => { 155 + const { data } = await findPetsByTags({ 156 + ...options, 157 + ...queryKey[0].params, 158 + throwOnError: true 159 + }) 160 + return data 161 + }, 162 + queryKey: [ 163 + { 164 + params: createQueryKeyParams(options), 165 + scope: 'findPetsByTags' 166 + } 167 + ] 168 + }) 169 + 170 + export const getPetByIdOptions = (options: Options<GetPetByIdData>) => 171 + queryOptions({ 172 + queryFn: async ({ queryKey }) => { 173 + const { data } = await getPetById({ 174 + ...options, 175 + ...queryKey[0].params, 176 + throwOnError: true 177 + }) 178 + return data 179 + }, 180 + queryKey: [ 181 + { 182 + params: createQueryKeyParams(options), 183 + scope: 'getPetById' 184 + } 185 + ] 186 + }) 187 + 188 + export const updatePetWithFormOptions = (options: Options<UpdatePetWithFormData>) => 189 + queryOptions({ 190 + queryFn: async ({ queryKey }) => { 191 + const { data } = await updatePetWithForm({ 192 + ...options, 193 + ...queryKey[0].params, 194 + throwOnError: true 195 + }) 196 + return data 197 + }, 198 + queryKey: [ 199 + { 200 + params: createQueryKeyParams(options), 201 + scope: 'updatePetWithForm' 202 + } 203 + ] 204 + }) 205 + 206 + export const updatePetWithFormMutation: UseMutationOptions< 207 + void, 208 + DefaultError, 209 + Options<UpdatePetWithFormData> 210 + > = { 211 + mutationFn: async (options) => { 212 + const { data } = await updatePetWithForm({ 213 + ...options, 214 + throwOnError: true 215 + }) 216 + return data 217 + } 218 + } 219 + 220 + export const deletePetMutation: UseMutationOptions<void, DefaultError, Options<DeletePetData>> = { 221 + mutationFn: async (options) => { 222 + const { data } = await deletePet({ 223 + ...options, 224 + throwOnError: true 225 + }) 226 + return data 227 + } 228 + } 229 + 230 + export const uploadFileOptions = (options: Options<UploadFileData>) => 231 + queryOptions({ 232 + queryFn: async ({ queryKey }) => { 233 + const { data } = await uploadFile({ 234 + ...options, 235 + ...queryKey[0].params, 236 + throwOnError: true 237 + }) 238 + return data 239 + }, 240 + queryKey: [ 241 + { 242 + params: createQueryKeyParams(options), 243 + scope: 'uploadFile' 244 + } 245 + ] 246 + }) 247 + 248 + export const uploadFileMutation: UseMutationOptions< 249 + UploadFileResponse, 250 + UploadFileError, 251 + Options<UploadFileData> 252 + > = { 253 + mutationFn: async (options) => { 254 + const { data } = await uploadFile({ 255 + ...options, 256 + throwOnError: true 257 + }) 258 + return data 259 + } 260 + } 261 + 262 + export const getInventoryOptions = (options?: Options) => 263 + queryOptions({ 264 + queryFn: async ({ queryKey }) => { 265 + const { data } = await getInventory({ 266 + ...options, 267 + ...queryKey[0].params, 268 + throwOnError: true 269 + }) 270 + return data 271 + }, 272 + queryKey: [ 273 + { 274 + params: createQueryKeyParams(options), 275 + scope: 'getInventory' 276 + } 277 + ] 278 + }) 279 + 280 + export const placeOrderOptions = (options?: Options<PlaceOrderData>) => 281 + queryOptions({ 282 + queryFn: async ({ queryKey }) => { 283 + const { data } = await placeOrder({ 284 + ...options, 285 + ...queryKey[0].params, 286 + throwOnError: true 287 + }) 288 + return data 289 + }, 290 + queryKey: [ 291 + { 292 + params: createQueryKeyParams(options), 293 + scope: 'placeOrder' 294 + } 295 + ] 296 + }) 297 + 298 + export const placeOrderMutation: UseMutationOptions< 299 + PlaceOrderResponse, 300 + PlaceOrderError, 301 + Options<PlaceOrderData> 302 + > = { 303 + mutationFn: async (options) => { 304 + const { data } = await placeOrder({ 305 + ...options, 306 + throwOnError: true 307 + }) 308 + return data 309 + } 310 + } 311 + 312 + export const getOrderByIdOptions = (options: Options<GetOrderByIdData>) => 313 + queryOptions({ 314 + queryFn: async ({ queryKey }) => { 315 + const { data } = await getOrderById({ 316 + ...options, 317 + ...queryKey[0].params, 318 + throwOnError: true 319 + }) 320 + return data 321 + }, 322 + queryKey: [ 323 + { 324 + params: createQueryKeyParams(options), 325 + scope: 'getOrderById' 326 + } 327 + ] 328 + }) 329 + 330 + export const deleteOrderMutation: UseMutationOptions< 331 + void, 332 + DefaultError, 333 + Options<DeleteOrderData> 334 + > = { 335 + mutationFn: async (options) => { 336 + const { data } = await deleteOrder({ 337 + ...options, 338 + throwOnError: true 339 + }) 340 + return data 341 + } 342 + } 343 + 344 + export const createUserOptions = (options?: Options<CreateUserData>) => 345 + queryOptions({ 346 + queryFn: async ({ queryKey }) => { 347 + const { data } = await createUser({ 348 + ...options, 349 + ...queryKey[0].params, 350 + throwOnError: true 351 + }) 352 + return data 353 + }, 354 + queryKey: [ 355 + { 356 + params: createQueryKeyParams(options), 357 + scope: 'createUser' 358 + } 359 + ] 360 + }) 361 + 362 + export const createUserMutation: UseMutationOptions< 363 + CreateUserResponse, 364 + CreateUserError, 365 + Options<CreateUserData> 366 + > = { 367 + mutationFn: async (options) => { 368 + const { data } = await createUser({ 369 + ...options, 370 + throwOnError: true 371 + }) 372 + return data 373 + } 374 + } 375 + 376 + export const createUsersWithListInputOptions = (options?: Options<CreateUsersWithListInputData>) => 377 + queryOptions({ 378 + queryFn: async ({ queryKey }) => { 379 + const { data } = await createUsersWithListInput({ 380 + ...options, 381 + ...queryKey[0].params, 382 + throwOnError: true 383 + }) 384 + return data 385 + }, 386 + queryKey: [ 387 + { 388 + params: createQueryKeyParams(options), 389 + scope: 'createUsersWithListInput' 390 + } 391 + ] 392 + }) 393 + 394 + export const createUsersWithListInputMutation: UseMutationOptions< 395 + CreateUsersWithListInputResponse, 396 + CreateUsersWithListInputError, 397 + Options<CreateUsersWithListInputData> 398 + > = { 399 + mutationFn: async (options) => { 400 + const { data } = await createUsersWithListInput({ 401 + ...options, 402 + throwOnError: true 403 + }) 404 + return data 405 + } 406 + } 407 + 408 + export const loginUserOptions = (options?: Options<LoginUserData>) => 409 + queryOptions({ 410 + queryFn: async ({ queryKey }) => { 411 + const { data } = await loginUser({ 412 + ...options, 413 + ...queryKey[0].params, 414 + throwOnError: true 415 + }) 416 + return data 417 + }, 418 + queryKey: [ 419 + { 420 + params: createQueryKeyParams(options), 421 + scope: 'loginUser' 422 + } 423 + ] 424 + }) 425 + 426 + export const logoutUserOptions = (options?: Options) => 427 + queryOptions({ 428 + queryFn: async ({ queryKey }) => { 429 + const { data } = await logoutUser({ 430 + ...options, 431 + ...queryKey[0].params, 432 + throwOnError: true 433 + }) 434 + return data 435 + }, 436 + queryKey: [ 437 + { 438 + params: createQueryKeyParams(options), 439 + scope: 'logoutUser' 440 + } 441 + ] 442 + }) 443 + 444 + export const getUserByNameOptions = (options: Options<GetUserByNameData>) => 445 + queryOptions({ 446 + queryFn: async ({ queryKey }) => { 447 + const { data } = await getUserByName({ 448 + ...options, 449 + ...queryKey[0].params, 450 + throwOnError: true 451 + }) 452 + return data 453 + }, 454 + queryKey: [ 455 + { 456 + params: createQueryKeyParams(options), 457 + scope: 'getUserByName' 458 + } 459 + ] 460 + }) 461 + 462 + export const updateUserMutation: UseMutationOptions< 463 + UpdateUserResponse, 464 + UpdateUserError, 465 + Options<UpdateUserData> 466 + > = { 467 + mutationFn: async (options) => { 468 + const { data } = await updateUser({ 469 + ...options, 470 + throwOnError: true 471 + }) 472 + return data 473 + } 474 + } 475 + 476 + export const deleteUserMutation: UseMutationOptions<void, DefaultError, Options<DeleteUserData>> = { 477 + mutationFn: async (options) => { 478 + const { data } = await deleteUser({ 479 + ...options, 480 + throwOnError: true 481 + }) 482 + return data 483 + } 484 + }
+4
examples/openapi-ts-tanstack-vue-query/src/client/index.ts
··· 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'
+244
examples/openapi-ts-tanstack-vue-query/src/client/schemas.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export const $Order = { 4 + properties: { 5 + complete: { 6 + type: 'boolean' 7 + }, 8 + id: { 9 + example: 10, 10 + format: 'int64', 11 + type: 'integer' 12 + }, 13 + petId: { 14 + example: 198772, 15 + format: 'int64', 16 + type: 'integer' 17 + }, 18 + quantity: { 19 + example: 7, 20 + format: 'int32', 21 + type: 'integer' 22 + }, 23 + shipDate: { 24 + format: 'date-time', 25 + type: 'string' 26 + }, 27 + status: { 28 + description: 'Order Status', 29 + enum: ['placed', 'approved', 'delivered'], 30 + example: 'approved', 31 + type: 'string' 32 + } 33 + }, 34 + type: 'object', 35 + 'x-swagger-router-model': 'io.swagger.petstore.model.Order', 36 + xml: { 37 + name: 'order' 38 + } 39 + } as const 40 + 41 + export const $Customer = { 42 + properties: { 43 + address: { 44 + items: { 45 + $ref: '#/components/schemas/Address' 46 + }, 47 + type: 'array', 48 + xml: { 49 + name: 'addresses', 50 + wrapped: true 51 + } 52 + }, 53 + id: { 54 + example: 100000, 55 + format: 'int64', 56 + type: 'integer' 57 + }, 58 + username: { 59 + example: 'fehguy', 60 + type: 'string' 61 + } 62 + }, 63 + type: 'object', 64 + xml: { 65 + name: 'customer' 66 + } 67 + } as const 68 + 69 + export const $Address = { 70 + properties: { 71 + city: { 72 + example: 'Palo Alto', 73 + type: 'string' 74 + }, 75 + state: { 76 + example: 'CA', 77 + type: 'string' 78 + }, 79 + street: { 80 + example: '437 Lytton', 81 + type: 'string' 82 + }, 83 + zip: { 84 + example: 94301, 85 + type: 'string' 86 + } 87 + }, 88 + type: 'object', 89 + xml: { 90 + name: 'address' 91 + } 92 + } as const 93 + 94 + export const $Category = { 95 + properties: { 96 + id: { 97 + example: 1, 98 + format: 'int64', 99 + type: 'integer' 100 + }, 101 + name: { 102 + example: 'Dogs', 103 + type: 'string' 104 + } 105 + }, 106 + type: 'object', 107 + 'x-swagger-router-model': 'io.swagger.petstore.model.Category', 108 + xml: { 109 + name: 'category' 110 + } 111 + } as const 112 + 113 + export const $User = { 114 + properties: { 115 + email: { 116 + example: 'john@email.com', 117 + type: 'string' 118 + }, 119 + firstName: { 120 + example: 'John', 121 + type: 'string' 122 + }, 123 + id: { 124 + example: 10, 125 + format: 'int64', 126 + type: 'integer' 127 + }, 128 + lastName: { 129 + example: 'James', 130 + type: 'string' 131 + }, 132 + password: { 133 + example: 12345, 134 + type: 'string' 135 + }, 136 + phone: { 137 + example: 12345, 138 + type: 'string' 139 + }, 140 + userStatus: { 141 + description: 'User Status', 142 + example: 1, 143 + format: 'int32', 144 + type: 'integer' 145 + }, 146 + username: { 147 + example: 'theUser', 148 + type: 'string' 149 + } 150 + }, 151 + type: 'object', 152 + 'x-swagger-router-model': 'io.swagger.petstore.model.User', 153 + xml: { 154 + name: 'user' 155 + } 156 + } as const 157 + 158 + export const $Tag = { 159 + properties: { 160 + id: { 161 + format: 'int64', 162 + type: 'integer' 163 + }, 164 + name: { 165 + type: 'string' 166 + } 167 + }, 168 + type: 'object', 169 + 'x-swagger-router-model': 'io.swagger.petstore.model.Tag', 170 + xml: { 171 + name: 'tag' 172 + } 173 + } as const 174 + 175 + export const $Pet = { 176 + properties: { 177 + category: { 178 + $ref: '#/components/schemas/Category' 179 + }, 180 + id: { 181 + example: 10, 182 + format: 'int64', 183 + type: 'integer' 184 + }, 185 + name: { 186 + example: 'doggie', 187 + type: 'string' 188 + }, 189 + photoUrls: { 190 + items: { 191 + type: 'string', 192 + xml: { 193 + name: 'photoUrl' 194 + } 195 + }, 196 + type: 'array', 197 + xml: { 198 + wrapped: true 199 + } 200 + }, 201 + status: { 202 + description: 'pet status in the store', 203 + enum: ['available', 'pending', 'sold'], 204 + type: 'string' 205 + }, 206 + tags: { 207 + items: { 208 + $ref: '#/components/schemas/Tag', 209 + xml: { 210 + name: 'tag' 211 + } 212 + }, 213 + type: 'array', 214 + xml: { 215 + wrapped: true 216 + } 217 + } 218 + }, 219 + required: ['name', 'photoUrls'], 220 + type: 'object', 221 + 'x-swagger-router-model': 'io.swagger.petstore.model.Pet', 222 + xml: { 223 + name: 'pet' 224 + } 225 + } as const 226 + 227 + export const $ApiResponse = { 228 + properties: { 229 + code: { 230 + format: 'int32', 231 + type: 'integer' 232 + }, 233 + message: { 234 + type: 'string' 235 + }, 236 + type: { 237 + type: 'string' 238 + } 239 + }, 240 + type: 'object', 241 + xml: { 242 + name: '##default' 243 + } 244 + } as const
+281
examples/openapi-ts-tanstack-vue-query/src/client/services.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + import { createClient, createConfig, type Options } from '@hey-api/client-fetch' 4 + 5 + import type { 6 + AddPetData, 7 + AddPetError, 8 + AddPetResponse, 9 + CreateUserData, 10 + CreateUserError, 11 + CreateUserResponse, 12 + CreateUsersWithListInputData, 13 + CreateUsersWithListInputError, 14 + CreateUsersWithListInputResponse, 15 + DeleteOrderData, 16 + DeletePetData, 17 + DeleteUserData, 18 + FindPetsByStatusData, 19 + FindPetsByStatusError, 20 + FindPetsByStatusResponse, 21 + FindPetsByTagsData, 22 + FindPetsByTagsError, 23 + FindPetsByTagsResponse, 24 + GetInventoryError, 25 + GetInventoryResponse, 26 + GetOrderByIdData, 27 + GetOrderByIdError, 28 + GetOrderByIdResponse, 29 + GetPetByIdData, 30 + GetPetByIdError, 31 + GetPetByIdResponse, 32 + GetUserByNameData, 33 + GetUserByNameError, 34 + GetUserByNameResponse, 35 + LoginUserData, 36 + LoginUserError, 37 + LoginUserResponse, 38 + LogoutUserError, 39 + LogoutUserResponse, 40 + PlaceOrderData, 41 + PlaceOrderError, 42 + PlaceOrderResponse, 43 + UpdatePetData, 44 + UpdatePetError, 45 + UpdatePetResponse, 46 + UpdatePetWithFormData, 47 + UpdateUserData, 48 + UpdateUserError, 49 + UpdateUserResponse, 50 + UploadFileData, 51 + UploadFileError, 52 + UploadFileResponse 53 + } from './types.gen' 54 + 55 + export const client = createClient(createConfig()) 56 + 57 + /** 58 + * Add a new pet to the store 59 + * Add a new pet to the store 60 + */ 61 + export const addPet = <ThrowOnError extends boolean = false>( 62 + options: Options<AddPetData, ThrowOnError> 63 + ) => 64 + (options?.client ?? client).post<AddPetResponse, AddPetError, ThrowOnError>({ 65 + ...options, 66 + url: '/pet' 67 + }) 68 + 69 + /** 70 + * Update an existing pet 71 + * Update an existing pet by Id 72 + */ 73 + export const updatePet = <ThrowOnError extends boolean = false>( 74 + options: Options<UpdatePetData, ThrowOnError> 75 + ) => 76 + (options?.client ?? client).put<UpdatePetResponse, UpdatePetError, ThrowOnError>({ 77 + ...options, 78 + url: '/pet' 79 + }) 80 + 81 + /** 82 + * Finds Pets by status 83 + * Multiple status values can be provided with comma separated strings 84 + */ 85 + export const findPetsByStatus = <ThrowOnError extends boolean = false>( 86 + options?: Options<FindPetsByStatusData, ThrowOnError> 87 + ) => 88 + (options?.client ?? client).get<FindPetsByStatusResponse, FindPetsByStatusError, ThrowOnError>({ 89 + ...options, 90 + url: '/pet/findByStatus' 91 + }) 92 + 93 + /** 94 + * Finds Pets by tags 95 + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. 96 + */ 97 + export const findPetsByTags = <ThrowOnError extends boolean = false>( 98 + options?: Options<FindPetsByTagsData, ThrowOnError> 99 + ) => 100 + (options?.client ?? client).get<FindPetsByTagsResponse, FindPetsByTagsError, ThrowOnError>({ 101 + ...options, 102 + url: '/pet/findByTags' 103 + }) 104 + 105 + /** 106 + * Find pet by ID 107 + * Returns a single pet 108 + */ 109 + export const getPetById = <ThrowOnError extends boolean = false>( 110 + options: Options<GetPetByIdData, ThrowOnError> 111 + ) => 112 + (options?.client ?? client).get<GetPetByIdResponse, GetPetByIdError, ThrowOnError>({ 113 + ...options, 114 + url: '/pet/{petId}' 115 + }) 116 + 117 + /** 118 + * Updates a pet in the store with form data 119 + */ 120 + export const updatePetWithForm = <ThrowOnError extends boolean = false>( 121 + options: Options<UpdatePetWithFormData, ThrowOnError> 122 + ) => 123 + (options?.client ?? client).post<void, unknown, ThrowOnError>({ 124 + ...options, 125 + url: '/pet/{petId}' 126 + }) 127 + 128 + /** 129 + * Deletes a pet 130 + */ 131 + export const deletePet = <ThrowOnError extends boolean = false>( 132 + options: Options<DeletePetData, ThrowOnError> 133 + ) => 134 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 135 + ...options, 136 + url: '/pet/{petId}' 137 + }) 138 + 139 + /** 140 + * uploads an image 141 + */ 142 + export const uploadFile = <ThrowOnError extends boolean = false>( 143 + options: Options<UploadFileData, ThrowOnError> 144 + ) => 145 + (options?.client ?? client).post<UploadFileResponse, UploadFileError, ThrowOnError>({ 146 + ...options, 147 + url: '/pet/{petId}/uploadImage' 148 + }) 149 + 150 + /** 151 + * Returns pet inventories by status 152 + * Returns a map of status codes to quantities 153 + */ 154 + export const getInventory = <ThrowOnError extends boolean = false>( 155 + options?: Options<unknown, ThrowOnError> 156 + ) => 157 + (options?.client ?? client).get<GetInventoryResponse, GetInventoryError, ThrowOnError>({ 158 + ...options, 159 + url: '/store/inventory' 160 + }) 161 + 162 + /** 163 + * Place an order for a pet 164 + * Place a new order in the store 165 + */ 166 + export const placeOrder = <ThrowOnError extends boolean = false>( 167 + options?: Options<PlaceOrderData, ThrowOnError> 168 + ) => 169 + (options?.client ?? client).post<PlaceOrderResponse, PlaceOrderError, ThrowOnError>({ 170 + ...options, 171 + url: '/store/order' 172 + }) 173 + 174 + /** 175 + * Find purchase order by ID 176 + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. 177 + */ 178 + export const getOrderById = <ThrowOnError extends boolean = false>( 179 + options: Options<GetOrderByIdData, ThrowOnError> 180 + ) => 181 + (options?.client ?? client).get<GetOrderByIdResponse, GetOrderByIdError, ThrowOnError>({ 182 + ...options, 183 + url: '/store/order/{orderId}' 184 + }) 185 + 186 + /** 187 + * Delete purchase order by ID 188 + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors 189 + */ 190 + export const deleteOrder = <ThrowOnError extends boolean = false>( 191 + options: Options<DeleteOrderData, ThrowOnError> 192 + ) => 193 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 194 + ...options, 195 + url: '/store/order/{orderId}' 196 + }) 197 + 198 + /** 199 + * Create user 200 + * This can only be done by the logged in user. 201 + */ 202 + export const createUser = <ThrowOnError extends boolean = false>( 203 + options?: Options<CreateUserData, ThrowOnError> 204 + ) => 205 + (options?.client ?? client).post<CreateUserResponse, CreateUserError, ThrowOnError>({ 206 + ...options, 207 + url: '/user' 208 + }) 209 + 210 + /** 211 + * Creates list of users with given input array 212 + * Creates list of users with given input array 213 + */ 214 + export const createUsersWithListInput = <ThrowOnError extends boolean = false>( 215 + options?: Options<CreateUsersWithListInputData, ThrowOnError> 216 + ) => 217 + (options?.client ?? client).post< 218 + CreateUsersWithListInputResponse, 219 + CreateUsersWithListInputError, 220 + ThrowOnError 221 + >({ 222 + ...options, 223 + url: '/user/createWithList' 224 + }) 225 + 226 + /** 227 + * Logs user into the system 228 + */ 229 + export const loginUser = <ThrowOnError extends boolean = false>( 230 + options?: Options<LoginUserData, ThrowOnError> 231 + ) => 232 + (options?.client ?? client).get<LoginUserResponse, LoginUserError, ThrowOnError>({ 233 + ...options, 234 + url: '/user/login' 235 + }) 236 + 237 + /** 238 + * Logs out current logged in user session 239 + */ 240 + export const logoutUser = <ThrowOnError extends boolean = false>( 241 + options?: Options<unknown, ThrowOnError> 242 + ) => 243 + (options?.client ?? client).get<LogoutUserResponse, LogoutUserError, ThrowOnError>({ 244 + ...options, 245 + url: '/user/logout' 246 + }) 247 + 248 + /** 249 + * Get user by user name 250 + */ 251 + export const getUserByName = <ThrowOnError extends boolean = false>( 252 + options: Options<GetUserByNameData, ThrowOnError> 253 + ) => 254 + (options?.client ?? client).get<GetUserByNameResponse, GetUserByNameError, ThrowOnError>({ 255 + ...options, 256 + url: '/user/{username}' 257 + }) 258 + 259 + /** 260 + * Update user 261 + * This can only be done by the logged in user. 262 + */ 263 + export const updateUser = <ThrowOnError extends boolean = false>( 264 + options: Options<UpdateUserData, ThrowOnError> 265 + ) => 266 + (options?.client ?? client).put<UpdateUserResponse, UpdateUserError, ThrowOnError>({ 267 + ...options, 268 + url: '/user/{username}' 269 + }) 270 + 271 + /** 272 + * Delete user 273 + * This can only be done by the logged in user. 274 + */ 275 + export const deleteUser = <ThrowOnError extends boolean = false>( 276 + options: Options<DeleteUserData, ThrowOnError> 277 + ) => 278 + (options?.client ?? client).delete<void, unknown, ThrowOnError>({ 279 + ...options, 280 + url: '/user/{username}' 281 + })
+591
examples/openapi-ts-tanstack-vue-query/src/client/types.gen.ts
··· 1 + // This file is auto-generated by @hey-api/openapi-ts 2 + 3 + export type Order = { 4 + complete?: boolean 5 + id?: number 6 + petId?: number 7 + quantity?: number 8 + shipDate?: string 9 + /** 10 + * Order Status 11 + */ 12 + status?: 'placed' | 'approved' | 'delivered' 13 + } 14 + 15 + /** 16 + * Order Status 17 + */ 18 + export type status = 'placed' | 'approved' | 'delivered' 19 + 20 + /** 21 + * Order Status 22 + */ 23 + export const status = { 24 + APPROVED: 'approved', 25 + DELIVERED: 'delivered', 26 + PLACED: 'placed' 27 + } as const 28 + 29 + export type Customer = { 30 + address?: Array<Address> 31 + id?: number 32 + username?: string 33 + } 34 + 35 + export type Address = { 36 + city?: string 37 + state?: string 38 + street?: string 39 + zip?: string 40 + } 41 + 42 + export type Category = { 43 + id?: number 44 + name?: string 45 + } 46 + 47 + export type User = { 48 + email?: string 49 + firstName?: string 50 + id?: number 51 + lastName?: string 52 + password?: string 53 + phone?: string 54 + /** 55 + * User Status 56 + */ 57 + userStatus?: number 58 + username?: string 59 + } 60 + 61 + export type Tag = { 62 + id?: number 63 + name?: string 64 + } 65 + 66 + export type Pet = { 67 + category?: Category 68 + id?: number 69 + name: string 70 + photoUrls: Array<string> 71 + /** 72 + * pet status in the store 73 + */ 74 + status?: 'available' | 'pending' | 'sold' 75 + tags?: Array<Tag> 76 + } 77 + 78 + /** 79 + * pet status in the store 80 + */ 81 + export type status2 = 'available' | 'pending' | 'sold' 82 + 83 + /** 84 + * pet status in the store 85 + */ 86 + export const status2 = { 87 + AVAILABLE: 'available', 88 + PENDING: 'pending', 89 + SOLD: 'sold' 90 + } as const 91 + 92 + export type ApiResponse = { 93 + code?: number 94 + message?: string 95 + type?: string 96 + } 97 + 98 + export type AddPetData = { 99 + /** 100 + * Create a new pet in the store 101 + */ 102 + body: Pet 103 + } 104 + 105 + export type AddPetResponse = Pet 106 + 107 + export type AddPetError = unknown 108 + 109 + export type UpdatePetData = { 110 + /** 111 + * Update an existent pet in the store 112 + */ 113 + body: Pet 114 + } 115 + 116 + export type UpdatePetResponse = Pet 117 + 118 + export type UpdatePetError = unknown 119 + 120 + export type FindPetsByStatusData = { 121 + query?: { 122 + /** 123 + * Status values that need to be considered for filter 124 + */ 125 + status?: 'available' | 'pending' | 'sold' 126 + } 127 + } 128 + 129 + export type FindPetsByStatusResponse = Array<Pet> 130 + 131 + export type FindPetsByStatusError = unknown 132 + 133 + export type FindPetsByTagsData = { 134 + query?: { 135 + /** 136 + * Tags to filter by 137 + */ 138 + tags?: Array<string> 139 + } 140 + } 141 + 142 + export type FindPetsByTagsResponse = Array<Pet> 143 + 144 + export type FindPetsByTagsError = unknown 145 + 146 + export type GetPetByIdData = { 147 + path: { 148 + /** 149 + * ID of pet to return 150 + */ 151 + petId: number 152 + } 153 + } 154 + 155 + export type GetPetByIdResponse = Pet 156 + 157 + export type GetPetByIdError = unknown 158 + 159 + export type UpdatePetWithFormData = { 160 + path: { 161 + /** 162 + * ID of pet that needs to be updated 163 + */ 164 + petId: number 165 + } 166 + query?: { 167 + /** 168 + * Name of pet that needs to be updated 169 + */ 170 + name?: string 171 + /** 172 + * Status of pet that needs to be updated 173 + */ 174 + status?: string 175 + } 176 + } 177 + 178 + export type DeletePetData = { 179 + headers?: { 180 + api_key?: string 181 + } 182 + path: { 183 + /** 184 + * Pet id to delete 185 + */ 186 + petId: number 187 + } 188 + } 189 + 190 + export type UploadFileData = { 191 + body?: Blob | File 192 + path: { 193 + /** 194 + * ID of pet to update 195 + */ 196 + petId: number 197 + } 198 + query?: { 199 + /** 200 + * Additional Metadata 201 + */ 202 + additionalMetadata?: string 203 + } 204 + } 205 + 206 + export type UploadFileResponse = ApiResponse 207 + 208 + export type UploadFileError = unknown 209 + 210 + export type GetInventoryResponse = { 211 + [key: string]: number 212 + } 213 + 214 + export type GetInventoryError = unknown 215 + 216 + export type PlaceOrderData = { 217 + body?: Order 218 + } 219 + 220 + export type PlaceOrderResponse = Order 221 + 222 + export type PlaceOrderError = unknown 223 + 224 + export type GetOrderByIdData = { 225 + path: { 226 + /** 227 + * ID of order that needs to be fetched 228 + */ 229 + orderId: number 230 + } 231 + } 232 + 233 + export type GetOrderByIdResponse = Order 234 + 235 + export type GetOrderByIdError = unknown 236 + 237 + export type DeleteOrderData = { 238 + path: { 239 + /** 240 + * ID of the order that needs to be deleted 241 + */ 242 + orderId: number 243 + } 244 + } 245 + 246 + export type CreateUserData = { 247 + /** 248 + * Created user object 249 + */ 250 + body?: User 251 + } 252 + 253 + export type CreateUserResponse = User 254 + 255 + export type CreateUserError = unknown 256 + 257 + export type CreateUsersWithListInputData = { 258 + body?: Array<User> 259 + } 260 + 261 + export type CreateUsersWithListInputResponse = User | unknown 262 + 263 + export type CreateUsersWithListInputError = unknown 264 + 265 + export type LoginUserData = { 266 + query?: { 267 + /** 268 + * The password for login in clear text 269 + */ 270 + password?: string 271 + /** 272 + * The user name for login 273 + */ 274 + username?: string 275 + } 276 + } 277 + 278 + export type LoginUserResponse = string 279 + 280 + export type LoginUserError = unknown 281 + 282 + export type LogoutUserResponse = unknown 283 + 284 + export type LogoutUserError = unknown 285 + 286 + export type GetUserByNameData = { 287 + path: { 288 + /** 289 + * The name that needs to be fetched. Use user1 for testing. 290 + */ 291 + username: string 292 + } 293 + } 294 + 295 + export type GetUserByNameResponse = User 296 + 297 + export type GetUserByNameError = unknown 298 + 299 + export type UpdateUserData = { 300 + /** 301 + * Update an existent user in the store 302 + */ 303 + body?: User 304 + path: { 305 + /** 306 + * name that needs to be updated 307 + */ 308 + username: string 309 + } 310 + } 311 + 312 + export type UpdateUserResponse = unknown 313 + 314 + export type UpdateUserError = unknown 315 + 316 + export type DeleteUserData = { 317 + path: { 318 + /** 319 + * The name that needs to be deleted 320 + */ 321 + username: string 322 + } 323 + } 324 + 325 + export type $OpenApiTs = { 326 + '/pet': { 327 + post: { 328 + req: AddPetData 329 + res: { 330 + /** 331 + * Successful operation 332 + */ 333 + '200': Pet 334 + /** 335 + * Invalid input 336 + */ 337 + '405': unknown 338 + } 339 + } 340 + put: { 341 + req: UpdatePetData 342 + res: { 343 + /** 344 + * Successful operation 345 + */ 346 + '200': Pet 347 + /** 348 + * Invalid ID supplied 349 + */ 350 + '400': unknown 351 + /** 352 + * Pet not found 353 + */ 354 + '404': unknown 355 + /** 356 + * Validation exception 357 + */ 358 + '405': unknown 359 + } 360 + } 361 + } 362 + '/pet/findByStatus': { 363 + get: { 364 + req: FindPetsByStatusData 365 + res: { 366 + /** 367 + * successful operation 368 + */ 369 + '200': Array<Pet> 370 + /** 371 + * Invalid status value 372 + */ 373 + '400': unknown 374 + } 375 + } 376 + } 377 + '/pet/findByTags': { 378 + get: { 379 + req: FindPetsByTagsData 380 + res: { 381 + /** 382 + * successful operation 383 + */ 384 + '200': Array<Pet> 385 + /** 386 + * Invalid tag value 387 + */ 388 + '400': unknown 389 + } 390 + } 391 + } 392 + '/pet/{petId}': { 393 + delete: { 394 + req: DeletePetData 395 + res: { 396 + /** 397 + * Invalid pet value 398 + */ 399 + '400': unknown 400 + } 401 + } 402 + get: { 403 + req: GetPetByIdData 404 + res: { 405 + /** 406 + * successful operation 407 + */ 408 + '200': Pet 409 + /** 410 + * Invalid ID supplied 411 + */ 412 + '400': unknown 413 + /** 414 + * Pet not found 415 + */ 416 + '404': unknown 417 + } 418 + } 419 + post: { 420 + req: UpdatePetWithFormData 421 + res: { 422 + /** 423 + * Invalid input 424 + */ 425 + '405': unknown 426 + } 427 + } 428 + } 429 + '/pet/{petId}/uploadImage': { 430 + post: { 431 + req: UploadFileData 432 + res: { 433 + /** 434 + * successful operation 435 + */ 436 + '200': ApiResponse 437 + } 438 + } 439 + } 440 + '/store/inventory': { 441 + get: { 442 + res: { 443 + /** 444 + * successful operation 445 + */ 446 + '200': { 447 + [key: string]: number 448 + } 449 + } 450 + } 451 + } 452 + '/store/order': { 453 + post: { 454 + req: PlaceOrderData 455 + res: { 456 + /** 457 + * successful operation 458 + */ 459 + '200': Order 460 + /** 461 + * Invalid input 462 + */ 463 + '405': unknown 464 + } 465 + } 466 + } 467 + '/store/order/{orderId}': { 468 + delete: { 469 + req: DeleteOrderData 470 + res: { 471 + /** 472 + * Invalid ID supplied 473 + */ 474 + '400': unknown 475 + /** 476 + * Order not found 477 + */ 478 + '404': unknown 479 + } 480 + } 481 + get: { 482 + req: GetOrderByIdData 483 + res: { 484 + /** 485 + * successful operation 486 + */ 487 + '200': Order 488 + /** 489 + * Invalid ID supplied 490 + */ 491 + '400': unknown 492 + /** 493 + * Order not found 494 + */ 495 + '404': unknown 496 + } 497 + } 498 + } 499 + '/user': { 500 + post: { 501 + req: CreateUserData 502 + res: { 503 + /** 504 + * successful operation 505 + */ 506 + default: User 507 + } 508 + } 509 + } 510 + '/user/createWithList': { 511 + post: { 512 + req: CreateUsersWithListInputData 513 + res: { 514 + /** 515 + * Successful operation 516 + */ 517 + '200': User 518 + /** 519 + * successful operation 520 + */ 521 + default: unknown 522 + } 523 + } 524 + } 525 + '/user/login': { 526 + get: { 527 + req: LoginUserData 528 + res: { 529 + /** 530 + * successful operation 531 + */ 532 + '200': string 533 + /** 534 + * Invalid username/password supplied 535 + */ 536 + '400': unknown 537 + } 538 + } 539 + } 540 + '/user/logout': { 541 + get: { 542 + res: { 543 + /** 544 + * successful operation 545 + */ 546 + default: unknown 547 + } 548 + } 549 + } 550 + '/user/{username}': { 551 + delete: { 552 + req: DeleteUserData 553 + res: { 554 + /** 555 + * Invalid username supplied 556 + */ 557 + '400': unknown 558 + /** 559 + * User not found 560 + */ 561 + '404': unknown 562 + } 563 + } 564 + get: { 565 + req: GetUserByNameData 566 + res: { 567 + /** 568 + * successful operation 569 + */ 570 + '200': User 571 + /** 572 + * Invalid username supplied 573 + */ 574 + '400': unknown 575 + /** 576 + * User not found 577 + */ 578 + '404': unknown 579 + } 580 + } 581 + put: { 582 + req: UpdateUserData 583 + res: { 584 + /** 585 + * successful operation 586 + */ 587 + default: unknown 588 + } 589 + } 590 + } 591 + }
+88
examples/openapi-ts-tanstack-vue-query/src/components/TheWelcome.vue
··· 1 + <script setup lang="ts"> 2 + import WelcomeItem from './WelcomeItem.vue' 3 + import DocumentationIcon from './icons/IconDocumentation.vue' 4 + import ToolingIcon from './icons/IconTooling.vue' 5 + import EcosystemIcon from './icons/IconEcosystem.vue' 6 + import CommunityIcon from './icons/IconCommunity.vue' 7 + import SupportIcon from './icons/IconSupport.vue' 8 + </script> 9 + 10 + <template> 11 + <WelcomeItem> 12 + <template #icon> 13 + <DocumentationIcon /> 14 + </template> 15 + <template #heading>Documentation</template> 16 + 17 + Vue’s 18 + <a href="https://vuejs.org/" target="_blank" rel="noopener">official documentation</a> 19 + provides you with all information you need to get started. 20 + </WelcomeItem> 21 + 22 + <WelcomeItem> 23 + <template #icon> 24 + <ToolingIcon /> 25 + </template> 26 + <template #heading>Tooling</template> 27 + 28 + This project is served and bundled with 29 + <a href="https://vitejs.dev/guide/features.html" target="_blank" rel="noopener">Vite</a>. The 30 + recommended IDE setup is 31 + <a href="https://code.visualstudio.com/" target="_blank" rel="noopener">VSCode</a> + 32 + <a href="https://github.com/johnsoncodehk/volar" target="_blank" rel="noopener">Volar</a>. If 33 + you need to test your components and web pages, check out 34 + <a href="https://www.cypress.io/" target="_blank" rel="noopener">Cypress</a> and 35 + <a href="https://on.cypress.io/component" target="_blank" rel="noopener" 36 + >Cypress Component Testing</a 37 + >. 38 + 39 + <br /> 40 + 41 + More instructions are available in <code>README.md</code>. 42 + </WelcomeItem> 43 + 44 + <WelcomeItem> 45 + <template #icon> 46 + <EcosystemIcon /> 47 + </template> 48 + <template #heading>Ecosystem</template> 49 + 50 + Get official tools and libraries for your project: 51 + <a href="https://pinia.vuejs.org/" target="_blank" rel="noopener">Pinia</a>, 52 + <a href="https://router.vuejs.org/" target="_blank" rel="noopener">Vue Router</a>, 53 + <a href="https://test-utils.vuejs.org/" target="_blank" rel="noopener">Vue Test Utils</a>, and 54 + <a href="https://github.com/vuejs/devtools" target="_blank" rel="noopener">Vue Dev Tools</a>. If 55 + you need more resources, we suggest paying 56 + <a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">Awesome Vue</a> 57 + a visit. 58 + </WelcomeItem> 59 + 60 + <WelcomeItem> 61 + <template #icon> 62 + <CommunityIcon /> 63 + </template> 64 + <template #heading>Community</template> 65 + 66 + Got stuck? Ask your question on 67 + <a href="https://chat.vuejs.org" target="_blank" rel="noopener">Vue Land</a>, our official 68 + Discord server, or 69 + <a href="https://stackoverflow.com/questions/tagged/vue.js" target="_blank" rel="noopener" 70 + >StackOverflow</a 71 + >. You should also subscribe to 72 + <a href="https://news.vuejs.org" target="_blank" rel="noopener">our mailing list</a> and follow 73 + the official 74 + <a href="https://twitter.com/vuejs" target="_blank" rel="noopener">@vuejs</a> 75 + twitter account for latest news in the Vue world. 76 + </WelcomeItem> 77 + 78 + <WelcomeItem> 79 + <template #icon> 80 + <SupportIcon /> 81 + </template> 82 + <template #heading>Support Vue</template> 83 + 84 + As an independent project, Vue relies on community backing for its sustainability. You can help 85 + us by 86 + <a href="https://vuejs.org/sponsor/" target="_blank" rel="noopener">becoming a sponsor</a>. 87 + </WelcomeItem> 88 + </template>
+87
examples/openapi-ts-tanstack-vue-query/src/components/WelcomeItem.vue
··· 1 + <template> 2 + <div class="item"> 3 + <i> 4 + <slot name="icon"></slot> 5 + </i> 6 + <div class="details"> 7 + <h3> 8 + <slot name="heading"></slot> 9 + </h3> 10 + <slot></slot> 11 + </div> 12 + </div> 13 + </template> 14 + 15 + <style scoped> 16 + .item { 17 + margin-top: 2rem; 18 + display: flex; 19 + position: relative; 20 + } 21 + 22 + .details { 23 + flex: 1; 24 + margin-left: 1rem; 25 + } 26 + 27 + i { 28 + display: flex; 29 + place-items: center; 30 + place-content: center; 31 + width: 32px; 32 + height: 32px; 33 + 34 + color: var(--color-text); 35 + } 36 + 37 + h3 { 38 + font-size: 1.2rem; 39 + font-weight: 500; 40 + margin-bottom: 0.4rem; 41 + color: var(--color-heading); 42 + } 43 + 44 + @media (min-width: 1024px) { 45 + .item { 46 + margin-top: 0; 47 + padding: 0.4rem 0 1rem calc(var(--section-gap) / 2); 48 + } 49 + 50 + i { 51 + top: calc(50% - 25px); 52 + left: -26px; 53 + position: absolute; 54 + border: 1px solid var(--color-border); 55 + background: var(--color-background); 56 + border-radius: 8px; 57 + width: 50px; 58 + height: 50px; 59 + } 60 + 61 + .item:before { 62 + content: ' '; 63 + border-left: 1px solid var(--color-border); 64 + position: absolute; 65 + left: 0; 66 + bottom: calc(50% + 25px); 67 + height: calc(50% - 25px); 68 + } 69 + 70 + .item:after { 71 + content: ' '; 72 + border-left: 1px solid var(--color-border); 73 + position: absolute; 74 + left: 0; 75 + top: calc(50% + 25px); 76 + height: calc(50% - 25px); 77 + } 78 + 79 + .item:first-of-type:before { 80 + display: none; 81 + } 82 + 83 + .item:last-of-type:after { 84 + display: none; 85 + } 86 + } 87 + </style>
+11
examples/openapi-ts-tanstack-vue-query/src/components/__tests__/HelloWorld.spec.ts
··· 1 + import { mount } from '@vue/test-utils' 2 + import { describe, expect, it } from 'vitest' 3 + 4 + import HelloWorld from '../HelloWorld.vue' 5 + 6 + describe('HelloWorld', () => { 7 + it('renders properly', () => { 8 + const wrapper = mount(HelloWorld, { props: { msg: 'Hello Vitest' } }) 9 + expect(wrapper.text()).toContain('Hello Vitest') 10 + }) 11 + })
+7
examples/openapi-ts-tanstack-vue-query/src/components/icons/IconCommunity.vue
··· 1 + <template> 2 + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> 3 + <path 4 + d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z" 5 + /> 6 + </svg> 7 + </template>
+7
examples/openapi-ts-tanstack-vue-query/src/components/icons/IconDocumentation.vue
··· 1 + <template> 2 + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor"> 3 + <path 4 + d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z" 5 + /> 6 + </svg> 7 + </template>
+7
examples/openapi-ts-tanstack-vue-query/src/components/icons/IconEcosystem.vue
··· 1 + <template> 2 + <svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor"> 3 + <path 4 + d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z" 5 + /> 6 + </svg> 7 + </template>
+7
examples/openapi-ts-tanstack-vue-query/src/components/icons/IconSupport.vue
··· 1 + <template> 2 + <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor"> 3 + <path 4 + d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z" 5 + /> 6 + </svg> 7 + </template>
+19
examples/openapi-ts-tanstack-vue-query/src/components/icons/IconTooling.vue
··· 1 + <!-- This icon is from <https://github.com/Templarian/MaterialDesign>, distributed under Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) license--> 2 + <template> 3 + <svg 4 + xmlns="http://www.w3.org/2000/svg" 5 + xmlns:xlink="http://www.w3.org/1999/xlink" 6 + aria-hidden="true" 7 + role="img" 8 + class="iconify iconify--mdi" 9 + width="24" 10 + height="24" 11 + preserveAspectRatio="xMidYMid meet" 12 + viewBox="0 0 24 24" 13 + > 14 + <path 15 + d="M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z" 16 + fill="currentColor" 17 + ></path> 18 + </svg> 19 + </template>
+27
examples/openapi-ts-tanstack-vue-query/src/main.ts
··· 1 + import './assets/main.css' 2 + 3 + import { VueQueryPlugin } from '@tanstack/vue-query' 4 + import { createPinia } from 'pinia' 5 + import { createApp } from 'vue' 6 + 7 + import App from './App.vue' 8 + import { client } from './client/services.gen' 9 + import router from './router' 10 + 11 + // configure internal service client 12 + client.setConfig({ 13 + // set default base url for requests 14 + baseUrl: 'https://petstore3.swagger.io/api/v3', 15 + // set default headers for requests 16 + headers: { 17 + Authorization: 'Bearer <token_from_service_client>' 18 + } 19 + }) 20 + 21 + const app = createApp(App) 22 + 23 + app.use(createPinia()) 24 + app.use(router) 25 + app.use(VueQueryPlugin) 26 + 27 + app.mount('#app')
+24
examples/openapi-ts-tanstack-vue-query/src/router/index.ts
··· 1 + import { createRouter, createWebHistory } from 'vue-router' 2 + 3 + import HomeView from '../views/HomeView.vue' 4 + 5 + const router = createRouter({ 6 + history: createWebHistory(import.meta.env.BASE_URL), 7 + routes: [ 8 + { 9 + component: HomeView, 10 + name: 'home', 11 + path: '/' 12 + }, 13 + { 14 + // route level code-splitting 15 + // this generates a separate chunk (About.[hash].js) for this route 16 + // which is lazy-loaded when the route is visited. 17 + component: () => import('../views/AboutView.vue'), 18 + name: 'about', 19 + path: '/about' 20 + } 21 + ] 22 + }) 23 + 24 + export default router
+12
examples/openapi-ts-tanstack-vue-query/src/stores/counter.ts
··· 1 + import { defineStore } from 'pinia' 2 + import { computed, ref } from 'vue' 3 + 4 + export const useCounterStore = defineStore('counter', () => { 5 + const count = ref(0) 6 + const doubleCount = computed(() => count.value * 2) 7 + function increment() { 8 + count.value++ 9 + } 10 + 11 + return { count, doubleCount, increment } 12 + })
+15
examples/openapi-ts-tanstack-vue-query/src/views/AboutView.vue
··· 1 + <template> 2 + <div class="about"> 3 + <h1>This is an about page</h1> 4 + </div> 5 + </template> 6 + 7 + <style> 8 + @media (min-width: 1024px) { 9 + .about { 10 + min-height: 100vh; 11 + display: flex; 12 + align-items: center; 13 + } 14 + } 15 + </style>
+9
examples/openapi-ts-tanstack-vue-query/src/views/HomeView.vue
··· 1 + <script setup lang="ts"> 2 + import TheWelcome from '../components/TheWelcome.vue' 3 + </script> 4 + 5 + <template> 6 + <main> 7 + <TheWelcome /> 8 + </main> 9 + </template>
+14
examples/openapi-ts-tanstack-vue-query/tsconfig.app.json
··· 1 + { 2 + "extends": "@vue/tsconfig/tsconfig.dom.json", 3 + "include": ["./env.d.ts", "./src/**/*", "./src/**/*.vue"], 4 + "exclude": ["./src/**/__tests__/*"], 5 + "compilerOptions": { 6 + "composite": true, 7 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 8 + 9 + "baseUrl": ".", 10 + "paths": { 11 + "@/*": ["./src/*"] 12 + } 13 + } 14 + }
+14
examples/openapi-ts-tanstack-vue-query/tsconfig.json
··· 1 + { 2 + "files": [], 3 + "references": [ 4 + { 5 + "path": "./tsconfig.node.json" 6 + }, 7 + { 8 + "path": "./tsconfig.app.json" 9 + }, 10 + { 11 + "path": "./tsconfig.vitest.json" 12 + } 13 + ] 14 + }
+19
examples/openapi-ts-tanstack-vue-query/tsconfig.node.json
··· 1 + { 2 + "extends": "@tsconfig/node20/tsconfig.json", 3 + "include": [ 4 + "vite.config.*", 5 + "vitest.config.*", 6 + "cypress.config.*", 7 + "nightwatch.conf.*", 8 + "playwright.config.*" 9 + ], 10 + "compilerOptions": { 11 + "composite": true, 12 + "noEmit": true, 13 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 14 + 15 + "module": "ESNext", 16 + "moduleResolution": "Bundler", 17 + "types": ["node"] 18 + } 19 + }
+11
examples/openapi-ts-tanstack-vue-query/tsconfig.vitest.json
··· 1 + { 2 + "extends": "./tsconfig.app.json", 3 + "exclude": [], 4 + "compilerOptions": { 5 + "composite": true, 6 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo", 7 + 8 + "lib": [], 9 + "types": ["node", "jsdom"] 10 + } 11 + }
+16
examples/openapi-ts-tanstack-vue-query/vite.config.ts
··· 1 + import { fileURLToPath, URL } from 'node:url' 2 + 3 + import vue from '@vitejs/plugin-vue' 4 + import vueJsx from '@vitejs/plugin-vue-jsx' 5 + import { defineConfig } from 'vite' 6 + import vueDevTools from 'vite-plugin-vue-devtools' 7 + 8 + // https://vitejs.dev/config/ 9 + export default defineConfig({ 10 + plugins: [vue(), vueJsx(), vueDevTools()], 11 + resolve: { 12 + alias: { 13 + '@': fileURLToPath(new URL('./src', import.meta.url)) 14 + } 15 + } 16 + })
+16
examples/openapi-ts-tanstack-vue-query/vitest.config.ts
··· 1 + import { fileURLToPath } from 'node:url' 2 + 3 + import { configDefaults, defineConfig, mergeConfig } from 'vitest/config' 4 + 5 + import viteConfig from './vite.config' 6 + 7 + export default mergeConfig( 8 + viteConfig, 9 + defineConfig({ 10 + test: { 11 + environment: 'jsdom', 12 + exclude: [...configDefaults.exclude, 'e2e/**'], 13 + root: fileURLToPath(new URL('./', import.meta.url)) 14 + } 15 + }) 16 + )
+2
package.json
··· 40 40 "@rollup/plugin-terser": "0.4.4", 41 41 "@rollup/plugin-typescript": "11.1.6", 42 42 "@types/node": "20.14.10", 43 + "@typescript-eslint/eslint-plugin": "7.15.0", 43 44 "@vitest/coverage-v8": "1.6.0", 44 45 "eslint": "9.6.0", 45 46 "eslint-config-prettier": "9.1.0", 46 47 "eslint-plugin-simple-import-sort": "12.1.1", 47 48 "eslint-plugin-sort-keys-fix": "1.1.2", 48 49 "eslint-plugin-typescript-sort-keys": "3.2.0", 50 + "eslint-plugin-vue": "9.23.0", 49 51 "globals": "15.8.0", 50 52 "husky": "9.0.11", 51 53 "lint-staged": "15.2.7",
+8 -1
packages/client-axios/src/node/index.ts
··· 1 1 export { createClient } from '../'; 2 - export type { Client, Config, Options, RequestResult } from '../types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from '../types'; 3 10 export { 4 11 createConfig, 5 12 formDataBodySerializer,
+12 -1
packages/client-fetch/src/node/index.ts
··· 1 1 export { createClient } from '../'; 2 - export type { Client, Config, Options, RequestResult } from '../types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from '../types'; 3 10 export { 11 + type BodySerializer, 4 12 createConfig, 5 13 formDataBodySerializer, 6 14 jsonBodySerializer, 15 + type Middleware, 16 + type QuerySerializer, 17 + type QuerySerializerOptions, 7 18 urlSearchParamsBodySerializer, 8 19 } from '../utils';
+2 -1
packages/openapi-ts/package.json
··· 85 85 "@hey-api/client-fetch": "workspace:*", 86 86 "@rollup/plugin-json": "6.1.0", 87 87 "@rollup/plugin-node-resolve": "15.2.3", 88 - "@tanstack/react-query": "5.51.11", 88 + "@tanstack/react-query": "5.51.23", 89 + "@tanstack/vue-query": "5.51.21", 89 90 "@types/cross-spawn": "6.0.6", 90 91 "@types/express": "4.17.21", 91 92 "axios": "1.7.3",
+4 -1
packages/openapi-ts/src/generate/plugins.ts
··· 62 62 }); 63 63 const file = files[plugin.name]; 64 64 65 - if (plugin.name === '@tanstack/react-query') { 65 + if ( 66 + plugin.name === '@tanstack/react-query' || 67 + plugin.name === '@tanstack/vue-query' 68 + ) { 66 69 const paginationWordsRegExp = /^(cursor|offset|page|start)/; 67 70 68 71 if (!files.services) {
+1 -1
packages/openapi-ts/src/plugins/@tanstack/react-query/config.ts
··· 15 15 name: '@tanstack/react-query'; 16 16 /** 17 17 * Name of the generated file. 18 - * @default 'tanstack-query' 18 + * @default '@tanstack/react-query' 19 19 */ 20 20 output?: string; 21 21 /**
+37
packages/openapi-ts/src/plugins/@tanstack/vue-query/config.ts
··· 1 + export interface PluginTanStackVueQuery { 2 + /** 3 + * Generate {@link https://tanstack.com/query/latest/docs/framework/vue/reference/infiniteQueryOptions `infiniteQueryOptions()`} helpers? These will be generated from GET and POST requests where a pagination parameter is detected. 4 + * @default true 5 + */ 6 + infiniteQueryOptions?: boolean; 7 + /** 8 + * TODO: update link 9 + * Generate {@link https://github.com/TanStack/query/blob/0696b514ce71dffc8acb38c55e0c93c43b781146/packages/react-query/src/types.ts#L128-L136 `mutationOptions()`} helpers? These will be generated from DELETE, PATCH, POST, and PUT requests. 10 + * @default true 11 + */ 12 + mutationOptions?: boolean; 13 + /** 14 + * Generate TanStack Vue Query output from the provided input. 15 + */ 16 + name: '@tanstack/vue-query'; 17 + /** 18 + * Name of the generated file. 19 + * @default '@tanstack/vue-query' 20 + */ 21 + output?: string; 22 + /** 23 + * Generate {@link https://tanstack.com/query/latest/docs/framework/vue/guides/query-options `queryOptions()`} helpers? 24 + * These will be generated from all requests. 25 + * @default true 26 + */ 27 + queryOptions?: boolean; 28 + } 29 + 30 + export const pluginTanStackVueQueryDefaultConfig: Required<PluginTanStackVueQuery> = 31 + { 32 + infiniteQueryOptions: true, 33 + mutationOptions: true, 34 + name: '@tanstack/vue-query', 35 + output: '@tanstack/vue-query', 36 + queryOptions: true, 37 + };
+6 -1
packages/openapi-ts/src/plugins/index.ts
··· 2 2 type PluginTanStackReactQuery, 3 3 pluginTanStackReactQueryDefaultConfig, 4 4 } from './@tanstack/react-query/config'; 5 + import { 6 + type PluginTanStackVueQuery, 7 + pluginTanStackVueQueryDefaultConfig, 8 + } from './@tanstack/vue-query/config'; 5 9 6 - export type Plugins = PluginTanStackReactQuery; 10 + export type Plugins = PluginTanStackReactQuery | PluginTanStackVueQuery; 7 11 8 12 type KeyTypes = string | number | symbol; 9 13 ··· 22 26 23 27 export const defaultPluginConfigs: DefaultPluginConfigsMap<Plugins> = { 24 28 '@tanstack/react-query': pluginTanStackReactQueryDefaultConfig, 29 + '@tanstack/vue-query': pluginTanStackVueQueryDefaultConfig, 25 30 };
+8 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3-hey-api-client-axios-bundle/client.ts.snap
··· 1 1 export { createClient } from './core/'; 2 - export type { Client, Config, Options, RequestResult } from './core/types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from './core/types'; 3 10 export { 4 11 createConfig, 5 12 formDataBodySerializer,
+8 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3-hey-api-client-axios-bundle_transform/client.ts.snap
··· 1 1 export { createClient } from './core/'; 2 - export type { Client, Config, Options, RequestResult } from './core/types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from './core/types'; 3 10 export { 4 11 createConfig, 5 12 formDataBodySerializer,
+12 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3-hey-api-client-fetch-bundle/client.ts.snap
··· 1 1 export { createClient } from './core/'; 2 - export type { Client, Config, Options, RequestResult } from './core/types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from './core/types'; 3 10 export { 11 + type BodySerializer, 4 12 createConfig, 5 13 formDataBodySerializer, 6 14 jsonBodySerializer, 15 + type Middleware, 16 + type QuerySerializer, 17 + type QuerySerializerOptions, 7 18 urlSearchParamsBodySerializer, 8 19 } from './core/utils';
+12 -1
packages/openapi-ts/test/__snapshots__/test/generated/v3-hey-api-client-fetch-bundle_transform/client.ts.snap
··· 1 1 export { createClient } from './core/'; 2 - export type { Client, Config, Options, RequestResult } from './core/types'; 2 + export type { 3 + Client, 4 + Config, 5 + Options, 6 + RequestOptions, 7 + RequestOptionsBase, 8 + RequestResult, 9 + } from './core/types'; 3 10 export { 11 + type BodySerializer, 4 12 createConfig, 5 13 formDataBodySerializer, 6 14 jsonBodySerializer, 15 + type Middleware, 16 + type QuerySerializer, 17 + type QuerySerializerOptions, 7 18 urlSearchParamsBodySerializer, 8 19 } from './core/utils';
+1667 -234
pnpm-lock.yaml
··· 26 26 '@types/node': 27 27 specifier: 20.14.10 28 28 version: 20.14.10 29 + '@typescript-eslint/eslint-plugin': 30 + specifier: 7.15.0 31 + version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) 29 32 '@vitest/coverage-v8': 30 33 specifier: 1.6.0 31 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 34 + version: 1.6.0(vitest@1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 32 35 eslint: 33 36 specifier: 9.6.0 34 37 version: 9.6.0 ··· 44 47 eslint-plugin-typescript-sort-keys: 45 48 specifier: 3.2.0 46 49 version: 3.2.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) 50 + eslint-plugin-vue: 51 + specifier: 9.23.0 52 + version: 9.23.0(eslint@9.6.0) 47 53 globals: 48 54 specifier: 15.8.0 49 55 version: 15.8.0 ··· 73 79 version: 7.15.0(eslint@9.6.0)(typescript@5.5.3) 74 80 vitest: 75 81 specifier: 1.6.0 76 - version: 1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 82 + version: 1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 77 83 78 84 docs: 79 85 dependencies: ··· 83 89 devDependencies: 84 90 vitepress: 85 91 specifier: 1.3.0 86 - version: 1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.3)(less@4.2.0)(postcss@8.4.39)(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.1)(typescript@5.5.3) 92 + version: 1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.3)(less@4.2.0)(postcss@8.4.41)(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.1)(typescript@5.5.3) 87 93 88 94 examples/openapi-ts-axios: 89 95 dependencies: ··· 222 228 specifier: 5.3.3 223 229 version: 5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 224 230 231 + examples/openapi-ts-tanstack-react-query: 232 + dependencies: 233 + '@hey-api/client-fetch': 234 + specifier: workspace:* 235 + version: link:../../packages/client-fetch 236 + '@radix-ui/react-form': 237 + specifier: 0.1.0 238 + version: 0.1.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) 239 + '@radix-ui/react-icons': 240 + specifier: 1.3.0 241 + version: 1.3.0(react@18.3.1) 242 + '@radix-ui/themes': 243 + specifier: 3.1.1 244 + version: 3.1.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) 245 + '@tanstack/react-query': 246 + specifier: 5.51.23 247 + version: 5.51.23(react@18.3.1) 248 + '@tanstack/react-query-devtools': 249 + specifier: 5.51.23 250 + version: 5.51.23(@tanstack/react-query@5.51.23(react@18.3.1))(react@18.3.1) 251 + react: 252 + specifier: 18.3.1 253 + version: 18.3.1 254 + react-dom: 255 + specifier: 18.3.1 256 + version: 18.3.1(react@18.3.1) 257 + devDependencies: 258 + '@hey-api/openapi-ts': 259 + specifier: workspace:* 260 + version: link:../../packages/openapi-ts 261 + '@types/react': 262 + specifier: 18.3.3 263 + version: 18.3.3 264 + '@types/react-dom': 265 + specifier: 18.3.0 266 + version: 18.3.0 267 + '@typescript-eslint/eslint-plugin': 268 + specifier: 7.15.0 269 + version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) 270 + '@typescript-eslint/parser': 271 + specifier: 7.15.0 272 + version: 7.15.0(eslint@9.6.0)(typescript@5.5.3) 273 + '@vitejs/plugin-react': 274 + specifier: 4.3.1 275 + version: 4.3.1(vite@5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 276 + autoprefixer: 277 + specifier: 10.4.19 278 + version: 10.4.19(postcss@8.4.39) 279 + eslint: 280 + specifier: 9.6.0 281 + version: 9.6.0 282 + eslint-plugin-react-hooks: 283 + specifier: 4.6.2 284 + version: 4.6.2(eslint@9.6.0) 285 + eslint-plugin-react-refresh: 286 + specifier: 0.4.7 287 + version: 0.4.7(eslint@9.6.0) 288 + postcss: 289 + specifier: 8.4.39 290 + version: 8.4.39 291 + prettier: 292 + specifier: 3.3.2 293 + version: 3.3.2 294 + tailwindcss: 295 + specifier: 3.4.4 296 + version: 3.4.4(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3)) 297 + typescript: 298 + specifier: 5.5.3 299 + version: 5.5.3 300 + vite: 301 + specifier: 5.3.3 302 + version: 5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 303 + 304 + examples/openapi-ts-tanstack-vue-query: 305 + dependencies: 306 + '@hey-api/client-fetch': 307 + specifier: workspace:* 308 + version: link:../../packages/client-fetch 309 + '@tanstack/vue-query': 310 + specifier: 5.51.21 311 + version: 5.51.21(vue@3.4.37(typescript@5.5.3)) 312 + '@tanstack/vue-query-devtools': 313 + specifier: 5.51.21 314 + version: 5.51.21(@tanstack/vue-query@5.51.21(vue@3.4.37(typescript@5.5.3)))(vue@3.4.37(typescript@5.5.3)) 315 + pinia: 316 + specifier: 2.2.1 317 + version: 2.2.1(typescript@5.5.3)(vue@3.4.37(typescript@5.5.3)) 318 + vue: 319 + specifier: 3.4.37 320 + version: 3.4.37(typescript@5.5.3) 321 + vue-router: 322 + specifier: 4.4.3 323 + version: 4.4.3(vue@3.4.37(typescript@5.5.3)) 324 + devDependencies: 325 + '@hey-api/openapi-ts': 326 + specifier: workspace:* 327 + version: link:../../packages/openapi-ts 328 + '@rushstack/eslint-patch': 329 + specifier: 1.10.4 330 + version: 1.10.4 331 + '@tsconfig/node20': 332 + specifier: 20.1.4 333 + version: 20.1.4 334 + '@types/jsdom': 335 + specifier: 21.1.7 336 + version: 21.1.7 337 + '@types/node': 338 + specifier: 20.14.5 339 + version: 20.14.5 340 + '@vitejs/plugin-vue': 341 + specifier: 5.0.5 342 + version: 5.0.5(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)) 343 + '@vitejs/plugin-vue-jsx': 344 + specifier: 4.0.0 345 + version: 4.0.0(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)) 346 + '@vue/eslint-config-prettier': 347 + specifier: 9.0.0 348 + version: 9.0.0(@types/eslint@8.56.10)(eslint@9.6.0)(prettier@3.3.2) 349 + '@vue/eslint-config-typescript': 350 + specifier: 13.0.0 351 + version: 13.0.0(eslint-plugin-vue@9.27.0(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3) 352 + '@vue/test-utils': 353 + specifier: 2.4.6 354 + version: 2.4.6 355 + '@vue/tsconfig': 356 + specifier: 0.5.1 357 + version: 0.5.1 358 + eslint: 359 + specifier: 9.6.0 360 + version: 9.6.0 361 + eslint-plugin-vue: 362 + specifier: 9.27.0 363 + version: 9.27.0(eslint@9.6.0) 364 + jsdom: 365 + specifier: 24.1.0 366 + version: 24.1.0 367 + npm-run-all2: 368 + specifier: 6.2.0 369 + version: 6.2.0 370 + prettier: 371 + specifier: 3.3.2 372 + version: 3.3.2 373 + typescript: 374 + specifier: 5.5.3 375 + version: 5.5.3 376 + vite: 377 + specifier: 5.3.3 378 + version: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 379 + vite-plugin-vue-devtools: 380 + specifier: 7.3.1 381 + version: 7.3.1(rollup@4.18.0)(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)) 382 + vitest: 383 + specifier: 1.6.0 384 + version: 1.6.0(@types/node@20.14.5)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 385 + vue-tsc: 386 + specifier: 2.0.29 387 + version: 2.0.29(typescript@5.5.3) 388 + 225 389 packages/client-axios: 226 390 devDependencies: 227 391 axios: ··· 296 460 specifier: 15.2.3 297 461 version: 15.2.3(rollup@4.18.0) 298 462 '@tanstack/react-query': 299 - specifier: 5.51.11 300 - version: 5.51.11(react@18.3.1) 463 + specifier: 5.51.23 464 + version: 5.51.23(react@18.3.1) 465 + '@tanstack/vue-query': 466 + specifier: 5.51.21 467 + version: 5.51.21(vue@3.4.37(typescript@5.5.3)) 301 468 '@types/cross-spawn': 302 469 specifier: 6.0.6 303 470 version: 6.0.6 ··· 561 728 '@angular/platform-browser': 17.3.9 562 729 rxjs: ^6.5.3 || ^7.4.0 563 730 731 + '@antfu/utils@0.7.10': 732 + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} 733 + 564 734 '@apidevtools/json-schema-ref-parser@11.7.0': 565 735 resolution: {integrity: sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==} 566 736 engines: {node: '>= 16'} ··· 593 763 resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} 594 764 engines: {node: '>=6.9.0'} 595 765 766 + '@babel/generator@7.25.0': 767 + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} 768 + engines: {node: '>=6.9.0'} 769 + 596 770 '@babel/helper-annotate-as-pure@7.22.5': 597 771 resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} 598 772 engines: {node: '>=6.9.0'} ··· 609 783 resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} 610 784 engines: {node: '>=6.9.0'} 611 785 612 - '@babel/helper-create-class-features-plugin@7.24.7': 613 - resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} 786 + '@babel/helper-create-class-features-plugin@7.25.0': 787 + resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==} 614 788 engines: {node: '>=6.9.0'} 615 789 peerDependencies: 616 790 '@babel/core': ^7.0.0 ··· 643 817 resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} 644 818 engines: {node: '>=6.9.0'} 645 819 646 - '@babel/helper-member-expression-to-functions@7.24.7': 647 - resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} 820 + '@babel/helper-member-expression-to-functions@7.24.8': 821 + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} 822 + engines: {node: '>=6.9.0'} 823 + 824 + '@babel/helper-module-imports@7.22.15': 825 + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 648 826 engines: {node: '>=6.9.0'} 649 827 650 828 '@babel/helper-module-imports@7.24.7': ··· 665 843 resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} 666 844 engines: {node: '>=6.9.0'} 667 845 846 + '@babel/helper-plugin-utils@7.24.8': 847 + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} 848 + engines: {node: '>=6.9.0'} 849 + 668 850 '@babel/helper-remap-async-to-generator@7.24.7': 669 851 resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} 670 852 engines: {node: '>=6.9.0'} ··· 677 859 peerDependencies: 678 860 '@babel/core': ^7.0.0 679 861 862 + '@babel/helper-replace-supers@7.25.0': 863 + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} 864 + engines: {node: '>=6.9.0'} 865 + peerDependencies: 866 + '@babel/core': ^7.0.0 867 + 680 868 '@babel/helper-simple-access@7.24.7': 681 869 resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 682 870 engines: {node: '>=6.9.0'} ··· 697 885 resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} 698 886 engines: {node: '>=6.9.0'} 699 887 888 + '@babel/helper-string-parser@7.24.8': 889 + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} 890 + engines: {node: '>=6.9.0'} 891 + 700 892 '@babel/helper-validator-identifier@7.24.7': 701 893 resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 702 894 engines: {node: '>=6.9.0'} ··· 722 914 engines: {node: '>=6.0.0'} 723 915 hasBin: true 724 916 917 + '@babel/parser@7.25.3': 918 + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} 919 + engines: {node: '>=6.0.0'} 920 + hasBin: true 921 + 725 922 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': 726 923 resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} 727 924 engines: {node: '>=6.9.0'} ··· 740 937 peerDependencies: 741 938 '@babel/core': ^7.0.0 742 939 940 + '@babel/plugin-proposal-decorators@7.24.7': 941 + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} 942 + engines: {node: '>=6.9.0'} 943 + peerDependencies: 944 + '@babel/core': ^7.0.0-0 945 + 743 946 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': 744 947 resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} 745 948 engines: {node: '>=6.9.0'} ··· 762 965 peerDependencies: 763 966 '@babel/core': ^7.0.0-0 764 967 968 + '@babel/plugin-syntax-decorators@7.24.7': 969 + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} 970 + engines: {node: '>=6.9.0'} 971 + peerDependencies: 972 + '@babel/core': ^7.0.0-0 973 + 765 974 '@babel/plugin-syntax-dynamic-import@7.8.3': 766 975 resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} 767 976 peerDependencies: ··· 791 1000 792 1001 '@babel/plugin-syntax-json-strings@7.8.3': 793 1002 resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 1003 + peerDependencies: 1004 + '@babel/core': ^7.0.0-0 1005 + 1006 + '@babel/plugin-syntax-jsx@7.24.7': 1007 + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} 1008 + engines: {node: '>=6.9.0'} 794 1009 peerDependencies: 795 1010 '@babel/core': ^7.0.0-0 796 1011 ··· 836 1051 peerDependencies: 837 1052 '@babel/core': ^7.0.0-0 838 1053 1054 + '@babel/plugin-syntax-typescript@7.24.7': 1055 + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} 1056 + engines: {node: '>=6.9.0'} 1057 + peerDependencies: 1058 + '@babel/core': ^7.0.0-0 1059 + 839 1060 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': 840 1061 resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} 841 1062 engines: {node: '>=6.9.0'} ··· 1124 1345 peerDependencies: 1125 1346 '@babel/core': ^7.0.0-0 1126 1347 1348 + '@babel/plugin-transform-typescript@7.25.2': 1349 + resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} 1350 + engines: {node: '>=6.9.0'} 1351 + peerDependencies: 1352 + '@babel/core': ^7.0.0-0 1353 + 1127 1354 '@babel/plugin-transform-unicode-escapes@7.24.7': 1128 1355 resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} 1129 1356 engines: {node: '>=6.9.0'} ··· 1174 1401 resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} 1175 1402 engines: {node: '>=6.9.0'} 1176 1403 1404 + '@babel/template@7.25.0': 1405 + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} 1406 + engines: {node: '>=6.9.0'} 1407 + 1177 1408 '@babel/traverse@7.24.7': 1178 1409 resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} 1410 + engines: {node: '>=6.9.0'} 1411 + 1412 + '@babel/traverse@7.25.3': 1413 + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} 1179 1414 engines: {node: '>=6.9.0'} 1180 1415 1181 1416 '@babel/types@7.24.7': 1182 1417 resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} 1183 1418 engines: {node: '>=6.9.0'} 1184 1419 1420 + '@babel/types@7.25.2': 1421 + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} 1422 + engines: {node: '>=6.9.0'} 1423 + 1185 1424 '@bcoe/v8-coverage@0.2.3': 1186 1425 resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 1187 1426 ··· 1853 2092 resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} 1854 2093 engines: {node: ^16.14.0 || >=18.0.0} 1855 2094 2095 + '@one-ini/wasm@0.1.1': 2096 + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} 2097 + 1856 2098 '@pkgjs/parseargs@0.11.0': 1857 2099 resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 1858 2100 engines: {node: '>=14'} 2101 + 2102 + '@pkgr/core@0.1.1': 2103 + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} 2104 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 2105 + 2106 + '@polka/url@1.0.0-next.25': 2107 + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 1859 2108 1860 2109 '@puppeteer/browsers@2.2.3': 1861 2110 resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} ··· 2589 2838 cpu: [x64] 2590 2839 os: [win32] 2591 2840 2841 + '@rushstack/eslint-patch@1.10.4': 2842 + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} 2843 + 2592 2844 '@schematics/angular@17.3.7': 2593 2845 resolution: {integrity: sha512-HaJroKaberriP4wFefTTSVFrtU9GMvnG3I6ELbOteOyKMH7o2V91FXGJDJ5KnIiLRlBmC30G3r+9Ybc/rtAYkw==} 2594 2846 engines: {node: ^18.13.0 || >=20.9.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} ··· 2629 2881 '@stackblitz/sdk@1.11.0': 2630 2882 resolution: {integrity: sha512-DFQGANNkEZRzFk1/rDP6TcFdM82ycHE+zfl9C/M/jXlH68jiqHWHFMQURLELoD8koxvu/eW5uhg94NSAZlYrUQ==} 2631 2883 2632 - '@tanstack/query-core@5.51.9': 2633 - resolution: {integrity: sha512-HsAwaY5J19MD18ykZDS3aVVh+bAt0i7m6uQlFC2b77DLV9djo+xEN7MWQAQQTR8IM+7r/zbozTQ7P0xr0bHuew==} 2884 + '@tanstack/match-sorter-utils@8.19.4': 2885 + resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} 2886 + engines: {node: '>=12'} 2634 2887 2635 - '@tanstack/react-query@5.51.11': 2636 - resolution: {integrity: sha512-4Kq2x0XpDlpvSnaLG+8pHNH60zEc3mBvb3B2tOMDjcPCi/o+Du3p/9qpPLwJOTliVxxPJAP27fuIhLrsRdCr7A==} 2888 + '@tanstack/query-core@5.51.21': 2889 + resolution: {integrity: sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw==} 2890 + 2891 + '@tanstack/query-devtools@5.51.16': 2892 + resolution: {integrity: sha512-ajwuq4WnkNCMj/Hy3KR8d3RtZ6PSKc1dD2vs2T408MdjgKzQ3klVoL6zDgVO7X+5jlb5zfgcO3thh4ojPhfIaw==} 2893 + 2894 + '@tanstack/react-query-devtools@5.51.23': 2895 + resolution: {integrity: sha512-XpHrdyfUPGULIyJ1K7UvhAcK+KjMJdw4NjmRjryoj3XEgfAU5qU1rz8gIFvGc3gTGT07yIseGo7GEll/ICfJfQ==} 2896 + peerDependencies: 2897 + '@tanstack/react-query': ^5.51.23 2898 + react: ^18 || ^19 2899 + 2900 + '@tanstack/react-query@5.51.23': 2901 + resolution: {integrity: sha512-CfJCfX45nnVIZjQBRYYtvVMIsGgWLKLYC4xcUiYEey671n1alvTZoCBaU9B85O8mF/tx9LPyrI04A6Bs2THv4A==} 2637 2902 peerDependencies: 2638 2903 react: ^18.0.0 2639 2904 2905 + '@tanstack/vue-query-devtools@5.51.21': 2906 + resolution: {integrity: sha512-PYZFbTxWiYjfdppZL1mLL9mqsJw4ZOqUpFYTOvjDNj+pJ8SEQJL+2mg3IbOJ0xkkv72W9xOgQYIWHUe+rI9ANA==} 2907 + peerDependencies: 2908 + '@tanstack/vue-query': ^5.51.21 2909 + vue: ^3.3.0 2910 + 2911 + '@tanstack/vue-query@5.51.21': 2912 + resolution: {integrity: sha512-gXAMq90TTepqmBCuVqRxEO/vsuhEkvllCTrlsvZRuPROyV7IroJHmDfuz87KRSACCFTuiy65Mbtk/pg++NIkVg==} 2913 + peerDependencies: 2914 + '@vue/composition-api': ^1.1.2 2915 + vue: ^2.6.0 || ^3.3.0 2916 + peerDependenciesMeta: 2917 + '@vue/composition-api': 2918 + optional: true 2919 + 2640 2920 '@tootallnate/quickjs-emscripten@0.23.0': 2641 2921 resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 2642 2922 ··· 2651 2931 2652 2932 '@tsconfig/node16@1.0.4': 2653 2933 resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 2934 + 2935 + '@tsconfig/node20@20.1.4': 2936 + resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==} 2654 2937 2655 2938 '@tufjs/canonical-json@2.0.0': 2656 2939 resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} ··· 2711 2994 '@types/http-proxy@1.17.14': 2712 2995 resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} 2713 2996 2997 + '@types/jsdom@21.1.7': 2998 + resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} 2999 + 2714 3000 '@types/json-schema@7.0.15': 2715 3001 resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 2716 3002 ··· 2735 3021 '@types/node@20.14.10': 2736 3022 resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} 2737 3023 3024 + '@types/node@20.14.5': 3025 + resolution: {integrity: sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==} 3026 + 2738 3027 '@types/prop-types@15.7.12': 2739 3028 resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 2740 3029 ··· 2770 3059 2771 3060 '@types/sockjs@0.3.36': 2772 3061 resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} 3062 + 3063 + '@types/tough-cookie@4.0.5': 3064 + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} 2773 3065 2774 3066 '@types/unist@3.0.2': 2775 3067 resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} ··· 2886 3178 peerDependencies: 2887 3179 vite: ^4.2.0 || ^5.0.0 2888 3180 3181 + '@vitejs/plugin-vue-jsx@4.0.0': 3182 + resolution: {integrity: sha512-A+6wL2AdQhDsLsDnY+2v4rRDI1HLJGIMc97a8FURO9tqKsH5QvjWrzsa5DH3NlZsM742W2wODl2fF+bfcTWtXw==} 3183 + engines: {node: ^18.0.0 || >=20.0.0} 3184 + peerDependencies: 3185 + vite: ^5.0.0 3186 + vue: ^3.0.0 3187 + 2889 3188 '@vitejs/plugin-vue@5.0.5': 2890 3189 resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} 2891 3190 engines: {node: ^18.0.0 || >=20.0.0} ··· 2913 3212 '@vitest/utils@1.6.0': 2914 3213 resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} 2915 3214 2916 - '@vue/compiler-core@3.4.31': 2917 - resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} 3215 + '@volar/language-core@2.4.0-alpha.18': 3216 + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} 3217 + 3218 + '@volar/source-map@2.4.0-alpha.18': 3219 + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} 3220 + 3221 + '@volar/typescript@2.4.0-alpha.18': 3222 + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} 3223 + 3224 + '@vue/babel-helper-vue-transform-on@1.2.2': 3225 + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} 2918 3226 2919 - '@vue/compiler-dom@3.4.31': 2920 - resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} 3227 + '@vue/babel-plugin-jsx@1.2.2': 3228 + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} 3229 + peerDependencies: 3230 + '@babel/core': ^7.0.0-0 3231 + peerDependenciesMeta: 3232 + '@babel/core': 3233 + optional: true 2921 3234 2922 - '@vue/compiler-sfc@3.4.31': 2923 - resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} 3235 + '@vue/babel-plugin-resolve-type@1.2.2': 3236 + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} 3237 + peerDependencies: 3238 + '@babel/core': ^7.0.0-0 2924 3239 2925 - '@vue/compiler-ssr@3.4.31': 2926 - resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} 3240 + '@vue/compiler-core@3.4.37': 3241 + resolution: {integrity: sha512-ZDDT/KiLKuCRXyzWecNzC5vTcubGz4LECAtfGPENpo0nrmqJHwuWtRLxk/Sb9RAKtR9iFflFycbkjkY+W/PZUQ==} 3242 + 3243 + '@vue/compiler-dom@3.4.37': 3244 + resolution: {integrity: sha512-rIiSmL3YrntvgYV84rekAtU/xfogMUJIclUMeIKEtVBFngOL3IeZHhsH3UaFEgB5iFGpj6IW+8YuM/2Up+vVag==} 3245 + 3246 + '@vue/compiler-sfc@3.4.37': 3247 + resolution: {integrity: sha512-vCfetdas40Wk9aK/WWf8XcVESffsbNkBQwS5t13Y/PcfqKfIwJX2gF+82th6dOpnpbptNMlMjAny80li7TaCIg==} 3248 + 3249 + '@vue/compiler-ssr@3.4.37': 3250 + resolution: {integrity: sha512-TyAgYBWrHlFrt4qpdACh8e9Ms6C/AZQ6A6xLJaWrCL8GCX5DxMzxyeFAEMfU/VFr4tylHm+a2NpfJpcd7+20XA==} 3251 + 3252 + '@vue/compiler-vue2@2.7.16': 3253 + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} 3254 + 3255 + '@vue/devtools-api@6.6.3': 3256 + resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} 2927 3257 2928 3258 '@vue/devtools-api@7.3.5': 2929 3259 resolution: {integrity: sha512-BSdBBu5hOIv+gBJC9jzYMh5bC27FQwjWLSb8fVAniqlL9gvsqvK27xTgczMf+hgctlszMYQnRm3bpY/j8vhPqw==} 2930 3260 3261 + '@vue/devtools-core@7.3.7': 3262 + resolution: {integrity: sha512-IapWbHUqvO6n+p5JFTCE5JyNjpsZ5IS1GYIRX0P7/SqYPgFCOdH0dG+u8PbBHYdnp+VPxHLO+GGZ/WBZFCZnsA==} 3263 + peerDependencies: 3264 + vue: ^3.0.0 3265 + 2931 3266 '@vue/devtools-kit@7.3.5': 2932 3267 resolution: {integrity: sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww==} 2933 3268 2934 - '@vue/devtools-shared@7.3.5': 2935 - resolution: {integrity: sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==} 3269 + '@vue/devtools-kit@7.3.7': 3270 + resolution: {integrity: sha512-ktHhhjI4CoUrwdSUF5b/MFfjrtAtK8r4vhOkFyRN5Yp9kdXTwsRBYcwarHuP+wFPKf4/KM7DVBj2ELO8SBwdsw==} 2936 3271 2937 - '@vue/reactivity@3.4.31': 2938 - resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==} 3272 + '@vue/devtools-shared@7.3.7': 3273 + resolution: {integrity: sha512-M9EU1/bWi5GNS/+IZrAhwGOVZmUTN4MH22Hvh35nUZZg9AZP2R2OhfCb+MG4EtAsrUEYlu3R43/SIj3G7EZYtQ==} 2939 3274 2940 - '@vue/runtime-core@3.4.31': 2941 - resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==} 3275 + '@vue/eslint-config-prettier@9.0.0': 3276 + resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==} 3277 + peerDependencies: 3278 + eslint: '>= 8.0.0' 3279 + prettier: '>= 3.0.0' 3280 + 3281 + '@vue/eslint-config-typescript@13.0.0': 3282 + resolution: {integrity: sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==} 3283 + engines: {node: ^18.18.0 || >=20.0.0} 3284 + peerDependencies: 3285 + eslint: ^8.56.0 3286 + eslint-plugin-vue: ^9.0.0 3287 + typescript: '>=4.7.4' 3288 + peerDependenciesMeta: 3289 + typescript: 3290 + optional: true 3291 + 3292 + '@vue/language-core@2.0.29': 3293 + resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} 3294 + peerDependencies: 3295 + typescript: '*' 3296 + peerDependenciesMeta: 3297 + typescript: 3298 + optional: true 3299 + 3300 + '@vue/reactivity@3.4.37': 3301 + resolution: {integrity: sha512-UmdKXGx0BZ5kkxPqQr3PK3tElz6adTey4307NzZ3whZu19i5VavYal7u2FfOmAzlcDVgE8+X0HZ2LxLb/jgbYw==} 3302 + 3303 + '@vue/runtime-core@3.4.37': 3304 + resolution: {integrity: sha512-MNjrVoLV/sirHZoD7QAilU1Ifs7m/KJv4/84QVbE6nyAZGQNVOa1HGxaOzp9YqCG+GpLt1hNDC4RbH+KtanV7w==} 2942 3305 2943 - '@vue/runtime-dom@3.4.31': 2944 - resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==} 3306 + '@vue/runtime-dom@3.4.37': 3307 + resolution: {integrity: sha512-Mg2EwgGZqtwKrqdL/FKMF2NEaOHuH+Ks9TQn3DHKyX//hQTYOun+7Tqp1eo0P4Ds+SjltZshOSRq6VsU0baaNg==} 2945 3308 2946 - '@vue/server-renderer@3.4.31': 2947 - resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==} 3309 + '@vue/server-renderer@3.4.37': 3310 + resolution: {integrity: sha512-jZ5FAHDR2KBq2FsRUJW6GKDOAG9lUTX8aBEGq4Vf6B/35I9fPce66BornuwmqmKgfiSlecwuOb6oeoamYMohkg==} 2948 3311 peerDependencies: 2949 - vue: 3.4.31 3312 + vue: 3.4.37 2950 3313 2951 3314 '@vue/shared@3.4.31': 2952 3315 resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} 3316 + 3317 + '@vue/shared@3.4.37': 3318 + resolution: {integrity: sha512-nIh8P2fc3DflG8+5Uw8PT/1i17ccFn0xxN/5oE9RfV5SVnd7G0XEFRwakrnNFE/jlS95fpGXDVG5zDETS26nmg==} 3319 + 3320 + '@vue/test-utils@2.4.6': 3321 + resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} 3322 + 3323 + '@vue/tsconfig@0.5.1': 3324 + resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} 2953 3325 2954 3326 '@vueuse/core@10.11.0': 2955 3327 resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} ··· 3339 3711 resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 3340 3712 engines: {node: '>=6'} 3341 3713 3714 + bundle-name@4.1.0: 3715 + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} 3716 + engines: {node: '>=18'} 3717 + 3342 3718 bytes@3.0.0: 3343 3719 resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 3344 3720 engines: {node: '>= 0.8'} ··· 3378 3754 camelcase@5.3.1: 3379 3755 resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 3380 3756 engines: {node: '>=6'} 3757 + 3758 + camelcase@6.3.0: 3759 + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 3760 + engines: {node: '>=10'} 3381 3761 3382 3762 camelcase@8.0.0: 3383 3763 resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} ··· 3491 3871 resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 3492 3872 engines: {node: '>= 0.8'} 3493 3873 3874 + commander@10.0.1: 3875 + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} 3876 + engines: {node: '>=14'} 3877 + 3494 3878 commander@12.1.0: 3495 3879 resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} 3496 3880 engines: {node: '>=18'} ··· 3516 3900 resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} 3517 3901 engines: {node: '>= 0.8.0'} 3518 3902 3903 + computeds@0.0.1: 3904 + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} 3905 + 3519 3906 concat-map@0.0.1: 3520 3907 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 3521 3908 3522 3909 confbox@0.1.7: 3523 3910 resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} 3911 + 3912 + config-chain@1.1.13: 3913 + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} 3524 3914 3525 3915 connect-history-api-fallback@2.0.0: 3526 3916 resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} ··· 3616 4006 engines: {node: '>=4'} 3617 4007 hasBin: true 3618 4008 4009 + cssstyle@4.0.1: 4010 + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} 4011 + engines: {node: '>=18'} 4012 + 3619 4013 csstype@3.1.3: 3620 4014 resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 3621 4015 ··· 3627 4021 resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} 3628 4022 engines: {node: '>= 14'} 3629 4023 4024 + data-urls@5.0.0: 4025 + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 4026 + engines: {node: '>=18'} 4027 + 3630 4028 dataloader@1.4.0: 3631 4029 resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 4030 + 4031 + de-indent@1.0.2: 4032 + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 3632 4033 3633 4034 debug@2.6.9: 3634 4035 resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} ··· 3656 4057 supports-color: 3657 4058 optional: true 3658 4059 4060 + decimal.js@10.4.3: 4061 + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 4062 + 3659 4063 deep-eql@4.1.4: 3660 4064 resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} 3661 4065 engines: {node: '>=6'} ··· 3666 4070 deepmerge@4.3.1: 3667 4071 resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 3668 4072 engines: {node: '>=0.10.0'} 4073 + 4074 + default-browser-id@5.0.0: 4075 + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} 4076 + engines: {node: '>=18'} 4077 + 4078 + default-browser@5.2.1: 4079 + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} 4080 + engines: {node: '>=18'} 3669 4081 3670 4082 default-gateway@6.0.3: 3671 4083 resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} ··· 3682 4094 resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 3683 4095 engines: {node: '>=8'} 3684 4096 4097 + define-lazy-prop@3.0.0: 4098 + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 4099 + engines: {node: '>=12'} 4100 + 3685 4101 defu@6.1.4: 3686 4102 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 3687 4103 ··· 3767 4183 eastasianwidth@0.2.0: 3768 4184 resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 3769 4185 4186 + editorconfig@1.0.4: 4187 + resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} 4188 + engines: {node: '>=14'} 4189 + hasBin: true 4190 + 3770 4191 ee-first@1.1.1: 3771 4192 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 3772 4193 ··· 3808 4229 resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 3809 4230 engines: {node: '>=0.12'} 3810 4231 4232 + entities@5.0.0: 4233 + resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} 4234 + engines: {node: '>=0.12'} 4235 + 3811 4236 env-paths@2.2.1: 3812 4237 resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 3813 4238 engines: {node: '>=6'} ··· 3822 4247 error-ex@1.3.2: 3823 4248 resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 3824 4249 4250 + error-stack-parser-es@0.1.5: 4251 + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} 4252 + 3825 4253 es-define-property@1.0.0: 3826 4254 resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 3827 4255 engines: {node: '>= 0.4'} ··· 3878 4306 hasBin: true 3879 4307 peerDependencies: 3880 4308 eslint: '>=7.0.0' 4309 + 4310 + eslint-plugin-prettier@5.2.1: 4311 + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} 4312 + engines: {node: ^14.18.0 || >=16.0.0} 4313 + peerDependencies: 4314 + '@types/eslint': '>=8.0.0' 4315 + eslint: '>=8.0.0' 4316 + eslint-config-prettier: '*' 4317 + prettier: '>=3.0.0' 4318 + peerDependenciesMeta: 4319 + '@types/eslint': 4320 + optional: true 4321 + eslint-config-prettier: 4322 + optional: true 3881 4323 3882 4324 eslint-plugin-react-hooks@4.6.2: 3883 4325 resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} ··· 3907 4349 eslint: ^7 || ^8 3908 4350 typescript: ^3 || ^4 || ^5 3909 4351 4352 + eslint-plugin-vue@9.23.0: 4353 + resolution: {integrity: sha512-Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw==} 4354 + engines: {node: ^14.17.0 || >=16.0.0} 4355 + peerDependencies: 4356 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 4357 + 4358 + eslint-plugin-vue@9.27.0: 4359 + resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} 4360 + engines: {node: ^14.17.0 || >=16.0.0} 4361 + peerDependencies: 4362 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 4363 + 3910 4364 eslint-scope@5.1.1: 3911 4365 resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 3912 4366 engines: {node: '>=8.0.0'} 4367 + 4368 + eslint-scope@7.2.2: 4369 + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 4370 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3913 4371 3914 4372 eslint-scope@8.0.1: 3915 4373 resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} ··· 3939 4397 espree@6.2.1: 3940 4398 resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} 3941 4399 engines: {node: '>=6.0.0'} 4400 + 4401 + espree@9.6.1: 4402 + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 4403 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3942 4404 3943 4405 esprima@4.0.1: 3944 4406 resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} ··· 4014 4476 4015 4477 fast-deep-equal@3.1.3: 4016 4478 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 4479 + 4480 + fast-diff@1.3.0: 4481 + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 4017 4482 4018 4483 fast-fifo@1.3.2: 4019 4484 resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} ··· 4228 4693 resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 4229 4694 engines: {node: '>=4'} 4230 4695 4696 + globals@13.24.0: 4697 + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 4698 + engines: {node: '>=8'} 4699 + 4231 4700 globals@14.0.0: 4232 4701 resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 4233 4702 engines: {node: '>=18'} ··· 4284 4753 resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 4285 4754 engines: {node: '>= 0.4'} 4286 4755 4756 + he@1.2.0: 4757 + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 4758 + hasBin: true 4759 + 4287 4760 hookable@5.5.3: 4288 4761 resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 4289 4762 ··· 4293 4766 4294 4767 hpack.js@2.1.6: 4295 4768 resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} 4769 + 4770 + html-encoding-sniffer@4.0.0: 4771 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 4772 + engines: {node: '>=18'} 4296 4773 4297 4774 html-entities@2.5.2: 4298 4775 resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} 4299 4776 4300 4777 html-escaper@2.0.2: 4301 4778 resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 4779 + 4780 + html-tags@3.3.1: 4781 + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} 4782 + engines: {node: '>=8'} 4302 4783 4303 4784 htmlparser2@8.0.2: 4304 4785 resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} ··· 4412 4893 inherits@2.0.4: 4413 4894 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 4414 4895 4896 + ini@1.3.8: 4897 + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 4898 + 4415 4899 ini@4.1.2: 4416 4900 resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} 4417 4901 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} ··· 4455 4939 engines: {node: '>=8'} 4456 4940 hasBin: true 4457 4941 4942 + is-docker@3.0.0: 4943 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 4944 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4945 + hasBin: true 4946 + 4458 4947 is-extglob@2.1.1: 4459 4948 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 4460 4949 engines: {node: '>=0.10.0'} ··· 4474 4963 is-glob@4.0.3: 4475 4964 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 4476 4965 engines: {node: '>=0.10.0'} 4966 + 4967 + is-inside-container@1.0.0: 4968 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 4969 + engines: {node: '>=14.16'} 4970 + hasBin: true 4477 4971 4478 4972 is-interactive@1.0.0: 4479 4973 resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} ··· 4501 4995 resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 4502 4996 engines: {node: '>=0.10.0'} 4503 4997 4998 + is-potential-custom-element-name@1.0.1: 4999 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 5000 + 4504 5001 is-reference@1.2.1: 4505 5002 resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 4506 5003 ··· 4534 5031 is-wsl@2.2.0: 4535 5032 resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 4536 5033 engines: {node: '>=8'} 5034 + 5035 + is-wsl@3.1.0: 5036 + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 5037 + engines: {node: '>=16'} 4537 5038 4538 5039 isarray@1.0.0: 4539 5040 resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} ··· 4581 5082 resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 4582 5083 hasBin: true 4583 5084 5085 + js-beautify@1.15.1: 5086 + resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} 5087 + engines: {node: '>=14'} 5088 + hasBin: true 5089 + 5090 + js-cookie@3.0.5: 5091 + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} 5092 + engines: {node: '>=14'} 5093 + 4584 5094 js-tokens@4.0.0: 4585 5095 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 4586 5096 ··· 4598 5108 jsbn@1.1.0: 4599 5109 resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} 4600 5110 5111 + jsdom@24.1.0: 5112 + resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} 5113 + engines: {node: '>=18'} 5114 + peerDependencies: 5115 + canvas: ^2.11.2 5116 + peerDependenciesMeta: 5117 + canvas: 5118 + optional: true 5119 + 4601 5120 jsesc@0.5.0: 4602 5121 resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 4603 5122 hasBin: true ··· 4660 5179 klona@2.0.6: 4661 5180 resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 4662 5181 engines: {node: '>= 8'} 5182 + 5183 + kolorist@1.8.0: 5184 + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 4663 5185 4664 5186 launch-editor@2.8.0: 4665 5187 resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} ··· 4821 5343 resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} 4822 5344 engines: {node: '>= 4.0.0'} 4823 5345 5346 + memorystream@0.3.1: 5347 + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 5348 + engines: {node: '>= 0.10.0'} 5349 + 4824 5350 merge-descriptors@1.0.1: 4825 5351 resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 4826 5352 ··· 4871 5397 4872 5398 minimatch@3.1.2: 4873 5399 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 5400 + 5401 + minimatch@9.0.1: 5402 + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} 5403 + engines: {node: '>=16 || 14 >=14.17'} 4874 5404 4875 5405 minimatch@9.0.5: 4876 5406 resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} ··· 4949 5479 ms@2.1.3: 4950 5480 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 4951 5481 5482 + muggle-string@0.4.1: 5483 + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 5484 + 4952 5485 multicast-dns@7.2.5: 4953 5486 resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} 4954 5487 hasBin: true ··· 5075 5608 resolution: {integrity: sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==} 5076 5609 engines: {node: ^16.14.0 || >=18.0.0} 5077 5610 5611 + npm-run-all2@6.2.0: 5612 + resolution: {integrity: sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q==} 5613 + engines: {node: ^14.18.0 || >=16.0.0, npm: '>= 8'} 5614 + hasBin: true 5615 + 5078 5616 npm-run-path@4.0.1: 5079 5617 resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 5080 5618 engines: {node: '>=8'} ··· 5086 5624 nth-check@2.1.1: 5087 5625 resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 5088 5626 5627 + nwsapi@2.2.12: 5628 + resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} 5629 + 5089 5630 nypm@0.3.8: 5090 5631 resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} 5091 5632 engines: {node: ^14.16.0 || >=16.10.0} ··· 5127 5668 onetime@6.0.0: 5128 5669 resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 5129 5670 engines: {node: '>=12'} 5671 + 5672 + open@10.1.0: 5673 + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} 5674 + engines: {node: '>=18'} 5130 5675 5131 5676 open@8.4.2: 5132 5677 resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} ··· 5236 5781 resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 5237 5782 engines: {node: '>= 0.8'} 5238 5783 5784 + path-browserify@1.0.1: 5785 + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 5786 + 5239 5787 path-exists@4.0.0: 5240 5788 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 5241 5789 engines: {node: '>=8'} ··· 5305 5853 pify@4.0.1: 5306 5854 resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 5307 5855 engines: {node: '>=6'} 5856 + 5857 + pinia@2.2.1: 5858 + resolution: {integrity: sha512-ltEU3xwiz5ojVMizdP93AHi84Rtfz0+yKd8ud75hr9LVyWX2alxp7vLbY1kFm7MXFmHHr/9B08Xf8Jj6IHTEiQ==} 5859 + peerDependencies: 5860 + '@vue/composition-api': ^1.4.0 5861 + typescript: '>=4.4.4' 5862 + vue: ^2.6.14 || ^3.3.0 5863 + peerDependenciesMeta: 5864 + '@vue/composition-api': 5865 + optional: true 5866 + typescript: 5867 + optional: true 5308 5868 5309 5869 pirates@4.0.6: 5310 5870 resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} ··· 5409 5969 resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} 5410 5970 engines: {node: ^10 || ^12 || >=14} 5411 5971 5972 + postcss@8.4.41: 5973 + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} 5974 + engines: {node: ^10 || ^12 || >=14} 5975 + 5412 5976 preact@10.22.0: 5413 5977 resolution: {integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==} 5414 5978 ··· 5419 5983 prelude-ls@1.2.1: 5420 5984 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 5421 5985 engines: {node: '>= 0.8.0'} 5986 + 5987 + prettier-linter-helpers@1.0.0: 5988 + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 5989 + engines: {node: '>=6.0.0'} 5422 5990 5423 5991 prettier@2.8.8: 5424 5992 resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} ··· 5461 6029 resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} 5462 6030 engines: {node: '>=10'} 5463 6031 6032 + proto-list@1.2.4: 6033 + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} 6034 + 5464 6035 proxy-addr@2.0.7: 5465 6036 resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 5466 6037 engines: {node: '>= 0.10'} ··· 5478 6049 pseudomap@1.0.2: 5479 6050 resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 5480 6051 6052 + psl@1.9.0: 6053 + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 6054 + 5481 6055 pump@3.0.0: 5482 6056 resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 5483 6057 ··· 5498 6072 resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 5499 6073 engines: {node: '>=0.6'} 5500 6074 6075 + querystringify@2.2.0: 6076 + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 6077 + 5501 6078 queue-microtask@1.2.3: 5502 6079 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 5503 6080 ··· 5618 6195 resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} 5619 6196 hasBin: true 5620 6197 6198 + remove-accents@0.5.0: 6199 + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} 6200 + 5621 6201 require-directory@2.1.1: 5622 6202 resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 5623 6203 engines: {node: '>=0.10.0'} ··· 5694 6274 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 5695 6275 hasBin: true 5696 6276 6277 + rrweb-cssom@0.6.0: 6278 + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} 6279 + 6280 + rrweb-cssom@0.7.1: 6281 + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 6282 + 6283 + run-applescript@7.0.0: 6284 + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} 6285 + engines: {node: '>=18'} 6286 + 5697 6287 run-async@3.0.0: 5698 6288 resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} 5699 6289 engines: {node: '>=0.12.0'} ··· 5742 6332 sax@1.4.1: 5743 6333 resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 5744 6334 6335 + saxes@6.0.0: 6336 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 6337 + engines: {node: '>=v12.22.7'} 6338 + 5745 6339 scheduler@0.23.2: 5746 6340 resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 5747 6341 ··· 5849 6443 sigstore@2.3.1: 5850 6444 resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} 5851 6445 engines: {node: ^16.14.0 || >=18.0.0} 6446 + 6447 + sirv@2.0.4: 6448 + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 6449 + engines: {node: '>= 10'} 5852 6450 5853 6451 slash@3.0.0: 5854 6452 resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} ··· 6032 6630 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 6033 6631 engines: {node: '>= 0.4'} 6034 6632 6633 + svg-tags@1.0.0: 6634 + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} 6635 + 6035 6636 symbol-observable@4.0.0: 6036 6637 resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} 6037 6638 engines: {node: '>=0.10'} 6038 6639 6640 + symbol-tree@3.2.4: 6641 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 6642 + 6643 + synckit@0.9.1: 6644 + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} 6645 + engines: {node: ^14.18.0 || >=16.0.0} 6646 + 6039 6647 tabbable@6.2.0: 6040 6648 resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 6041 6649 ··· 6138 6746 resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 6139 6747 engines: {node: '>=0.6'} 6140 6748 6749 + totalist@3.0.1: 6750 + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 6751 + engines: {node: '>=6'} 6752 + 6753 + tough-cookie@4.1.4: 6754 + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} 6755 + engines: {node: '>=6'} 6756 + 6141 6757 tr46@0.0.3: 6142 6758 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 6759 + 6760 + tr46@5.0.0: 6761 + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} 6762 + engines: {node: '>=18'} 6143 6763 6144 6764 tree-kill@1.2.2: 6145 6765 resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} ··· 6195 6815 resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 6196 6816 engines: {node: '>=4'} 6197 6817 6818 + type-fest@0.20.2: 6819 + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 6820 + engines: {node: '>=10'} 6821 + 6198 6822 type-fest@0.21.3: 6199 6823 resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 6200 6824 engines: {node: '>=10'} ··· 6267 6891 resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 6268 6892 engines: {node: '>= 4.0.0'} 6269 6893 6894 + universalify@0.2.0: 6895 + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} 6896 + engines: {node: '>= 4.0.0'} 6897 + 6270 6898 universalify@2.0.1: 6271 6899 resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 6272 6900 engines: {node: '>= 10.0.0'} ··· 6284 6912 uri-js@4.4.1: 6285 6913 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 6286 6914 6915 + url-parse@1.5.10: 6916 + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 6917 + 6287 6918 urlpattern-polyfill@10.0.0: 6288 6919 resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} 6289 6920 ··· 6331 6962 vary@1.1.2: 6332 6963 resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 6333 6964 engines: {node: '>= 0.8'} 6965 + 6966 + vite-hot-client@0.2.3: 6967 + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} 6968 + peerDependencies: 6969 + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 6334 6970 6335 6971 vite-node@1.6.0: 6336 6972 resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} 6337 6973 engines: {node: ^18.0.0 || >=20.0.0} 6338 6974 hasBin: true 6339 6975 6976 + vite-plugin-inspect@0.8.5: 6977 + resolution: {integrity: sha512-JvTUqsP1JNDw0lMZ5Z/r5cSj81VK2B7884LO1DC3GMBhdcjcsAnJjdWq7bzQL01Xbh+v60d3lju3g+z7eAtNew==} 6978 + engines: {node: '>=14'} 6979 + peerDependencies: 6980 + '@nuxt/kit': '*' 6981 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 6982 + peerDependenciesMeta: 6983 + '@nuxt/kit': 6984 + optional: true 6985 + 6986 + vite-plugin-vue-devtools@7.3.1: 6987 + resolution: {integrity: sha512-KuksceHlb5QZtb5gRB4wuRiquZRX74//i0X5jzvy5QzY11qwK44goyVrhPupZbsNfqwmZWNi3CQAe0RhLBUylg==} 6988 + engines: {node: '>=v14.21.3'} 6989 + peerDependencies: 6990 + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 6991 + 6992 + vite-plugin-vue-inspector@5.1.3: 6993 + resolution: {integrity: sha512-pMrseXIDP1Gb38mOevY+BvtNGNqiqmqa2pKB99lnLsADQww9w9xMbAfT4GB6RUoaOkSPrtlXqpq2Fq+Dj2AgFg==} 6994 + peerDependencies: 6995 + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 6996 + 6340 6997 vite@5.1.7: 6341 6998 resolution: {integrity: sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==} 6342 6999 engines: {node: ^18.0.0 || >=20.0.0} ··· 6430 7087 jsdom: 6431 7088 optional: true 6432 7089 6433 - vue-demi@0.14.8: 6434 - resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} 7090 + vscode-uri@3.0.8: 7091 + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} 7092 + 7093 + vue-component-type-helpers@2.0.29: 7094 + resolution: {integrity: sha512-58i+ZhUAUpwQ+9h5Hck0D+jr1qbYl4voRt5KffBx8qzELViQ4XdT/Tuo+mzq8u63teAG8K0lLaOiL5ofqW38rg==} 7095 + 7096 + vue-demi@0.14.10: 7097 + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} 6435 7098 engines: {node: '>=12'} 6436 7099 hasBin: true 6437 7100 peerDependencies: ··· 6441 7104 '@vue/composition-api': 6442 7105 optional: true 6443 7106 6444 - vue@3.4.31: 6445 - resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==} 7107 + vue-eslint-parser@9.4.3: 7108 + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} 7109 + engines: {node: ^14.17.0 || >=16.0.0} 7110 + peerDependencies: 7111 + eslint: '>=6.0.0' 7112 + 7113 + vue-router@4.4.3: 7114 + resolution: {integrity: sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==} 7115 + peerDependencies: 7116 + vue: ^3.2.0 7117 + 7118 + vue-tsc@2.0.29: 7119 + resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==} 7120 + hasBin: true 7121 + peerDependencies: 7122 + typescript: '>=5.0.0' 7123 + 7124 + vue@3.4.37: 7125 + resolution: {integrity: sha512-3vXvNfkKTBsSJ7JP+LyR7GBuwQuckbWvuwAid3xbqK9ppsKt/DUvfqgZ48fgOLEfpy1IacL5f8QhUVl77RaI7A==} 6446 7126 peerDependencies: 6447 7127 typescript: '*' 6448 7128 peerDependenciesMeta: 6449 7129 typescript: 6450 7130 optional: true 6451 7131 7132 + w3c-xmlserializer@5.0.0: 7133 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 7134 + engines: {node: '>=18'} 7135 + 6452 7136 watchpack@2.4.0: 6453 7137 resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 6454 7138 engines: {node: '>=10.13.0'} ··· 6466 7150 webidl-conversions@3.0.1: 6467 7151 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 6468 7152 7153 + webidl-conversions@7.0.0: 7154 + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 7155 + engines: {node: '>=12'} 7156 + 6469 7157 webpack-dev-middleware@5.3.4: 6470 7158 resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} 6471 7159 engines: {node: '>= 12.13.0'} ··· 6530 7218 resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} 6531 7219 engines: {node: '>=0.8.0'} 6532 7220 7221 + whatwg-encoding@3.1.1: 7222 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 7223 + engines: {node: '>=18'} 7224 + 7225 + whatwg-mimetype@4.0.0: 7226 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 7227 + engines: {node: '>=18'} 7228 + 7229 + whatwg-url@14.0.0: 7230 + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} 7231 + engines: {node: '>=18'} 7232 + 6533 7233 whatwg-url@5.0.0: 6534 7234 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 6535 7235 ··· 6597 7297 utf-8-validate: 6598 7298 optional: true 6599 7299 7300 + xml-name-validator@4.0.0: 7301 + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 7302 + engines: {node: '>=12'} 7303 + 7304 + xml-name-validator@5.0.0: 7305 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 7306 + engines: {node: '>=18'} 7307 + 7308 + xmlchars@2.2.0: 7309 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 7310 + 6600 7311 y18n@5.0.8: 6601 7312 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 6602 7313 engines: {node: '>=10'} ··· 6633 7344 yocto-queue@0.1.0: 6634 7345 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 6635 7346 engines: {node: '>=10'} 6636 - 6637 - yocto-queue@1.0.0: 6638 - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 6639 - engines: {node: '>=12.20'} 6640 7347 6641 7348 yocto-queue@1.1.1: 6642 7349 resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} ··· 6982 7689 rxjs: 7.8.1 6983 7690 tslib: 2.6.3 6984 7691 7692 + '@antfu/utils@0.7.10': {} 7693 + 6985 7694 '@apidevtools/json-schema-ref-parser@11.7.0': 6986 7695 dependencies: 6987 7696 '@jsdevtools/ono': 7.1.3 ··· 7039 7748 dependencies: 7040 7749 '@ampproject/remapping': 2.3.0 7041 7750 '@babel/code-frame': 7.24.7 7042 - '@babel/generator': 7.24.7 7751 + '@babel/generator': 7.25.0 7043 7752 '@babel/helper-compilation-targets': 7.24.7 7044 7753 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) 7045 7754 '@babel/helpers': 7.24.7 7046 - '@babel/parser': 7.24.7 7047 - '@babel/template': 7.24.7 7048 - '@babel/traverse': 7.24.7 7049 - '@babel/types': 7.24.7 7755 + '@babel/parser': 7.25.3 7756 + '@babel/template': 7.25.0 7757 + '@babel/traverse': 7.25.3 7758 + '@babel/types': 7.25.2 7050 7759 convert-source-map: 2.0.0 7051 7760 debug: 4.3.5 7052 7761 gensync: 1.0.0-beta.2 ··· 7064 7773 7065 7774 '@babel/generator@7.24.7': 7066 7775 dependencies: 7067 - '@babel/types': 7.24.7 7776 + '@babel/types': 7.25.2 7777 + '@jridgewell/gen-mapping': 0.3.5 7778 + '@jridgewell/trace-mapping': 0.3.25 7779 + jsesc: 2.5.2 7780 + 7781 + '@babel/generator@7.25.0': 7782 + dependencies: 7783 + '@babel/types': 7.25.2 7068 7784 '@jridgewell/gen-mapping': 0.3.5 7069 7785 '@jridgewell/trace-mapping': 0.3.25 7070 7786 jsesc: 2.5.2 ··· 7075 7791 7076 7792 '@babel/helper-annotate-as-pure@7.24.7': 7077 7793 dependencies: 7078 - '@babel/types': 7.24.7 7794 + '@babel/types': 7.25.2 7079 7795 7080 7796 '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': 7081 7797 dependencies: 7082 - '@babel/traverse': 7.24.7 7083 - '@babel/types': 7.24.7 7798 + '@babel/traverse': 7.25.3 7799 + '@babel/types': 7.25.2 7084 7800 transitivePeerDependencies: 7085 7801 - supports-color 7086 7802 ··· 7092 7808 lru-cache: 5.1.1 7093 7809 semver: 6.3.1 7094 7810 7095 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.0)': 7811 + '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.24.0)': 7096 7812 dependencies: 7097 7813 '@babel/core': 7.24.0 7098 7814 '@babel/helper-annotate-as-pure': 7.24.7 7099 - '@babel/helper-environment-visitor': 7.24.7 7100 - '@babel/helper-function-name': 7.24.7 7101 - '@babel/helper-member-expression-to-functions': 7.24.7 7815 + '@babel/helper-member-expression-to-functions': 7.24.8 7816 + '@babel/helper-optimise-call-expression': 7.24.7 7817 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.0) 7818 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7819 + '@babel/traverse': 7.25.3 7820 + semver: 6.3.1 7821 + transitivePeerDependencies: 7822 + - supports-color 7823 + 7824 + '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.24.7)': 7825 + dependencies: 7826 + '@babel/core': 7.24.7 7827 + '@babel/helper-annotate-as-pure': 7.24.7 7828 + '@babel/helper-member-expression-to-functions': 7.24.8 7102 7829 '@babel/helper-optimise-call-expression': 7.24.7 7103 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.0) 7830 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.24.7) 7104 7831 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7105 - '@babel/helper-split-export-declaration': 7.24.7 7832 + '@babel/traverse': 7.25.3 7106 7833 semver: 6.3.1 7107 7834 transitivePeerDependencies: 7108 7835 - supports-color ··· 7118 7845 dependencies: 7119 7846 '@babel/core': 7.24.0 7120 7847 '@babel/helper-compilation-targets': 7.24.7 7121 - '@babel/helper-plugin-utils': 7.24.7 7848 + '@babel/helper-plugin-utils': 7.24.8 7122 7849 debug: 4.3.5 7123 7850 lodash.debounce: 4.0.8 7124 7851 resolve: 1.22.8 ··· 7129 7856 dependencies: 7130 7857 '@babel/core': 7.24.0 7131 7858 '@babel/helper-compilation-targets': 7.24.7 7132 - '@babel/helper-plugin-utils': 7.24.7 7859 + '@babel/helper-plugin-utils': 7.24.8 7133 7860 debug: 4.3.5 7134 7861 lodash.debounce: 4.0.8 7135 7862 resolve: 1.22.8 ··· 7138 7865 7139 7866 '@babel/helper-environment-visitor@7.24.7': 7140 7867 dependencies: 7141 - '@babel/types': 7.24.7 7868 + '@babel/types': 7.25.2 7142 7869 7143 7870 '@babel/helper-function-name@7.24.7': 7144 7871 dependencies: 7145 - '@babel/template': 7.24.7 7146 - '@babel/types': 7.24.7 7872 + '@babel/template': 7.25.0 7873 + '@babel/types': 7.25.2 7147 7874 7148 7875 '@babel/helper-hoist-variables@7.24.7': 7149 7876 dependencies: 7150 - '@babel/types': 7.24.7 7877 + '@babel/types': 7.25.2 7151 7878 7152 - '@babel/helper-member-expression-to-functions@7.24.7': 7879 + '@babel/helper-member-expression-to-functions@7.24.8': 7153 7880 dependencies: 7154 - '@babel/traverse': 7.24.7 7155 - '@babel/types': 7.24.7 7881 + '@babel/traverse': 7.25.3 7882 + '@babel/types': 7.25.2 7156 7883 transitivePeerDependencies: 7157 7884 - supports-color 7158 7885 7886 + '@babel/helper-module-imports@7.22.15': 7887 + dependencies: 7888 + '@babel/types': 7.25.2 7889 + 7159 7890 '@babel/helper-module-imports@7.24.7': 7160 7891 dependencies: 7161 - '@babel/traverse': 7.24.7 7162 - '@babel/types': 7.24.7 7892 + '@babel/traverse': 7.25.3 7893 + '@babel/types': 7.25.2 7163 7894 transitivePeerDependencies: 7164 7895 - supports-color 7165 7896 ··· 7198 7929 7199 7930 '@babel/helper-optimise-call-expression@7.24.7': 7200 7931 dependencies: 7201 - '@babel/types': 7.24.7 7932 + '@babel/types': 7.25.2 7202 7933 7203 7934 '@babel/helper-plugin-utils@7.24.7': {} 7935 + 7936 + '@babel/helper-plugin-utils@7.24.8': {} 7204 7937 7205 7938 '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.0)': 7206 7939 dependencies: ··· 7215 7948 dependencies: 7216 7949 '@babel/core': 7.24.0 7217 7950 '@babel/helper-environment-visitor': 7.24.7 7218 - '@babel/helper-member-expression-to-functions': 7.24.7 7951 + '@babel/helper-member-expression-to-functions': 7.24.8 7952 + '@babel/helper-optimise-call-expression': 7.24.7 7953 + transitivePeerDependencies: 7954 + - supports-color 7955 + 7956 + '@babel/helper-replace-supers@7.25.0(@babel/core@7.24.0)': 7957 + dependencies: 7958 + '@babel/core': 7.24.0 7959 + '@babel/helper-member-expression-to-functions': 7.24.8 7960 + '@babel/helper-optimise-call-expression': 7.24.7 7961 + '@babel/traverse': 7.25.3 7962 + transitivePeerDependencies: 7963 + - supports-color 7964 + 7965 + '@babel/helper-replace-supers@7.25.0(@babel/core@7.24.7)': 7966 + dependencies: 7967 + '@babel/core': 7.24.7 7968 + '@babel/helper-member-expression-to-functions': 7.24.8 7219 7969 '@babel/helper-optimise-call-expression': 7.24.7 7970 + '@babel/traverse': 7.25.3 7220 7971 transitivePeerDependencies: 7221 7972 - supports-color 7222 7973 7223 7974 '@babel/helper-simple-access@7.24.7': 7224 7975 dependencies: 7225 - '@babel/traverse': 7.24.7 7226 - '@babel/types': 7.24.7 7976 + '@babel/traverse': 7.25.3 7977 + '@babel/types': 7.25.2 7227 7978 transitivePeerDependencies: 7228 7979 - supports-color 7229 7980 7230 7981 '@babel/helper-skip-transparent-expression-wrappers@7.24.7': 7231 7982 dependencies: 7232 - '@babel/traverse': 7.24.7 7233 - '@babel/types': 7.24.7 7983 + '@babel/traverse': 7.25.3 7984 + '@babel/types': 7.25.2 7234 7985 transitivePeerDependencies: 7235 7986 - supports-color 7236 7987 ··· 7240 7991 7241 7992 '@babel/helper-split-export-declaration@7.24.7': 7242 7993 dependencies: 7243 - '@babel/types': 7.24.7 7994 + '@babel/types': 7.25.2 7244 7995 7245 7996 '@babel/helper-string-parser@7.24.7': {} 7997 + 7998 + '@babel/helper-string-parser@7.24.8': {} 7246 7999 7247 8000 '@babel/helper-validator-identifier@7.24.7': {} 7248 8001 ··· 7251 8004 '@babel/helper-wrap-function@7.24.7': 7252 8005 dependencies: 7253 8006 '@babel/helper-function-name': 7.24.7 7254 - '@babel/template': 7.24.7 7255 - '@babel/traverse': 7.24.7 7256 - '@babel/types': 7.24.7 8007 + '@babel/template': 7.25.0 8008 + '@babel/traverse': 7.25.3 8009 + '@babel/types': 7.25.2 7257 8010 transitivePeerDependencies: 7258 8011 - supports-color 7259 8012 7260 8013 '@babel/helpers@7.24.7': 7261 8014 dependencies: 7262 - '@babel/template': 7.24.7 7263 - '@babel/types': 7.24.7 8015 + '@babel/template': 7.25.0 8016 + '@babel/types': 7.25.2 7264 8017 7265 8018 '@babel/highlight@7.24.7': 7266 8019 dependencies: ··· 7271 8024 7272 8025 '@babel/parser@7.24.7': 7273 8026 dependencies: 7274 - '@babel/types': 7.24.7 8027 + '@babel/types': 7.25.2 8028 + 8029 + '@babel/parser@7.25.3': 8030 + dependencies: 8031 + '@babel/types': 7.25.2 7275 8032 7276 8033 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.0)': 7277 8034 dependencies: 7278 8035 '@babel/core': 7.24.0 7279 - '@babel/helper-plugin-utils': 7.24.7 8036 + '@babel/helper-plugin-utils': 7.24.8 7280 8037 7281 8038 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.0)': 7282 8039 dependencies: 7283 8040 '@babel/core': 7.24.0 7284 - '@babel/helper-plugin-utils': 7.24.7 8041 + '@babel/helper-plugin-utils': 7.24.8 7285 8042 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7286 8043 '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.0) 7287 8044 transitivePeerDependencies: ··· 7291 8048 dependencies: 7292 8049 '@babel/core': 7.24.0 7293 8050 '@babel/helper-environment-visitor': 7.24.7 7294 - '@babel/helper-plugin-utils': 7.24.7 8051 + '@babel/helper-plugin-utils': 7.24.8 8052 + 8053 + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.7)': 8054 + dependencies: 8055 + '@babel/core': 7.24.7 8056 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.7) 8057 + '@babel/helper-plugin-utils': 7.24.8 8058 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.7) 8059 + transitivePeerDependencies: 8060 + - supports-color 7295 8061 7296 8062 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)': 7297 8063 dependencies: ··· 7300 8066 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': 7301 8067 dependencies: 7302 8068 '@babel/core': 7.24.0 7303 - '@babel/helper-plugin-utils': 7.24.7 8069 + '@babel/helper-plugin-utils': 7.24.8 7304 8070 7305 8071 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': 7306 8072 dependencies: 7307 8073 '@babel/core': 7.24.0 7308 - '@babel/helper-plugin-utils': 7.24.7 8074 + '@babel/helper-plugin-utils': 7.24.8 7309 8075 7310 8076 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)': 7311 8077 dependencies: 7312 8078 '@babel/core': 7.24.0 7313 - '@babel/helper-plugin-utils': 7.24.7 8079 + '@babel/helper-plugin-utils': 7.24.8 8080 + 8081 + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.7)': 8082 + dependencies: 8083 + '@babel/core': 7.24.7 8084 + '@babel/helper-plugin-utils': 7.24.8 7314 8085 7315 8086 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.0)': 7316 8087 dependencies: 7317 8088 '@babel/core': 7.24.0 7318 - '@babel/helper-plugin-utils': 7.24.7 8089 + '@babel/helper-plugin-utils': 7.24.8 7319 8090 7320 8091 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': 7321 8092 dependencies: 7322 8093 '@babel/core': 7.24.0 7323 - '@babel/helper-plugin-utils': 7.24.7 8094 + '@babel/helper-plugin-utils': 7.24.8 7324 8095 7325 8096 '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.0)': 7326 8097 dependencies: 7327 8098 '@babel/core': 7.24.0 7328 - '@babel/helper-plugin-utils': 7.24.7 8099 + '@babel/helper-plugin-utils': 7.24.8 7329 8100 7330 8101 '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.0)': 7331 8102 dependencies: 7332 8103 '@babel/core': 7.24.0 7333 - '@babel/helper-plugin-utils': 7.24.7 8104 + '@babel/helper-plugin-utils': 7.24.8 8105 + 8106 + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)': 8107 + dependencies: 8108 + '@babel/core': 7.24.7 8109 + '@babel/helper-plugin-utils': 7.24.8 7334 8110 7335 8111 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': 7336 8112 dependencies: 7337 8113 '@babel/core': 7.24.0 7338 - '@babel/helper-plugin-utils': 7.24.7 8114 + '@babel/helper-plugin-utils': 7.24.8 8115 + 8116 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': 8117 + dependencies: 8118 + '@babel/core': 7.24.7 8119 + '@babel/helper-plugin-utils': 7.24.8 7339 8120 7340 8121 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': 7341 8122 dependencies: 7342 8123 '@babel/core': 7.24.0 7343 - '@babel/helper-plugin-utils': 7.24.7 8124 + '@babel/helper-plugin-utils': 7.24.8 8125 + 8126 + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': 8127 + dependencies: 8128 + '@babel/core': 7.24.7 8129 + '@babel/helper-plugin-utils': 7.24.8 7344 8130 7345 8131 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': 7346 8132 dependencies: 7347 8133 '@babel/core': 7.24.0 7348 - '@babel/helper-plugin-utils': 7.24.7 8134 + '@babel/helper-plugin-utils': 7.24.8 7349 8135 7350 8136 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': 7351 8137 dependencies: 7352 8138 '@babel/core': 7.24.0 7353 - '@babel/helper-plugin-utils': 7.24.7 8139 + '@babel/helper-plugin-utils': 7.24.8 7354 8140 7355 8141 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': 7356 8142 dependencies: 7357 8143 '@babel/core': 7.24.0 7358 - '@babel/helper-plugin-utils': 7.24.7 8144 + '@babel/helper-plugin-utils': 7.24.8 7359 8145 7360 8146 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': 7361 8147 dependencies: 7362 8148 '@babel/core': 7.24.0 7363 - '@babel/helper-plugin-utils': 7.24.7 8149 + '@babel/helper-plugin-utils': 7.24.8 7364 8150 7365 8151 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': 7366 8152 dependencies: 7367 8153 '@babel/core': 7.24.0 7368 - '@babel/helper-plugin-utils': 7.24.7 8154 + '@babel/helper-plugin-utils': 7.24.8 7369 8155 7370 8156 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': 7371 8157 dependencies: 7372 8158 '@babel/core': 7.24.0 7373 - '@babel/helper-plugin-utils': 7.24.7 8159 + '@babel/helper-plugin-utils': 7.24.8 7374 8160 7375 8161 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)': 7376 8162 dependencies: 7377 8163 '@babel/core': 7.24.0 7378 - '@babel/helper-plugin-utils': 7.24.7 8164 + '@babel/helper-plugin-utils': 7.24.8 7379 8165 7380 8166 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': 7381 8167 dependencies: 7382 8168 '@babel/core': 7.24.0 7383 - '@babel/helper-plugin-utils': 7.24.7 8169 + '@babel/helper-plugin-utils': 7.24.8 8170 + 8171 + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': 8172 + dependencies: 8173 + '@babel/core': 7.24.7 8174 + '@babel/helper-plugin-utils': 7.24.8 7384 8175 7385 8176 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)': 7386 8177 dependencies: 7387 8178 '@babel/core': 7.24.0 7388 8179 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7389 - '@babel/helper-plugin-utils': 7.24.7 8180 + '@babel/helper-plugin-utils': 7.24.8 7390 8181 7391 8182 '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.0)': 7392 8183 dependencies: 7393 8184 '@babel/core': 7.24.0 7394 - '@babel/helper-plugin-utils': 7.24.7 8185 + '@babel/helper-plugin-utils': 7.24.8 7395 8186 7396 8187 '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0)': 7397 8188 dependencies: ··· 7415 8206 '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.0)': 7416 8207 dependencies: 7417 8208 '@babel/core': 7.24.0 7418 - '@babel/helper-plugin-utils': 7.24.7 8209 + '@babel/helper-plugin-utils': 7.24.8 7419 8210 7420 8211 '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.0)': 7421 8212 dependencies: 7422 8213 '@babel/core': 7.24.0 7423 - '@babel/helper-plugin-utils': 7.24.7 8214 + '@babel/helper-plugin-utils': 7.24.8 7424 8215 7425 8216 '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.0)': 7426 8217 dependencies: 7427 8218 '@babel/core': 7.24.0 7428 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.0) 7429 - '@babel/helper-plugin-utils': 7.24.7 8219 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.0) 8220 + '@babel/helper-plugin-utils': 7.24.8 7430 8221 transitivePeerDependencies: 7431 8222 - supports-color 7432 8223 7433 8224 '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.0)': 7434 8225 dependencies: 7435 8226 '@babel/core': 7.24.0 7436 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.0) 7437 - '@babel/helper-plugin-utils': 7.24.7 8227 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.0) 8228 + '@babel/helper-plugin-utils': 7.24.8 7438 8229 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) 7439 8230 transitivePeerDependencies: 7440 8231 - supports-color ··· 7446 8237 '@babel/helper-compilation-targets': 7.24.7 7447 8238 '@babel/helper-environment-visitor': 7.24.7 7448 8239 '@babel/helper-function-name': 7.24.7 7449 - '@babel/helper-plugin-utils': 7.24.7 8240 + '@babel/helper-plugin-utils': 7.24.8 7450 8241 '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.0) 7451 8242 '@babel/helper-split-export-declaration': 7.24.7 7452 8243 globals: 11.12.0 ··· 7456 8247 '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.0)': 7457 8248 dependencies: 7458 8249 '@babel/core': 7.24.0 7459 - '@babel/helper-plugin-utils': 7.24.7 7460 - '@babel/template': 7.24.7 8250 + '@babel/helper-plugin-utils': 7.24.8 8251 + '@babel/template': 7.25.0 7461 8252 7462 8253 '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.0)': 7463 8254 dependencies: 7464 8255 '@babel/core': 7.24.0 7465 - '@babel/helper-plugin-utils': 7.24.7 8256 + '@babel/helper-plugin-utils': 7.24.8 7466 8257 7467 8258 '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.0)': 7468 8259 dependencies: 7469 8260 '@babel/core': 7.24.0 7470 8261 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7471 - '@babel/helper-plugin-utils': 7.24.7 8262 + '@babel/helper-plugin-utils': 7.24.8 7472 8263 7473 8264 '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.0)': 7474 8265 dependencies: 7475 8266 '@babel/core': 7.24.0 7476 - '@babel/helper-plugin-utils': 7.24.7 8267 + '@babel/helper-plugin-utils': 7.24.8 7477 8268 7478 8269 '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.0)': 7479 8270 dependencies: 7480 8271 '@babel/core': 7.24.0 7481 - '@babel/helper-plugin-utils': 7.24.7 8272 + '@babel/helper-plugin-utils': 7.24.8 7482 8273 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) 7483 8274 7484 8275 '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.0)': 7485 8276 dependencies: 7486 8277 '@babel/core': 7.24.0 7487 8278 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 7488 - '@babel/helper-plugin-utils': 7.24.7 8279 + '@babel/helper-plugin-utils': 7.24.8 7489 8280 transitivePeerDependencies: 7490 8281 - supports-color 7491 8282 7492 8283 '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.0)': 7493 8284 dependencies: 7494 8285 '@babel/core': 7.24.0 7495 - '@babel/helper-plugin-utils': 7.24.7 8286 + '@babel/helper-plugin-utils': 7.24.8 7496 8287 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) 7497 8288 7498 8289 '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.0)': 7499 8290 dependencies: 7500 8291 '@babel/core': 7.24.0 7501 - '@babel/helper-plugin-utils': 7.24.7 8292 + '@babel/helper-plugin-utils': 7.24.8 7502 8293 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7503 8294 transitivePeerDependencies: 7504 8295 - supports-color ··· 7508 8299 '@babel/core': 7.24.0 7509 8300 '@babel/helper-compilation-targets': 7.24.7 7510 8301 '@babel/helper-function-name': 7.24.7 7511 - '@babel/helper-plugin-utils': 7.24.7 8302 + '@babel/helper-plugin-utils': 7.24.8 7512 8303 7513 8304 '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.0)': 7514 8305 dependencies: 7515 8306 '@babel/core': 7.24.0 7516 - '@babel/helper-plugin-utils': 7.24.7 8307 + '@babel/helper-plugin-utils': 7.24.8 7517 8308 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) 7518 8309 7519 8310 '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.0)': 7520 8311 dependencies: 7521 8312 '@babel/core': 7.24.0 7522 - '@babel/helper-plugin-utils': 7.24.7 8313 + '@babel/helper-plugin-utils': 7.24.8 7523 8314 7524 8315 '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.0)': 7525 8316 dependencies: 7526 8317 '@babel/core': 7.24.0 7527 - '@babel/helper-plugin-utils': 7.24.7 8318 + '@babel/helper-plugin-utils': 7.24.8 7528 8319 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) 7529 8320 7530 8321 '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.0)': 7531 8322 dependencies: 7532 8323 '@babel/core': 7.24.0 7533 - '@babel/helper-plugin-utils': 7.24.7 8324 + '@babel/helper-plugin-utils': 7.24.8 7534 8325 7535 8326 '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.0)': 7536 8327 dependencies: 7537 8328 '@babel/core': 7.24.0 7538 8329 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) 7539 - '@babel/helper-plugin-utils': 7.24.7 8330 + '@babel/helper-plugin-utils': 7.24.8 7540 8331 transitivePeerDependencies: 7541 8332 - supports-color 7542 8333 ··· 7544 8335 dependencies: 7545 8336 '@babel/core': 7.24.0 7546 8337 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) 7547 - '@babel/helper-plugin-utils': 7.24.7 8338 + '@babel/helper-plugin-utils': 7.24.8 7548 8339 '@babel/helper-simple-access': 7.24.7 7549 8340 transitivePeerDependencies: 7550 8341 - supports-color ··· 7554 8345 '@babel/core': 7.24.0 7555 8346 '@babel/helper-hoist-variables': 7.24.7 7556 8347 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) 7557 - '@babel/helper-plugin-utils': 7.24.7 8348 + '@babel/helper-plugin-utils': 7.24.8 7558 8349 '@babel/helper-validator-identifier': 7.24.7 7559 8350 transitivePeerDependencies: 7560 8351 - supports-color ··· 7563 8354 dependencies: 7564 8355 '@babel/core': 7.24.0 7565 8356 '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.0) 7566 - '@babel/helper-plugin-utils': 7.24.7 8357 + '@babel/helper-plugin-utils': 7.24.8 7567 8358 transitivePeerDependencies: 7568 8359 - supports-color 7569 8360 ··· 7571 8362 dependencies: 7572 8363 '@babel/core': 7.24.0 7573 8364 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7574 - '@babel/helper-plugin-utils': 7.24.7 8365 + '@babel/helper-plugin-utils': 7.24.8 7575 8366 7576 8367 '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.0)': 7577 8368 dependencies: 7578 8369 '@babel/core': 7.24.0 7579 - '@babel/helper-plugin-utils': 7.24.7 8370 + '@babel/helper-plugin-utils': 7.24.8 7580 8371 7581 8372 '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.0)': 7582 8373 dependencies: 7583 8374 '@babel/core': 7.24.0 7584 - '@babel/helper-plugin-utils': 7.24.7 8375 + '@babel/helper-plugin-utils': 7.24.8 7585 8376 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) 7586 8377 7587 8378 '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.0)': 7588 8379 dependencies: 7589 8380 '@babel/core': 7.24.0 7590 - '@babel/helper-plugin-utils': 7.24.7 8381 + '@babel/helper-plugin-utils': 7.24.8 7591 8382 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) 7592 8383 7593 8384 '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.0)': 7594 8385 dependencies: 7595 8386 '@babel/core': 7.24.0 7596 8387 '@babel/helper-compilation-targets': 7.24.7 7597 - '@babel/helper-plugin-utils': 7.24.7 8388 + '@babel/helper-plugin-utils': 7.24.8 7598 8389 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) 7599 8390 '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.0) 7600 8391 7601 8392 '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.0)': 7602 8393 dependencies: 7603 8394 '@babel/core': 7.24.0 7604 - '@babel/helper-plugin-utils': 7.24.7 8395 + '@babel/helper-plugin-utils': 7.24.8 7605 8396 '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.0) 7606 8397 transitivePeerDependencies: 7607 8398 - supports-color ··· 7609 8400 '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.0)': 7610 8401 dependencies: 7611 8402 '@babel/core': 7.24.0 7612 - '@babel/helper-plugin-utils': 7.24.7 8403 + '@babel/helper-plugin-utils': 7.24.8 7613 8404 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) 7614 8405 7615 8406 '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.0)': 7616 8407 dependencies: 7617 8408 '@babel/core': 7.24.0 7618 - '@babel/helper-plugin-utils': 7.24.7 8409 + '@babel/helper-plugin-utils': 7.24.8 7619 8410 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7620 8411 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) 7621 8412 transitivePeerDependencies: ··· 7624 8415 '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.0)': 7625 8416 dependencies: 7626 8417 '@babel/core': 7.24.0 7627 - '@babel/helper-plugin-utils': 7.24.7 8418 + '@babel/helper-plugin-utils': 7.24.8 7628 8419 7629 8420 '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.0)': 7630 8421 dependencies: 7631 8422 '@babel/core': 7.24.0 7632 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.0) 7633 - '@babel/helper-plugin-utils': 7.24.7 8423 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.0) 8424 + '@babel/helper-plugin-utils': 7.24.8 7634 8425 transitivePeerDependencies: 7635 8426 - supports-color 7636 8427 ··· 7638 8429 dependencies: 7639 8430 '@babel/core': 7.24.0 7640 8431 '@babel/helper-annotate-as-pure': 7.24.7 7641 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.0) 7642 - '@babel/helper-plugin-utils': 7.24.7 8432 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.0) 8433 + '@babel/helper-plugin-utils': 7.24.8 7643 8434 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) 7644 8435 transitivePeerDependencies: 7645 8436 - supports-color ··· 7647 8438 '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.0)': 7648 8439 dependencies: 7649 8440 '@babel/core': 7.24.0 7650 - '@babel/helper-plugin-utils': 7.24.7 8441 + '@babel/helper-plugin-utils': 7.24.8 7651 8442 7652 8443 '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': 7653 8444 dependencies: ··· 7662 8453 '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.0)': 7663 8454 dependencies: 7664 8455 '@babel/core': 7.24.0 7665 - '@babel/helper-plugin-utils': 7.24.7 8456 + '@babel/helper-plugin-utils': 7.24.8 7666 8457 regenerator-transform: 0.15.2 7667 8458 7668 8459 '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.0)': 7669 8460 dependencies: 7670 8461 '@babel/core': 7.24.0 7671 - '@babel/helper-plugin-utils': 7.24.7 8462 + '@babel/helper-plugin-utils': 7.24.8 7672 8463 7673 8464 '@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0)': 7674 8465 dependencies: ··· 7685 8476 '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.0)': 7686 8477 dependencies: 7687 8478 '@babel/core': 7.24.0 7688 - '@babel/helper-plugin-utils': 7.24.7 8479 + '@babel/helper-plugin-utils': 7.24.8 7689 8480 7690 8481 '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.0)': 7691 8482 dependencies: 7692 8483 '@babel/core': 7.24.0 7693 - '@babel/helper-plugin-utils': 7.24.7 8484 + '@babel/helper-plugin-utils': 7.24.8 7694 8485 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 7695 8486 transitivePeerDependencies: 7696 8487 - supports-color ··· 7698 8489 '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.0)': 7699 8490 dependencies: 7700 8491 '@babel/core': 7.24.0 7701 - '@babel/helper-plugin-utils': 7.24.7 8492 + '@babel/helper-plugin-utils': 7.24.8 7702 8493 7703 8494 '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.0)': 7704 8495 dependencies: 7705 8496 '@babel/core': 7.24.0 7706 - '@babel/helper-plugin-utils': 7.24.7 8497 + '@babel/helper-plugin-utils': 7.24.8 7707 8498 7708 8499 '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.0)': 7709 8500 dependencies: 7710 8501 '@babel/core': 7.24.0 7711 - '@babel/helper-plugin-utils': 7.24.7 8502 + '@babel/helper-plugin-utils': 7.24.8 8503 + 8504 + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.24.7)': 8505 + dependencies: 8506 + '@babel/core': 7.24.7 8507 + '@babel/helper-annotate-as-pure': 7.24.7 8508 + '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.24.7) 8509 + '@babel/helper-plugin-utils': 7.24.8 8510 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 8511 + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) 8512 + transitivePeerDependencies: 8513 + - supports-color 7712 8514 7713 8515 '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.0)': 7714 8516 dependencies: 7715 8517 '@babel/core': 7.24.0 7716 - '@babel/helper-plugin-utils': 7.24.7 8518 + '@babel/helper-plugin-utils': 7.24.8 7717 8519 7718 8520 '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.0)': 7719 8521 dependencies: 7720 8522 '@babel/core': 7.24.0 7721 8523 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7722 - '@babel/helper-plugin-utils': 7.24.7 8524 + '@babel/helper-plugin-utils': 7.24.8 7723 8525 7724 8526 '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.0)': 7725 8527 dependencies: 7726 8528 '@babel/core': 7.24.0 7727 8529 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7728 - '@babel/helper-plugin-utils': 7.24.7 8530 + '@babel/helper-plugin-utils': 7.24.8 7729 8531 7730 8532 '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.0)': 7731 8533 dependencies: 7732 8534 '@babel/core': 7.24.0 7733 8535 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.0) 7734 - '@babel/helper-plugin-utils': 7.24.7 8536 + '@babel/helper-plugin-utils': 7.24.8 7735 8537 7736 8538 '@babel/preset-env@7.24.0(@babel/core@7.24.0)': 7737 8539 dependencies: ··· 7822 8624 '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)': 7823 8625 dependencies: 7824 8626 '@babel/core': 7.24.0 7825 - '@babel/helper-plugin-utils': 7.24.7 7826 - '@babel/types': 7.24.7 8627 + '@babel/helper-plugin-utils': 7.24.8 8628 + '@babel/types': 7.25.2 7827 8629 esutils: 2.0.3 7828 8630 7829 8631 '@babel/regjsgen@0.8.0': {} ··· 7839 8641 '@babel/template@7.24.7': 7840 8642 dependencies: 7841 8643 '@babel/code-frame': 7.24.7 7842 - '@babel/parser': 7.24.7 7843 - '@babel/types': 7.24.7 8644 + '@babel/parser': 7.25.3 8645 + '@babel/types': 7.25.2 8646 + 8647 + '@babel/template@7.25.0': 8648 + dependencies: 8649 + '@babel/code-frame': 7.24.7 8650 + '@babel/parser': 7.25.3 8651 + '@babel/types': 7.25.2 7844 8652 7845 8653 '@babel/traverse@7.24.7': 7846 8654 dependencies: 7847 8655 '@babel/code-frame': 7.24.7 7848 - '@babel/generator': 7.24.7 8656 + '@babel/generator': 7.25.0 7849 8657 '@babel/helper-environment-visitor': 7.24.7 7850 8658 '@babel/helper-function-name': 7.24.7 7851 8659 '@babel/helper-hoist-variables': 7.24.7 7852 8660 '@babel/helper-split-export-declaration': 7.24.7 7853 - '@babel/parser': 7.24.7 7854 - '@babel/types': 7.24.7 8661 + '@babel/parser': 7.25.3 8662 + '@babel/types': 7.25.2 8663 + debug: 4.3.5 8664 + globals: 11.12.0 8665 + transitivePeerDependencies: 8666 + - supports-color 8667 + 8668 + '@babel/traverse@7.25.3': 8669 + dependencies: 8670 + '@babel/code-frame': 7.24.7 8671 + '@babel/generator': 7.25.0 8672 + '@babel/parser': 7.25.3 8673 + '@babel/template': 7.25.0 8674 + '@babel/types': 7.25.2 7855 8675 debug: 4.3.5 7856 8676 globals: 11.12.0 7857 8677 transitivePeerDependencies: ··· 7860 8680 '@babel/types@7.24.7': 7861 8681 dependencies: 7862 8682 '@babel/helper-string-parser': 7.24.7 8683 + '@babel/helper-validator-identifier': 7.24.7 8684 + to-fast-properties: 2.0.0 8685 + 8686 + '@babel/types@7.25.2': 8687 + dependencies: 8688 + '@babel/helper-string-parser': 7.24.8 7863 8689 '@babel/helper-validator-identifier': 7.24.7 7864 8690 to-fast-properties: 2.0.0 7865 8691 ··· 8485 9311 - bluebird 8486 9312 - supports-color 8487 9313 9314 + '@one-ini/wasm@0.1.1': {} 9315 + 8488 9316 '@pkgjs/parseargs@0.11.0': 8489 9317 optional: true 9318 + 9319 + '@pkgr/core@0.1.1': {} 9320 + 9321 + '@polka/url@1.0.0-next.25': {} 8490 9322 8491 9323 '@puppeteer/browsers@2.2.3': 8492 9324 dependencies: ··· 9251 10083 '@rollup/rollup-win32-x64-msvc@4.18.0': 9252 10084 optional: true 9253 10085 10086 + '@rushstack/eslint-patch@1.10.4': {} 10087 + 9254 10088 '@schematics/angular@17.3.7(chokidar@3.6.0)': 9255 10089 dependencies: 9256 10090 '@angular-devkit/core': 17.3.7(chokidar@3.6.0) ··· 9303 10137 9304 10138 '@stackblitz/sdk@1.11.0': {} 9305 10139 9306 - '@tanstack/query-core@5.51.9': {} 10140 + '@tanstack/match-sorter-utils@8.19.4': 10141 + dependencies: 10142 + remove-accents: 0.5.0 10143 + 10144 + '@tanstack/query-core@5.51.21': {} 10145 + 10146 + '@tanstack/query-devtools@5.51.16': {} 10147 + 10148 + '@tanstack/react-query-devtools@5.51.23(@tanstack/react-query@5.51.23(react@18.3.1))(react@18.3.1)': 10149 + dependencies: 10150 + '@tanstack/query-devtools': 5.51.16 10151 + '@tanstack/react-query': 5.51.23(react@18.3.1) 10152 + react: 18.3.1 9307 10153 9308 - '@tanstack/react-query@5.51.11(react@18.3.1)': 10154 + '@tanstack/react-query@5.51.23(react@18.3.1)': 9309 10155 dependencies: 9310 - '@tanstack/query-core': 5.51.9 10156 + '@tanstack/query-core': 5.51.21 9311 10157 react: 18.3.1 9312 10158 10159 + '@tanstack/vue-query-devtools@5.51.21(@tanstack/vue-query@5.51.21(vue@3.4.37(typescript@5.5.3)))(vue@3.4.37(typescript@5.5.3))': 10160 + dependencies: 10161 + '@tanstack/query-devtools': 5.51.16 10162 + '@tanstack/vue-query': 5.51.21(vue@3.4.37(typescript@5.5.3)) 10163 + vue: 3.4.37(typescript@5.5.3) 10164 + 10165 + '@tanstack/vue-query@5.51.21(vue@3.4.37(typescript@5.5.3))': 10166 + dependencies: 10167 + '@tanstack/match-sorter-utils': 8.19.4 10168 + '@tanstack/query-core': 5.51.21 10169 + '@vue/devtools-api': 6.6.3 10170 + vue: 3.4.37(typescript@5.5.3) 10171 + vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.3)) 10172 + 9313 10173 '@tootallnate/quickjs-emscripten@0.23.0': {} 9314 10174 9315 10175 '@tsconfig/node10@1.0.11': {} ··· 9320 10180 9321 10181 '@tsconfig/node16@1.0.4': {} 9322 10182 10183 + '@tsconfig/node20@20.1.4': {} 10184 + 9323 10185 '@tufjs/canonical-json@2.0.0': {} 9324 10186 9325 10187 '@tufjs/models@2.0.1': ··· 9337 10199 9338 10200 '@types/babel__generator@7.6.8': 9339 10201 dependencies: 9340 - '@babel/types': 7.24.7 10202 + '@babel/types': 7.25.2 9341 10203 9342 10204 '@types/babel__template@7.4.4': 9343 10205 dependencies: 9344 - '@babel/parser': 7.24.7 9345 - '@babel/types': 7.24.7 10206 + '@babel/parser': 7.25.3 10207 + '@babel/types': 7.25.2 9346 10208 9347 10209 '@types/babel__traverse@7.20.6': 9348 10210 dependencies: 9349 - '@babel/types': 7.24.7 10211 + '@babel/types': 7.25.2 9350 10212 9351 10213 '@types/body-parser@1.19.5': 9352 10214 dependencies: ··· 9406 10268 dependencies: 9407 10269 '@types/node': 20.14.10 9408 10270 10271 + '@types/jsdom@21.1.7': 10272 + dependencies: 10273 + '@types/node': 20.14.10 10274 + '@types/tough-cookie': 4.0.5 10275 + parse5: 7.1.2 10276 + 9409 10277 '@types/json-schema@7.0.15': {} 9410 10278 9411 10279 '@types/linkify-it@5.0.0': {} ··· 9426 10294 '@types/node@12.20.55': {} 9427 10295 9428 10296 '@types/node@20.14.10': 10297 + dependencies: 10298 + undici-types: 5.26.5 10299 + 10300 + '@types/node@20.14.5': 9429 10301 dependencies: 9430 10302 undici-types: 5.26.5 9431 10303 ··· 9468 10340 '@types/sockjs@0.3.36': 9469 10341 dependencies: 9470 10342 '@types/node': 20.14.10 10343 + 10344 + '@types/tough-cookie@4.0.5': {} 9471 10345 9472 10346 '@types/unist@3.0.2': {} 9473 10347 ··· 9627 10501 transitivePeerDependencies: 9628 10502 - supports-color 9629 10503 9630 - '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))': 10504 + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3))': 10505 + dependencies: 10506 + '@babel/core': 7.24.7 10507 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.24.7) 10508 + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) 10509 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 10510 + vue: 3.4.37(typescript@5.5.3) 10511 + transitivePeerDependencies: 10512 + - supports-color 10513 + 10514 + '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3))': 9631 10515 dependencies: 9632 10516 vite: 5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 9633 - vue: 3.4.31(typescript@5.5.3) 10517 + vue: 3.4.37(typescript@5.5.3) 9634 10518 9635 - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))': 10519 + '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3))': 10520 + dependencies: 10521 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 10522 + vue: 3.4.37(typescript@5.5.3) 10523 + 10524 + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))': 9636 10525 dependencies: 9637 10526 '@ampproject/remapping': 2.3.0 9638 10527 '@bcoe/v8-coverage': 0.2.3 ··· 9647 10536 std-env: 3.7.0 9648 10537 strip-literal: 2.1.0 9649 10538 test-exclude: 6.0.0 9650 - vitest: 1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 10539 + vitest: 1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 9651 10540 transitivePeerDependencies: 9652 10541 - supports-color 9653 10542 ··· 9680 10569 loupe: 2.3.7 9681 10570 pretty-format: 29.7.0 9682 10571 9683 - '@vue/compiler-core@3.4.31': 10572 + '@volar/language-core@2.4.0-alpha.18': 10573 + dependencies: 10574 + '@volar/source-map': 2.4.0-alpha.18 10575 + 10576 + '@volar/source-map@2.4.0-alpha.18': {} 10577 + 10578 + '@volar/typescript@2.4.0-alpha.18': 10579 + dependencies: 10580 + '@volar/language-core': 2.4.0-alpha.18 10581 + path-browserify: 1.0.1 10582 + vscode-uri: 3.0.8 10583 + 10584 + '@vue/babel-helper-vue-transform-on@1.2.2': {} 10585 + 10586 + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': 10587 + dependencies: 10588 + '@babel/helper-module-imports': 7.22.15 10589 + '@babel/helper-plugin-utils': 7.24.8 10590 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) 10591 + '@babel/template': 7.25.0 10592 + '@babel/traverse': 7.25.3 10593 + '@babel/types': 7.25.2 10594 + '@vue/babel-helper-vue-transform-on': 1.2.2 10595 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7) 10596 + camelcase: 6.3.0 10597 + html-tags: 3.3.1 10598 + svg-tags: 1.0.0 10599 + optionalDependencies: 10600 + '@babel/core': 7.24.7 10601 + transitivePeerDependencies: 10602 + - supports-color 10603 + 10604 + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': 9684 10605 dependencies: 9685 - '@babel/parser': 7.24.7 9686 - '@vue/shared': 3.4.31 9687 - entities: 4.5.0 10606 + '@babel/code-frame': 7.24.7 10607 + '@babel/core': 7.24.7 10608 + '@babel/helper-module-imports': 7.22.15 10609 + '@babel/helper-plugin-utils': 7.24.8 10610 + '@babel/parser': 7.25.3 10611 + '@vue/compiler-sfc': 3.4.37 10612 + 10613 + '@vue/compiler-core@3.4.37': 10614 + dependencies: 10615 + '@babel/parser': 7.25.3 10616 + '@vue/shared': 3.4.37 10617 + entities: 5.0.0 9688 10618 estree-walker: 2.0.2 9689 10619 source-map-js: 1.2.0 9690 10620 9691 - '@vue/compiler-dom@3.4.31': 10621 + '@vue/compiler-dom@3.4.37': 9692 10622 dependencies: 9693 - '@vue/compiler-core': 3.4.31 9694 - '@vue/shared': 3.4.31 10623 + '@vue/compiler-core': 3.4.37 10624 + '@vue/shared': 3.4.37 9695 10625 9696 - '@vue/compiler-sfc@3.4.31': 10626 + '@vue/compiler-sfc@3.4.37': 9697 10627 dependencies: 9698 - '@babel/parser': 7.24.7 9699 - '@vue/compiler-core': 3.4.31 9700 - '@vue/compiler-dom': 3.4.31 9701 - '@vue/compiler-ssr': 3.4.31 9702 - '@vue/shared': 3.4.31 10628 + '@babel/parser': 7.25.3 10629 + '@vue/compiler-core': 3.4.37 10630 + '@vue/compiler-dom': 3.4.37 10631 + '@vue/compiler-ssr': 3.4.37 10632 + '@vue/shared': 3.4.37 9703 10633 estree-walker: 2.0.2 9704 10634 magic-string: 0.30.10 9705 - postcss: 8.4.39 10635 + postcss: 8.4.41 9706 10636 source-map-js: 1.2.0 9707 10637 9708 - '@vue/compiler-ssr@3.4.31': 10638 + '@vue/compiler-ssr@3.4.37': 9709 10639 dependencies: 9710 - '@vue/compiler-dom': 3.4.31 9711 - '@vue/shared': 3.4.31 10640 + '@vue/compiler-dom': 3.4.37 10641 + '@vue/shared': 3.4.37 10642 + 10643 + '@vue/compiler-vue2@2.7.16': 10644 + dependencies: 10645 + de-indent: 1.0.2 10646 + he: 1.2.0 10647 + 10648 + '@vue/devtools-api@6.6.3': {} 9712 10649 9713 10650 '@vue/devtools-api@7.3.5': 9714 10651 dependencies: 9715 10652 '@vue/devtools-kit': 7.3.5 9716 10653 10654 + '@vue/devtools-core@7.3.7(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3))': 10655 + dependencies: 10656 + '@vue/devtools-kit': 7.3.7 10657 + '@vue/devtools-shared': 7.3.7 10658 + mitt: 3.0.1 10659 + nanoid: 3.3.7 10660 + pathe: 1.1.2 10661 + vite-hot-client: 0.2.3(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 10662 + vue: 3.4.37(typescript@5.5.3) 10663 + transitivePeerDependencies: 10664 + - vite 10665 + 9717 10666 '@vue/devtools-kit@7.3.5': 9718 10667 dependencies: 9719 - '@vue/devtools-shared': 7.3.5 10668 + '@vue/devtools-shared': 7.3.7 10669 + birpc: 0.2.17 10670 + hookable: 5.5.3 10671 + mitt: 3.0.1 10672 + perfect-debounce: 1.0.0 10673 + speakingurl: 14.0.1 10674 + superjson: 2.2.1 10675 + 10676 + '@vue/devtools-kit@7.3.7': 10677 + dependencies: 10678 + '@vue/devtools-shared': 7.3.7 9720 10679 birpc: 0.2.17 9721 10680 hookable: 5.5.3 9722 10681 mitt: 3.0.1 ··· 9724 10683 speakingurl: 14.0.1 9725 10684 superjson: 2.2.1 9726 10685 9727 - '@vue/devtools-shared@7.3.5': 10686 + '@vue/devtools-shared@7.3.7': 9728 10687 dependencies: 9729 10688 rfdc: 1.4.1 9730 10689 9731 - '@vue/reactivity@3.4.31': 10690 + '@vue/eslint-config-prettier@9.0.0(@types/eslint@8.56.10)(eslint@9.6.0)(prettier@3.3.2)': 9732 10691 dependencies: 9733 - '@vue/shared': 3.4.31 10692 + eslint: 9.6.0 10693 + eslint-config-prettier: 9.1.0(eslint@9.6.0) 10694 + eslint-plugin-prettier: 5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint@9.6.0)(prettier@3.3.2) 10695 + prettier: 3.3.2 10696 + transitivePeerDependencies: 10697 + - '@types/eslint' 9734 10698 9735 - '@vue/runtime-core@3.4.31': 10699 + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.27.0(eslint@9.6.0))(eslint@9.6.0)(typescript@5.5.3)': 9736 10700 dependencies: 9737 - '@vue/reactivity': 3.4.31 9738 - '@vue/shared': 3.4.31 10701 + '@typescript-eslint/eslint-plugin': 7.15.0(@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) 10702 + '@typescript-eslint/parser': 7.15.0(eslint@9.6.0)(typescript@5.5.3) 10703 + eslint: 9.6.0 10704 + eslint-plugin-vue: 9.27.0(eslint@9.6.0) 10705 + vue-eslint-parser: 9.4.3(eslint@9.6.0) 10706 + optionalDependencies: 10707 + typescript: 5.5.3 10708 + transitivePeerDependencies: 10709 + - supports-color 9739 10710 9740 - '@vue/runtime-dom@3.4.31': 10711 + '@vue/language-core@2.0.29(typescript@5.5.3)': 9741 10712 dependencies: 9742 - '@vue/reactivity': 3.4.31 9743 - '@vue/runtime-core': 3.4.31 9744 - '@vue/shared': 3.4.31 10713 + '@volar/language-core': 2.4.0-alpha.18 10714 + '@vue/compiler-dom': 3.4.37 10715 + '@vue/compiler-vue2': 2.7.16 10716 + '@vue/shared': 3.4.37 10717 + computeds: 0.0.1 10718 + minimatch: 9.0.5 10719 + muggle-string: 0.4.1 10720 + path-browserify: 1.0.1 10721 + optionalDependencies: 10722 + typescript: 5.5.3 10723 + 10724 + '@vue/reactivity@3.4.37': 10725 + dependencies: 10726 + '@vue/shared': 3.4.37 10727 + 10728 + '@vue/runtime-core@3.4.37': 10729 + dependencies: 10730 + '@vue/reactivity': 3.4.37 10731 + '@vue/shared': 3.4.37 10732 + 10733 + '@vue/runtime-dom@3.4.37': 10734 + dependencies: 10735 + '@vue/reactivity': 3.4.37 10736 + '@vue/runtime-core': 3.4.37 10737 + '@vue/shared': 3.4.37 9745 10738 csstype: 3.1.3 9746 10739 9747 - '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))': 10740 + '@vue/server-renderer@3.4.37(vue@3.4.37(typescript@5.5.3))': 9748 10741 dependencies: 9749 - '@vue/compiler-ssr': 3.4.31 9750 - '@vue/shared': 3.4.31 9751 - vue: 3.4.31(typescript@5.5.3) 10742 + '@vue/compiler-ssr': 3.4.37 10743 + '@vue/shared': 3.4.37 10744 + vue: 3.4.37(typescript@5.5.3) 9752 10745 9753 10746 '@vue/shared@3.4.31': {} 9754 10747 9755 - '@vueuse/core@10.11.0(vue@3.4.31(typescript@5.5.3))': 10748 + '@vue/shared@3.4.37': {} 10749 + 10750 + '@vue/test-utils@2.4.6': 10751 + dependencies: 10752 + js-beautify: 1.15.1 10753 + vue-component-type-helpers: 2.0.29 10754 + 10755 + '@vue/tsconfig@0.5.1': {} 10756 + 10757 + '@vueuse/core@10.11.0(vue@3.4.37(typescript@5.5.3))': 9756 10758 dependencies: 9757 10759 '@types/web-bluetooth': 0.0.20 9758 10760 '@vueuse/metadata': 10.11.0 9759 - '@vueuse/shared': 10.11.0(vue@3.4.31(typescript@5.5.3)) 9760 - vue-demi: 0.14.8(vue@3.4.31(typescript@5.5.3)) 10761 + '@vueuse/shared': 10.11.0(vue@3.4.37(typescript@5.5.3)) 10762 + vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.3)) 9761 10763 transitivePeerDependencies: 9762 10764 - '@vue/composition-api' 9763 10765 - vue 9764 10766 9765 - '@vueuse/integrations@10.11.0(axios@1.7.3)(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.3))': 10767 + '@vueuse/integrations@10.11.0(axios@1.7.3)(focus-trap@7.5.4)(vue@3.4.37(typescript@5.5.3))': 9766 10768 dependencies: 9767 - '@vueuse/core': 10.11.0(vue@3.4.31(typescript@5.5.3)) 9768 - '@vueuse/shared': 10.11.0(vue@3.4.31(typescript@5.5.3)) 9769 - vue-demi: 0.14.8(vue@3.4.31(typescript@5.5.3)) 10769 + '@vueuse/core': 10.11.0(vue@3.4.37(typescript@5.5.3)) 10770 + '@vueuse/shared': 10.11.0(vue@3.4.37(typescript@5.5.3)) 10771 + vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.3)) 9770 10772 optionalDependencies: 9771 10773 axios: 1.7.3 9772 10774 focus-trap: 7.5.4 ··· 9776 10778 9777 10779 '@vueuse/metadata@10.11.0': {} 9778 10780 9779 - '@vueuse/shared@10.11.0(vue@3.4.31(typescript@5.5.3))': 10781 + '@vueuse/shared@10.11.0(vue@3.4.37(typescript@5.5.3))': 9780 10782 dependencies: 9781 - vue-demi: 0.14.8(vue@3.4.31(typescript@5.5.3)) 10783 + vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.3)) 9782 10784 transitivePeerDependencies: 9783 10785 - '@vue/composition-api' 9784 10786 - vue ··· 10195 11197 ieee754: 1.2.1 10196 11198 10197 11199 builtin-modules@3.3.0: {} 11200 + 11201 + bundle-name@4.1.0: 11202 + dependencies: 11203 + run-applescript: 7.0.0 10198 11204 10199 11205 bytes@3.0.0: {} 10200 11206 ··· 10248 11254 10249 11255 camelcase@5.3.1: {} 10250 11256 11257 + camelcase@6.3.0: {} 11258 + 10251 11259 camelcase@8.0.0: {} 10252 11260 10253 11261 caniuse-lite@1.0.30001636: {} ··· 10363 11371 dependencies: 10364 11372 delayed-stream: 1.0.0 10365 11373 11374 + commander@10.0.1: {} 11375 + 10366 11376 commander@12.1.0: {} 10367 11377 10368 11378 commander@2.20.3: {} ··· 10389 11399 transitivePeerDependencies: 10390 11400 - supports-color 10391 11401 11402 + computeds@0.0.1: {} 11403 + 10392 11404 concat-map@0.0.1: {} 10393 11405 10394 11406 confbox@0.1.7: {} 10395 11407 11408 + config-chain@1.1.13: 11409 + dependencies: 11410 + ini: 1.3.8 11411 + proto-list: 1.2.4 11412 + 10396 11413 connect-history-api-fallback@2.0.0: {} 10397 11414 10398 11415 consola@3.2.3: {} ··· 10477 11494 postcss-modules-scope: 3.2.0(postcss@8.4.39) 10478 11495 postcss-modules-values: 4.0.0(postcss@8.4.39) 10479 11496 postcss-value-parser: 4.2.0 10480 - semver: 7.6.0 11497 + semver: 7.6.2 10481 11498 optionalDependencies: 10482 11499 webpack: 5.90.3(esbuild@0.20.1) 10483 11500 ··· 10493 11510 10494 11511 cssesc@3.0.0: {} 10495 11512 11513 + cssstyle@4.0.1: 11514 + dependencies: 11515 + rrweb-cssom: 0.6.0 11516 + 10496 11517 csstype@3.1.3: {} 10497 11518 10498 11519 data-uri-to-buffer@4.0.1: {} 10499 11520 10500 11521 data-uri-to-buffer@6.0.2: {} 10501 11522 11523 + data-urls@5.0.0: 11524 + dependencies: 11525 + whatwg-mimetype: 4.0.0 11526 + whatwg-url: 14.0.0 11527 + 10502 11528 dataloader@1.4.0: {} 10503 11529 11530 + de-indent@1.0.2: {} 11531 + 10504 11532 debug@2.6.9: 10505 11533 dependencies: 10506 11534 ms: 2.0.0 ··· 10513 11541 dependencies: 10514 11542 ms: 2.1.2 10515 11543 11544 + decimal.js@10.4.3: {} 11545 + 10516 11546 deep-eql@4.1.4: 10517 11547 dependencies: 10518 11548 type-detect: 4.0.8 ··· 10521 11551 10522 11552 deepmerge@4.3.1: {} 10523 11553 11554 + default-browser-id@5.0.0: {} 11555 + 11556 + default-browser@5.2.1: 11557 + dependencies: 11558 + bundle-name: 4.1.0 11559 + default-browser-id: 5.0.0 11560 + 10524 11561 default-gateway@6.0.3: 10525 11562 dependencies: 10526 11563 execa: 5.1.1 ··· 10536 11573 gopd: 1.0.1 10537 11574 10538 11575 define-lazy-prop@2.0.0: {} 11576 + 11577 + define-lazy-prop@3.0.0: {} 10539 11578 10540 11579 defu@6.1.4: {} 10541 11580 ··· 10603 11642 10604 11643 eastasianwidth@0.2.0: {} 10605 11644 11645 + editorconfig@1.0.4: 11646 + dependencies: 11647 + '@one-ini/wasm': 0.1.1 11648 + commander: 10.0.1 11649 + minimatch: 9.0.1 11650 + semver: 7.6.2 11651 + 10606 11652 ee-first@1.1.1: {} 10607 11653 10608 11654 electron-to-chromium@1.4.810: {} ··· 10638 11684 10639 11685 entities@4.5.0: {} 10640 11686 11687 + entities@5.0.0: {} 11688 + 10641 11689 env-paths@2.2.1: {} 10642 11690 10643 11691 err-code@2.0.3: {} ··· 10651 11699 dependencies: 10652 11700 is-arrayish: 0.2.1 10653 11701 11702 + error-stack-parser-es@0.1.5: {} 11703 + 10654 11704 es-define-property@1.0.0: 10655 11705 dependencies: 10656 11706 get-intrinsic: 1.2.4 ··· 10760 11810 dependencies: 10761 11811 eslint: 9.6.0 10762 11812 11813 + eslint-plugin-prettier@5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint@9.6.0)(prettier@3.3.2): 11814 + dependencies: 11815 + eslint: 9.6.0 11816 + prettier: 3.3.2 11817 + prettier-linter-helpers: 1.0.0 11818 + synckit: 0.9.1 11819 + optionalDependencies: 11820 + '@types/eslint': 8.56.10 11821 + eslint-config-prettier: 9.1.0(eslint@9.6.0) 11822 + 10763 11823 eslint-plugin-react-hooks@4.6.2(eslint@9.6.0): 10764 11824 dependencies: 10765 11825 eslint: 9.6.0 ··· 10790 11850 transitivePeerDependencies: 10791 11851 - supports-color 10792 11852 11853 + eslint-plugin-vue@9.23.0(eslint@9.6.0): 11854 + dependencies: 11855 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) 11856 + eslint: 9.6.0 11857 + natural-compare: 1.4.0 11858 + nth-check: 2.1.1 11859 + postcss-selector-parser: 6.1.0 11860 + semver: 7.6.2 11861 + vue-eslint-parser: 9.4.3(eslint@9.6.0) 11862 + xml-name-validator: 4.0.0 11863 + transitivePeerDependencies: 11864 + - supports-color 11865 + 11866 + eslint-plugin-vue@9.27.0(eslint@9.6.0): 11867 + dependencies: 11868 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) 11869 + eslint: 9.6.0 11870 + globals: 13.24.0 11871 + natural-compare: 1.4.0 11872 + nth-check: 2.1.1 11873 + postcss-selector-parser: 6.1.0 11874 + semver: 7.6.2 11875 + vue-eslint-parser: 9.4.3(eslint@9.6.0) 11876 + xml-name-validator: 4.0.0 11877 + transitivePeerDependencies: 11878 + - supports-color 11879 + 10793 11880 eslint-scope@5.1.1: 10794 11881 dependencies: 10795 11882 esrecurse: 4.3.0 10796 11883 estraverse: 4.3.0 11884 + 11885 + eslint-scope@7.2.2: 11886 + dependencies: 11887 + esrecurse: 4.3.0 11888 + estraverse: 5.3.0 10797 11889 10798 11890 eslint-scope@8.0.1: 10799 11891 dependencies: ··· 10857 11949 acorn-jsx: 5.3.2(acorn@7.4.1) 10858 11950 eslint-visitor-keys: 1.3.0 10859 11951 11952 + espree@9.6.1: 11953 + dependencies: 11954 + acorn: 8.12.0 11955 + acorn-jsx: 5.3.2(acorn@8.12.0) 11956 + eslint-visitor-keys: 3.4.3 11957 + 10860 11958 esprima@4.0.1: {} 10861 11959 10862 11960 esquery@1.5.0: ··· 10968 12066 - supports-color 10969 12067 10970 12068 fast-deep-equal@3.1.3: {} 12069 + 12070 + fast-diff@1.3.0: {} 10971 12071 10972 12072 fast-fifo@1.3.2: {} 10973 12073 ··· 11198 12298 11199 12299 globals@11.12.0: {} 11200 12300 12301 + globals@13.24.0: 12302 + dependencies: 12303 + type-fest: 0.20.2 12304 + 11201 12305 globals@14.0.0: {} 11202 12306 11203 12307 globals@15.8.0: {} ··· 11254 12358 dependencies: 11255 12359 function-bind: 1.1.2 11256 12360 12361 + he@1.2.0: {} 12362 + 11257 12363 hookable@5.5.3: {} 11258 12364 11259 12365 hosted-git-info@7.0.2: ··· 11267 12373 readable-stream: 2.3.8 11268 12374 wbuf: 1.7.3 11269 12375 12376 + html-encoding-sniffer@4.0.0: 12377 + dependencies: 12378 + whatwg-encoding: 3.1.1 12379 + 11270 12380 html-entities@2.5.2: {} 11271 12381 11272 12382 html-escaper@2.0.2: {} 12383 + 12384 + html-tags@3.3.1: {} 11273 12385 11274 12386 htmlparser2@8.0.2: 11275 12387 dependencies: ··· 11384 12496 11385 12497 inherits@2.0.4: {} 11386 12498 12499 + ini@1.3.8: {} 12500 + 11387 12501 ini@4.1.2: {} 11388 12502 11389 12503 inquirer@9.2.15: ··· 11432 12546 hasown: 2.0.2 11433 12547 11434 12548 is-docker@2.2.1: {} 12549 + 12550 + is-docker@3.0.0: {} 11435 12551 11436 12552 is-extglob@2.1.1: {} 11437 12553 ··· 11447 12563 dependencies: 11448 12564 is-extglob: 2.1.1 11449 12565 12566 + is-inside-container@1.0.0: 12567 + dependencies: 12568 + is-docker: 3.0.0 12569 + 11450 12570 is-interactive@1.0.0: {} 11451 12571 11452 12572 is-lambda@1.0.1: {} ··· 11462 12582 is-plain-object@2.0.4: 11463 12583 dependencies: 11464 12584 isobject: 3.0.1 12585 + 12586 + is-potential-custom-element-name@1.0.1: {} 11465 12587 11466 12588 is-reference@1.2.1: 11467 12589 dependencies: ··· 11487 12609 dependencies: 11488 12610 is-docker: 2.2.1 11489 12611 12612 + is-wsl@3.1.0: 12613 + dependencies: 12614 + is-inside-container: 1.0.0 12615 + 11490 12616 isarray@1.0.0: {} 11491 12617 11492 12618 isexe@2.0.0: {} ··· 11499 12625 11500 12626 istanbul-lib-instrument@5.2.1: 11501 12627 dependencies: 11502 - '@babel/core': 7.24.0 11503 - '@babel/parser': 7.24.7 12628 + '@babel/core': 7.24.7 12629 + '@babel/parser': 7.25.3 11504 12630 '@istanbuljs/schema': 0.1.3 11505 12631 istanbul-lib-coverage: 3.2.2 11506 12632 semver: 6.3.1 ··· 11540 12666 11541 12667 jiti@1.21.6: {} 11542 12668 12669 + js-beautify@1.15.1: 12670 + dependencies: 12671 + config-chain: 1.1.13 12672 + editorconfig: 1.0.4 12673 + glob: 10.4.3 12674 + js-cookie: 3.0.5 12675 + nopt: 7.2.1 12676 + 12677 + js-cookie@3.0.5: {} 12678 + 11543 12679 js-tokens@4.0.0: {} 11544 12680 11545 12681 js-tokens@9.0.0: {} ··· 11555 12691 11556 12692 jsbn@1.1.0: {} 11557 12693 12694 + jsdom@24.1.0: 12695 + dependencies: 12696 + cssstyle: 4.0.1 12697 + data-urls: 5.0.0 12698 + decimal.js: 10.4.3 12699 + form-data: 4.0.0 12700 + html-encoding-sniffer: 4.0.0 12701 + http-proxy-agent: 7.0.2 12702 + https-proxy-agent: 7.0.4 12703 + is-potential-custom-element-name: 1.0.1 12704 + nwsapi: 2.2.12 12705 + parse5: 7.1.2 12706 + rrweb-cssom: 0.7.1 12707 + saxes: 6.0.0 12708 + symbol-tree: 3.2.4 12709 + tough-cookie: 4.1.4 12710 + w3c-xmlserializer: 5.0.0 12711 + webidl-conversions: 7.0.0 12712 + whatwg-encoding: 3.1.1 12713 + whatwg-mimetype: 4.0.0 12714 + whatwg-url: 14.0.0 12715 + ws: 8.17.1 12716 + xml-name-validator: 5.0.0 12717 + transitivePeerDependencies: 12718 + - bufferutil 12719 + - supports-color 12720 + - utf-8-validate 12721 + 11558 12722 jsesc@0.5.0: {} 11559 12723 11560 12724 jsesc@2.5.2: {} ··· 11601 12765 11602 12766 klona@2.0.6: {} 11603 12767 12768 + kolorist@1.8.0: {} 12769 + 11604 12770 launch-editor@2.8.0: 11605 12771 dependencies: 11606 12772 picocolors: 1.0.1 ··· 11798 12964 dependencies: 11799 12965 fs-monkey: 1.0.6 11800 12966 12967 + memorystream@0.3.1: {} 12968 + 11801 12969 merge-descriptors@1.0.1: {} 11802 12970 11803 12971 merge-stream@2.0.0: {} ··· 11834 13002 minimatch@3.1.2: 11835 13003 dependencies: 11836 13004 brace-expansion: 1.1.11 13005 + 13006 + minimatch@9.0.1: 13007 + dependencies: 13008 + brace-expansion: 2.0.1 11837 13009 11838 13010 minimatch@9.0.5: 11839 13011 dependencies: ··· 11906 13078 11907 13079 ms@2.1.3: {} 11908 13080 13081 + muggle-string@0.4.1: {} 13082 + 11909 13083 multicast-dns@7.2.5: 11910 13084 dependencies: 11911 13085 dns-packet: 5.6.1 ··· 12013 13187 dependencies: 12014 13188 hosted-git-info: 7.0.2 12015 13189 proc-log: 3.0.0 12016 - semver: 7.6.0 13190 + semver: 7.6.2 12017 13191 validate-npm-package-name: 5.0.1 12018 13192 12019 13193 npm-packlist@8.0.2: ··· 12025 13199 npm-install-checks: 6.3.0 12026 13200 npm-normalize-package-bin: 3.0.1 12027 13201 npm-package-arg: 11.0.1 12028 - semver: 7.6.0 13202 + semver: 7.6.2 12029 13203 12030 13204 npm-registry-fetch@16.2.1: 12031 13205 dependencies: ··· 12040 13214 transitivePeerDependencies: 12041 13215 - supports-color 12042 13216 13217 + npm-run-all2@6.2.0: 13218 + dependencies: 13219 + ansi-styles: 6.2.1 13220 + cross-spawn: 7.0.3 13221 + memorystream: 0.3.1 13222 + minimatch: 9.0.5 13223 + pidtree: 0.6.0 13224 + read-package-json-fast: 3.0.2 13225 + shell-quote: 1.8.1 13226 + 12043 13227 npm-run-path@4.0.1: 12044 13228 dependencies: 12045 13229 path-key: 3.1.1 ··· 12051 13235 nth-check@2.1.1: 12052 13236 dependencies: 12053 13237 boolbase: 1.0.0 13238 + 13239 + nwsapi@2.2.12: {} 12054 13240 12055 13241 nypm@0.3.8: 12056 13242 dependencies: ··· 12088 13274 dependencies: 12089 13275 mimic-fn: 4.0.0 12090 13276 13277 + open@10.1.0: 13278 + dependencies: 13279 + default-browser: 5.2.1 13280 + define-lazy-prop: 3.0.0 13281 + is-inside-container: 1.0.0 13282 + is-wsl: 3.1.0 13283 + 12091 13284 open@8.4.2: 12092 13285 dependencies: 12093 13286 define-lazy-prop: 2.0.0 ··· 12137 13330 12138 13331 p-limit@5.0.0: 12139 13332 dependencies: 12140 - yocto-queue: 1.0.0 13333 + yocto-queue: 1.1.1 12141 13334 12142 13335 p-locate@4.1.0: 12143 13336 dependencies: ··· 12237 13430 12238 13431 parseurl@1.3.3: {} 12239 13432 13433 + path-browserify@1.0.1: {} 13434 + 12240 13435 path-exists@4.0.0: {} 12241 13436 12242 13437 path-exists@5.0.0: {} ··· 12277 13472 pify@2.3.0: {} 12278 13473 12279 13474 pify@4.0.1: {} 13475 + 13476 + pinia@2.2.1(typescript@5.5.3)(vue@3.4.37(typescript@5.5.3)): 13477 + dependencies: 13478 + '@vue/devtools-api': 6.6.3 13479 + vue: 3.4.37(typescript@5.5.3) 13480 + vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.3)) 13481 + optionalDependencies: 13482 + typescript: 5.5.3 12280 13483 12281 13484 pirates@4.0.6: {} 12282 13485 ··· 12323 13526 cosmiconfig: 9.0.0(typescript@5.5.3) 12324 13527 jiti: 1.21.6 12325 13528 postcss: 8.4.35 12326 - semver: 7.6.0 13529 + semver: 7.6.2 12327 13530 optionalDependencies: 12328 13531 webpack: 5.90.3(esbuild@0.20.1) 12329 13532 transitivePeerDependencies: ··· 12371 13574 source-map-js: 1.2.0 12372 13575 12373 13576 postcss@8.4.39: 13577 + dependencies: 13578 + nanoid: 3.3.7 13579 + picocolors: 1.0.1 13580 + source-map-js: 1.2.0 13581 + 13582 + postcss@8.4.41: 12374 13583 dependencies: 12375 13584 nanoid: 3.3.7 12376 13585 picocolors: 1.0.1 ··· 12387 13596 12388 13597 prelude-ls@1.2.1: {} 12389 13598 13599 + prettier-linter-helpers@1.0.0: 13600 + dependencies: 13601 + fast-diff: 1.3.0 13602 + 12390 13603 prettier@2.8.8: {} 12391 13604 12392 13605 prettier@3.3.2: {} ··· 12412 13625 err-code: 2.0.3 12413 13626 retry: 0.12.0 12414 13627 13628 + proto-list@1.2.4: {} 13629 + 12415 13630 proxy-addr@2.0.7: 12416 13631 dependencies: 12417 13632 forwarded: 0.2.0 ··· 12437 13652 12438 13653 pseudomap@1.0.2: {} 12439 13654 13655 + psl@1.9.0: {} 13656 + 12440 13657 pump@3.0.0: 12441 13658 dependencies: 12442 13659 end-of-stream: 1.4.4 ··· 12471 13688 qs@6.11.0: 12472 13689 dependencies: 12473 13690 side-channel: 1.0.6 13691 + 13692 + querystringify@2.2.0: {} 12474 13693 12475 13694 queue-microtask@1.2.3: {} 12476 13695 ··· 12608 13827 dependencies: 12609 13828 jsesc: 0.5.0 12610 13829 13830 + remove-accents@0.5.0: {} 13831 + 12611 13832 require-directory@2.1.1: {} 12612 13833 12613 13834 require-from-string@2.0.2: {} ··· 12690 13911 '@rollup/rollup-win32-x64-msvc': 4.18.0 12691 13912 fsevents: 2.3.3 12692 13913 13914 + rrweb-cssom@0.6.0: {} 13915 + 13916 + rrweb-cssom@0.7.1: {} 13917 + 13918 + run-applescript@7.0.0: {} 13919 + 12693 13920 run-async@3.0.0: {} 12694 13921 12695 13922 run-parallel@1.2.0: ··· 12722 13949 sax@1.4.1: 12723 13950 optional: true 12724 13951 13952 + saxes@6.0.0: 13953 + dependencies: 13954 + xmlchars: 2.2.0 13955 + 12725 13956 scheduler@0.23.2: 12726 13957 dependencies: 12727 13958 loose-envify: 1.4.0 ··· 12861 14092 '@sigstore/verify': 1.2.1 12862 14093 transitivePeerDependencies: 12863 14094 - supports-color 14095 + 14096 + sirv@2.0.4: 14097 + dependencies: 14098 + '@polka/url': 1.0.0-next.25 14099 + mrmime: 2.0.0 14100 + totalist: 3.0.1 12864 14101 12865 14102 slash@3.0.0: {} 12866 14103 ··· 13058 14295 13059 14296 supports-preserve-symlinks-flag@1.0.0: {} 13060 14297 14298 + svg-tags@1.0.0: {} 14299 + 13061 14300 symbol-observable@4.0.0: {} 13062 14301 14302 + symbol-tree@3.2.4: {} 14303 + 14304 + synckit@0.9.1: 14305 + dependencies: 14306 + '@pkgr/core': 0.1.1 14307 + tslib: 2.6.3 14308 + 13063 14309 tabbable@6.2.0: {} 13064 14310 13065 14311 tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.14.10)(typescript@5.5.3)): ··· 13183 14429 13184 14430 toidentifier@1.0.1: {} 13185 14431 14432 + totalist@3.0.1: {} 14433 + 14434 + tough-cookie@4.1.4: 14435 + dependencies: 14436 + psl: 1.9.0 14437 + punycode: 2.3.1 14438 + universalify: 0.2.0 14439 + url-parse: 1.5.10 14440 + 13186 14441 tr46@0.0.3: {} 14442 + 14443 + tr46@5.0.0: 14444 + dependencies: 14445 + punycode: 2.3.1 13187 14446 13188 14447 tree-kill@1.2.2: {} 13189 14448 ··· 13236 14495 13237 14496 type-detect@4.0.8: {} 13238 14497 14498 + type-fest@0.20.2: {} 14499 + 13239 14500 type-fest@0.21.3: {} 13240 14501 13241 14502 type-is@1.6.18: ··· 13293 14554 13294 14555 universalify@0.1.2: {} 13295 14556 14557 + universalify@0.2.0: {} 14558 + 13296 14559 universalify@2.0.1: {} 13297 14560 13298 14561 unpipe@1.0.0: {} ··· 13306 14569 uri-js@4.4.1: 13307 14570 dependencies: 13308 14571 punycode: 2.3.1 14572 + 14573 + url-parse@1.5.10: 14574 + dependencies: 14575 + querystringify: 2.2.0 14576 + requires-port: 1.0.0 13309 14577 13310 14578 urlpattern-polyfill@10.0.0: {} 13311 14579 ··· 13341 14609 13342 14610 vary@1.1.2: {} 13343 14611 14612 + vite-hot-client@0.2.3(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)): 14613 + dependencies: 14614 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14615 + 13344 14616 vite-node@1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 13345 14617 dependencies: 13346 14618 cac: 6.7.14 ··· 13358 14630 - supports-color 13359 14631 - terser 13360 14632 14633 + vite-node@1.6.0(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 14634 + dependencies: 14635 + cac: 6.7.14 14636 + debug: 4.3.5 14637 + pathe: 1.1.2 14638 + picocolors: 1.0.1 14639 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14640 + transitivePeerDependencies: 14641 + - '@types/node' 14642 + - less 14643 + - lightningcss 14644 + - sass 14645 + - stylus 14646 + - sugarss 14647 + - supports-color 14648 + - terser 14649 + 14650 + vite-plugin-inspect@0.8.5(rollup@4.18.0)(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)): 14651 + dependencies: 14652 + '@antfu/utils': 0.7.10 14653 + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) 14654 + debug: 4.3.5 14655 + error-stack-parser-es: 0.1.5 14656 + fs-extra: 11.2.0 14657 + open: 10.1.0 14658 + perfect-debounce: 1.0.0 14659 + picocolors: 1.0.1 14660 + sirv: 2.0.4 14661 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14662 + transitivePeerDependencies: 14663 + - rollup 14664 + - supports-color 14665 + 14666 + vite-plugin-vue-devtools@7.3.1(rollup@4.18.0)(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)): 14667 + dependencies: 14668 + '@vue/devtools-core': 7.3.7(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)) 14669 + '@vue/devtools-kit': 7.3.7 14670 + '@vue/devtools-shared': 7.3.7 14671 + execa: 8.0.1 14672 + sirv: 2.0.4 14673 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14674 + vite-plugin-inspect: 0.8.5(rollup@4.18.0)(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 14675 + vite-plugin-vue-inspector: 5.1.3(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)) 14676 + transitivePeerDependencies: 14677 + - '@nuxt/kit' 14678 + - rollup 14679 + - supports-color 14680 + - vue 14681 + 14682 + vite-plugin-vue-inspector@5.1.3(vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1)): 14683 + dependencies: 14684 + '@babel/core': 7.24.7 14685 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.7) 14686 + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7) 14687 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) 14688 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.24.7) 14689 + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) 14690 + '@vue/compiler-dom': 3.4.37 14691 + kolorist: 1.8.0 14692 + magic-string: 0.30.10 14693 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14694 + transitivePeerDependencies: 14695 + - supports-color 14696 + 13361 14697 vite@5.1.7(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.29.1): 13362 14698 dependencies: 13363 14699 esbuild: 0.19.12 ··· 13382 14718 sass: 1.71.1 13383 14719 terser: 5.31.1 13384 14720 13385 - vitepress@1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.3)(less@4.2.0)(postcss@8.4.39)(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.1)(typescript@5.5.3): 14721 + vite@5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 14722 + dependencies: 14723 + esbuild: 0.21.5 14724 + postcss: 8.4.39 14725 + rollup: 4.18.0 14726 + optionalDependencies: 14727 + '@types/node': 20.14.5 14728 + fsevents: 2.3.3 14729 + less: 4.2.0 14730 + sass: 1.71.1 14731 + terser: 5.31.1 14732 + 14733 + vitepress@1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.3)(less@4.2.0)(postcss@8.4.41)(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.1)(typescript@5.5.3): 13386 14734 dependencies: 13387 14735 '@docsearch/css': 3.6.0 13388 14736 '@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) 13389 14737 '@shikijs/core': 1.10.3 13390 14738 '@shikijs/transformers': 1.10.3 13391 14739 '@types/markdown-it': 14.1.1 13392 - '@vitejs/plugin-vue': 5.0.5(vite@5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3)) 14740 + '@vitejs/plugin-vue': 5.0.5(vite@5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1))(vue@3.4.37(typescript@5.5.3)) 13393 14741 '@vue/devtools-api': 7.3.5 13394 14742 '@vue/shared': 3.4.31 13395 - '@vueuse/core': 10.11.0(vue@3.4.31(typescript@5.5.3)) 13396 - '@vueuse/integrations': 10.11.0(axios@1.7.3)(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.3)) 14743 + '@vueuse/core': 10.11.0(vue@3.4.37(typescript@5.5.3)) 14744 + '@vueuse/integrations': 10.11.0(axios@1.7.3)(focus-trap@7.5.4)(vue@3.4.37(typescript@5.5.3)) 13397 14745 focus-trap: 7.5.4 13398 14746 mark.js: 8.11.1 13399 14747 minisearch: 6.3.0 13400 14748 shiki: 1.10.3 13401 14749 vite: 5.3.3(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 13402 - vue: 3.4.31(typescript@5.5.3) 14750 + vue: 3.4.37(typescript@5.5.3) 13403 14751 optionalDependencies: 13404 - postcss: 8.4.39 14752 + postcss: 8.4.41 13405 14753 transitivePeerDependencies: 13406 14754 - '@algolia/client-search' 13407 14755 - '@types/node' ··· 13429 14777 - typescript 13430 14778 - universal-cookie 13431 14779 13432 - vitest@1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 14780 + vitest@1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 13433 14781 dependencies: 13434 14782 '@vitest/expect': 1.6.0 13435 14783 '@vitest/runner': 1.6.0 ··· 13453 14801 why-is-node-running: 2.2.2 13454 14802 optionalDependencies: 13455 14803 '@types/node': 20.14.10 14804 + jsdom: 24.1.0 13456 14805 transitivePeerDependencies: 13457 14806 - less 13458 14807 - lightningcss ··· 13462 14811 - supports-color 13463 14812 - terser 13464 14813 13465 - vue-demi@0.14.8(vue@3.4.31(typescript@5.5.3)): 14814 + vitest@1.6.0(@types/node@20.14.5)(jsdom@24.1.0)(less@4.2.0)(sass@1.71.1)(terser@5.31.1): 13466 14815 dependencies: 13467 - vue: 3.4.31(typescript@5.5.3) 14816 + '@vitest/expect': 1.6.0 14817 + '@vitest/runner': 1.6.0 14818 + '@vitest/snapshot': 1.6.0 14819 + '@vitest/spy': 1.6.0 14820 + '@vitest/utils': 1.6.0 14821 + acorn-walk: 8.3.3 14822 + chai: 4.4.1 14823 + debug: 4.3.5 14824 + execa: 8.0.1 14825 + local-pkg: 0.5.0 14826 + magic-string: 0.30.10 14827 + pathe: 1.1.2 14828 + picocolors: 1.0.1 14829 + std-env: 3.7.0 14830 + strip-literal: 2.1.0 14831 + tinybench: 2.8.0 14832 + tinypool: 0.8.4 14833 + vite: 5.3.3(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14834 + vite-node: 1.6.0(@types/node@20.14.5)(less@4.2.0)(sass@1.71.1)(terser@5.31.1) 14835 + why-is-node-running: 2.2.2 14836 + optionalDependencies: 14837 + '@types/node': 20.14.5 14838 + jsdom: 24.1.0 14839 + transitivePeerDependencies: 14840 + - less 14841 + - lightningcss 14842 + - sass 14843 + - stylus 14844 + - sugarss 14845 + - supports-color 14846 + - terser 14847 + 14848 + vscode-uri@3.0.8: {} 13468 14849 13469 - vue@3.4.31(typescript@5.5.3): 14850 + vue-component-type-helpers@2.0.29: {} 14851 + 14852 + vue-demi@0.14.10(vue@3.4.37(typescript@5.5.3)): 13470 14853 dependencies: 13471 - '@vue/compiler-dom': 3.4.31 13472 - '@vue/compiler-sfc': 3.4.31 13473 - '@vue/runtime-dom': 3.4.31 13474 - '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3)) 13475 - '@vue/shared': 3.4.31 14854 + vue: 3.4.37(typescript@5.5.3) 14855 + 14856 + vue-eslint-parser@9.4.3(eslint@9.6.0): 14857 + dependencies: 14858 + debug: 4.3.5 14859 + eslint: 9.6.0 14860 + eslint-scope: 7.2.2 14861 + eslint-visitor-keys: 3.4.3 14862 + espree: 9.6.1 14863 + esquery: 1.5.0 14864 + lodash: 4.17.21 14865 + semver: 7.6.2 14866 + transitivePeerDependencies: 14867 + - supports-color 14868 + 14869 + vue-router@4.4.3(vue@3.4.37(typescript@5.5.3)): 14870 + dependencies: 14871 + '@vue/devtools-api': 6.6.3 14872 + vue: 3.4.37(typescript@5.5.3) 14873 + 14874 + vue-tsc@2.0.29(typescript@5.5.3): 14875 + dependencies: 14876 + '@volar/typescript': 2.4.0-alpha.18 14877 + '@vue/language-core': 2.0.29(typescript@5.5.3) 14878 + semver: 7.6.2 14879 + typescript: 5.5.3 14880 + 14881 + vue@3.4.37(typescript@5.5.3): 14882 + dependencies: 14883 + '@vue/compiler-dom': 3.4.37 14884 + '@vue/compiler-sfc': 3.4.37 14885 + '@vue/runtime-dom': 3.4.37 14886 + '@vue/server-renderer': 3.4.37(vue@3.4.37(typescript@5.5.3)) 14887 + '@vue/shared': 3.4.37 13476 14888 optionalDependencies: 13477 14889 typescript: 5.5.3 14890 + 14891 + w3c-xmlserializer@5.0.0: 14892 + dependencies: 14893 + xml-name-validator: 5.0.0 13478 14894 13479 14895 watchpack@2.4.0: 13480 14896 dependencies: ··· 13492 14908 web-streams-polyfill@3.3.3: {} 13493 14909 13494 14910 webidl-conversions@3.0.1: {} 14911 + 14912 + webidl-conversions@7.0.0: {} 13495 14913 13496 14914 webpack-dev-middleware@5.3.4(webpack@5.90.3): 13497 14915 dependencies: ··· 13604 15022 13605 15023 websocket-extensions@0.1.4: {} 13606 15024 15025 + whatwg-encoding@3.1.1: 15026 + dependencies: 15027 + iconv-lite: 0.6.3 15028 + 15029 + whatwg-mimetype@4.0.0: {} 15030 + 15031 + whatwg-url@14.0.0: 15032 + dependencies: 15033 + tr46: 5.0.0 15034 + webidl-conversions: 7.0.0 15035 + 13607 15036 whatwg-url@5.0.0: 13608 15037 dependencies: 13609 15038 tr46: 0.0.3 ··· 13665 15094 13666 15095 ws@8.17.1: {} 13667 15096 15097 + xml-name-validator@4.0.0: {} 15098 + 15099 + xml-name-validator@5.0.0: {} 15100 + 15101 + xmlchars@2.2.0: {} 15102 + 13668 15103 y18n@5.0.8: {} 13669 15104 13670 15105 yallist@2.1.2: {} ··· 13695 15130 yn@3.1.1: {} 13696 15131 13697 15132 yocto-queue@0.1.0: {} 13698 - 13699 - yocto-queue@1.0.0: {} 13700 15133 13701 15134 yocto-queue@1.1.1: {} 13702 15135