From 82b932b1d3f7799f130a13bb9937d73a9692625b Mon Sep 17 00:00:00 2001 From: Landon Gavin Date: Mon, 7 Oct 2024 10:06:09 -0400 Subject: [PATCH 1/6] feat/new openapi client support 2 (#131) --- .github/workflows/comment-release.yml | 5 +- README.md | 11 +- biome.json | 1 + examples/nextjs-app/app/components/Pets.tsx | 7 +- examples/nextjs-app/app/page.tsx | 7 +- examples/nextjs-app/app/providers.tsx | 5 +- examples/nextjs-app/fetchClient.ts | 5 + examples/nextjs-app/package.json | 2 +- examples/petstore.yaml | 6 +- examples/react-app/package.json | 3 +- examples/react-app/request.ts | 94 - examples/react-app/src/App.tsx | 29 +- examples/react-app/src/axios.ts | 5 + .../src/components/SuspenseChild.tsx | 10 +- examples/react-app/src/main.tsx | 1 + lefthook.yml | 2 +- package.json | 63 +- pnpm-lock.yaml | 2151 ++++++++++------- src/cli.mts | 17 +- src/common.mts | 44 +- src/createExports.mts | 3 +- src/createImports.mts | 6 +- src/createPrefetchOrEnsure.mts | 68 +- src/createSource.mts | 5 - src/createUseMutation.mts | 49 +- src/createUseQuery.mts | 191 +- src/format.mts | 71 + src/generate.mts | 10 +- src/service.mts | 151 +- tests/__snapshots__/createSource.test.ts.snap | 295 +-- tests/__snapshots__/generate.test.ts.snap | 377 +-- tests/common.test.ts | 19 +- tests/createExports.test.ts | 60 +- tests/createImports.test.ts | 2 - tests/createSource.test.ts | 2 +- tests/generate.test.ts | 2 +- tests/service.test.ts | 5 +- tests/utils.ts | 7 +- 38 files changed, 1947 insertions(+), 1844 deletions(-) create mode 100644 examples/nextjs-app/fetchClient.ts delete mode 100644 examples/react-app/request.ts create mode 100644 examples/react-app/src/axios.ts diff --git a/.github/workflows/comment-release.yml b/.github/workflows/comment-release.yml index 3785f78..4f1a6d2 100644 --- a/.github/workflows/comment-release.yml +++ b/.github/workflows/comment-release.yml @@ -53,7 +53,10 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const { issue: { number: issue_number }, repo: { owner, repo }, payload } = context; - const { name: packageName, version } = require(`${process.env.GITHUB_WORKSPACE}/package.json`); + const fs = require('fs') + const jsonString = fs.readFileSync(`${process.env.GITHUB_WORKSPACE}/package.json`) + var packageJson = JSON.parse(jsonString) + const { name: packageName, version } = packageJson; const body = [ `npm package published to pre tag.`, diff --git a/README.md b/README.md index 5bcd182..218f2a1 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Register the command to the `scripts` property in your package.json file. ```json { "scripts": { - "codegen": "openapi-rq -i ./petstore.yaml -c axios" + "codegen": "openapi-rq -i ./petstore.yaml -c @hey-api/client-fetch" } } ``` @@ -30,7 +30,7 @@ Register the command to the `scripts` property in your package.json file. You can also run the command without installing it in your project using the npx command. ```bash -$ npx --package @7nohe/openapi-react-query-codegen openapi-rq -i ./petstore.yaml -c axios +$ npx --package @7nohe/openapi-react-query-codegen openapi-rq -i ./petstore.yaml -c @hey-api/client-fetch ``` ## Usage @@ -46,14 +46,13 @@ Options: -V, --version output the version number -i, --input OpenAPI specification, can be a path, url or string content (required) -o, --output Output directory (default: "openapi") - -c, --client HTTP client to generate (choices: "angular", "axios", "fetch", "node", "xhr", default: "fetch") + -c, --client HTTP client to generate (choices: "@hey-api/client-fetch", "@hey-api/client-axios", default: "@hey-api/client-fetch") --request Path to custom request file --format Process output folder with formatter? (choices: "biome", "prettier") --lint Process output folder with linter? (choices: "biome", "eslint") --operationId Use operation ID to generate operation names? --serviceResponse Define shape of returned value from service calls (choices: "body", "response", default: "body") --base Manually set base in OpenAPI config instead of inferring from server value - --enums Generate JavaScript objects from enum definitions? ['javascript', 'typescript', 'typescript+namespace'] --enums Generate JavaScript objects from enum definitions? (choices: "javascript", "typescript") --useDateType Use Date type instead of string for date types for models, this will not convert the data to a Date object --debug Run in debug mode? @@ -61,8 +60,8 @@ Options: --schemaType Type of JSON schema [Default: 'json'] (choices: "form", "json") --pageParam Name of the query parameter used for pagination (default: "page") --nextPageParam Name of the response parameter used for next page (default: "nextPage") - --initialPageParam Initial value for the pagination parameter (default: "1") - -h, --help display help for command + --initialPageParam Initial page value to query (default: "initialPageParam") + -h, --help display help for command ``` ### Example Usage diff --git a/biome.json b/biome.json index 8faa5a3..b970cbf 100644 --- a/biome.json +++ b/biome.json @@ -5,6 +5,7 @@ }, "files": { "ignore": [ + ".vscode", "dist", "examples/react-app/openapi", "coverage", diff --git a/examples/nextjs-app/app/components/Pets.tsx b/examples/nextjs-app/app/components/Pets.tsx index e40fa9a..d3eacdc 100644 --- a/examples/nextjs-app/app/components/Pets.tsx +++ b/examples/nextjs-app/app/components/Pets.tsx @@ -1,12 +1,11 @@ "use client"; -import { useDefaultServiceFindPets } from "@/openapi/queries"; +import { useFindPets } from "@/openapi/queries"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; export default function Pets() { - const { data } = useDefaultServiceFindPets({ - limit: 10, - tags: [], + const { data } = useFindPets({ + query: { tags: [], limit: 10 }, }); return ( diff --git a/examples/nextjs-app/app/page.tsx b/examples/nextjs-app/app/page.tsx index 9d4a1ac..f61e199 100644 --- a/examples/nextjs-app/app/page.tsx +++ b/examples/nextjs-app/app/page.tsx @@ -1,18 +1,17 @@ -import { prefetchUseDefaultServiceFindPets } from "@/openapi/queries/prefetch"; import { HydrationBoundary, QueryClient, dehydrate, } from "@tanstack/react-query"; import Link from "next/link"; +import { prefetchUseFindPets } from "../openapi/queries/prefetch"; import Pets from "./components/Pets"; export default async function Home() { const queryClient = new QueryClient(); - await prefetchUseDefaultServiceFindPets(queryClient, { - limit: 10, - tags: [], + await prefetchUseFindPets(queryClient, { + query: { tags: [], limit: 10 }, }); return ( diff --git a/examples/nextjs-app/app/providers.tsx b/examples/nextjs-app/app/providers.tsx index 804498c..86d555c 100644 --- a/examples/nextjs-app/app/providers.tsx +++ b/examples/nextjs-app/app/providers.tsx @@ -1,9 +1,10 @@ "use client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import "../fetchClient"; + // We can not useState or useRef in a server component, which is why we are -// extracting this part out into it's own file with 'use client' on top -import { useState } from "react"; +// extracting this part out into function makeQueryClient() { return new QueryClient({ diff --git a/examples/nextjs-app/fetchClient.ts b/examples/nextjs-app/fetchClient.ts new file mode 100644 index 0000000..0ccb3c7 --- /dev/null +++ b/examples/nextjs-app/fetchClient.ts @@ -0,0 +1,5 @@ +import { client } from "@/openapi/requests/services.gen"; + +client.setConfig({ + baseUrl: "http://localhost:4010", +}); diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 2d2eed1..9c5c6d5 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -9,7 +9,7 @@ "build": "next build", "start": "next start", "lint": "next lint", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml -c axios --request ./request.ts --format=biome --lint=biome" + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --request ./request.ts --format=biome --lint=biome --base http://localhost:4010" }, "dependencies": { "@tanstack/react-query": "^5.32.1", diff --git a/examples/petstore.yaml b/examples/petstore.yaml index 2a038a1..f7e4e9b 100644 --- a/examples/petstore.yaml +++ b/examples/petstore.yaml @@ -197,12 +197,12 @@ components: NewPet: type: object required: - - name + - name properties: name: type: string tag: - type: string + type: string Error: type: object @@ -214,4 +214,4 @@ components: type: integer format: int32 message: - type: string \ No newline at end of file + type: string diff --git a/examples/react-app/package.json b/examples/react-app/package.json index d5f8f7c..c68ec7c 100644 --- a/examples/react-app/package.json +++ b/examples/react-app/package.json @@ -9,10 +9,11 @@ "dev:mock": "prism mock ../petstore.yaml --dynamic", "build": "tsc && vite build", "preview": "vite preview", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml -c axios --request ./request.ts --format=biome --lint=biome", + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome -c @hey-api/client-axios", "test:generated": "tsc -p ./tsconfig.openapi.json --noEmit" }, "dependencies": { + "@hey-api/client-axios": "^0.2.7", "@tanstack/react-query": "^5.32.1", "axios": "^1.6.7", "form-data": "~4.0.0", diff --git a/examples/react-app/request.ts b/examples/react-app/request.ts deleted file mode 100644 index 98e0a7f..0000000 --- a/examples/react-app/request.ts +++ /dev/null @@ -1,94 +0,0 @@ -import axios from "axios"; -import type { RawAxiosRequestHeaders } from "axios"; - -import type { ApiRequestOptions } from "./ApiRequestOptions"; -import { CancelablePromise } from "./CancelablePromise"; -import type { OpenAPIConfig } from "./OpenAPI"; - -// Optional: Get and link the cancelation token, so the request can be aborted. -const source = axios.CancelToken.source(); - -const axiosInstance = axios.create({ - // Your custom Axios instance config - baseURL: "http://localhost:4010", - headers: { - // Your custom headers - } satisfies RawAxiosRequestHeaders, -}); - -// Add a request interceptor -axiosInstance.interceptors.request.use( - (config) => { - // Do something before request is sent - if (!config.url || !config.params) { - return config; - } - - for (const [key, value] of Object.entries(config.params)) { - const stringToSearch = `{${key}}`; - if ( - config.url !== undefined && - config.url.search(stringToSearch) !== -1 - ) { - config.url = config.url.replace(`{${key}}`, encodeURIComponent(value)); - delete config.params[key]; - } - } - - return config; - }, - (error) => { - // Do something with request error - return Promise.reject(error); - }, -); - -// Add a response interceptor -axiosInstance.interceptors.response.use( - (response) => { - // Any status code that lie within the range of 2xx cause this function to trigger - // Do something with response data - return response; - }, - (error) => { - // Any status codes that falls outside the range of 2xx cause this function to trigger - // Do something with response error - return Promise.reject(error); - }, -); - -export const request = ( - config: OpenAPIConfig, - options: ApiRequestOptions, -): CancelablePromise => { - return new CancelablePromise((resolve, reject, onCancel) => { - onCancel(() => source.cancel("The user aborted a request.")); - - let formattedHeaders = options.headers as RawAxiosRequestHeaders; - if (options.mediaType) { - formattedHeaders = { - ...options.headers, - "Content-Type": options.mediaType, - } satisfies RawAxiosRequestHeaders; - } - - return axiosInstance - .request({ - url: options.url, - data: options.body, - method: options.method, - params: { - ...options.query, - ...options.path, - }, - headers: formattedHeaders, - cancelToken: source.token, - }) - .then((res) => { - resolve(res.data); - }) - .catch((error) => { - reject(error); - }); - }); -}; diff --git a/examples/react-app/src/App.tsx b/examples/react-app/src/App.tsx index df58103..d1f45d2 100644 --- a/examples/react-app/src/App.tsx +++ b/examples/react-app/src/App.tsx @@ -1,32 +1,35 @@ import "./App.css"; import { useState } from "react"; + +import { createClient } from "@hey-api/client-fetch"; import { - UseDefaultServiceFindPetsKeyFn, - useDefaultServiceAddPet, - useDefaultServiceFindPets, - useDefaultServiceGetNotDefined, - useDefaultServicePostNotDefined, + UseFindPetsKeyFn, + useAddPet, + useFindPets, + useGetNotDefined, + usePostNotDefined, } from "../openapi/queries"; import { SuspenseParent } from "./components/SuspenseParent"; import { queryClient } from "./queryClient"; function App() { + createClient({ baseUrl: "http://localhost:4010" }); + const [tags, _setTags] = useState([]); const [limit, _setLimit] = useState(10); - const { data, error, refetch } = useDefaultServiceFindPets({ tags, limit }); + const { data, error, refetch } = useFindPets({ query: { tags, limit } }); // This is an example of using a hook that has all parameters optional; // Here we do not have to pass in an object - const { data: _ } = useDefaultServiceFindPets(); + const { data: _ } = useFindPets(); // This is an example of a query that is not defined in the OpenAPI spec // this defaults to any - here we are showing how to override the type // Note - this is marked as deprecated in the OpenAPI spec and being passed to the client - const { data: notDefined } = useDefaultServiceGetNotDefined(); - const { mutate: mutateNotDefined } = - useDefaultServicePostNotDefined(); + const { data: notDefined } = useGetNotDefined(); + const { mutate: mutateNotDefined } = usePostNotDefined(); - const { mutate: addPet } = useDefaultServiceAddPet(); + const { mutate: addPet } = useAddPet(); if (error) return ( @@ -52,12 +55,12 @@ function App() { onClick={() => { addPet( { - requestBody: { name: "Duggy" }, + body: { name: "Duggy" }, }, { onSuccess: () => { queryClient.invalidateQueries({ - queryKey: UseDefaultServiceFindPetsKeyFn(), + queryKey: UseFindPetsKeyFn({ query: { tags, limit } }), }); console.log("success"); }, diff --git a/examples/react-app/src/axios.ts b/examples/react-app/src/axios.ts new file mode 100644 index 0000000..e767177 --- /dev/null +++ b/examples/react-app/src/axios.ts @@ -0,0 +1,5 @@ +import { client } from "../openapi/requests/services.gen"; + +client.setConfig({ + baseURL: "http://localhost:4010", +}); diff --git a/examples/react-app/src/components/SuspenseChild.tsx b/examples/react-app/src/components/SuspenseChild.tsx index 0999316..040be32 100644 --- a/examples/react-app/src/components/SuspenseChild.tsx +++ b/examples/react-app/src/components/SuspenseChild.tsx @@ -1,15 +1,17 @@ -import { useDefaultServiceFindPetsSuspense } from "../../openapi/queries/suspense"; +import { useFindPetsSuspense } from "../../openapi/queries/suspense"; export const SuspenseChild = () => { - const { data } = useDefaultServiceFindPetsSuspense({ tags: [], limit: 10 }); - + const { data, error } = useFindPetsSuspense({ + query: { tags: [], limit: 10 }, + }); + console.log({ error }); if (!Array.isArray(data)) { return
Error!
; } return (
    - {data?.map((pet, index) => ( + {data?.map((pet) => (
  • {pet.name}
  • ))}
diff --git a/examples/react-app/src/main.tsx b/examples/react-app/src/main.tsx index df3c2b8..098f65f 100644 --- a/examples/react-app/src/main.tsx +++ b/examples/react-app/src/main.tsx @@ -4,6 +4,7 @@ import App from "./App"; import "./index.css"; import { QueryClientProvider } from "@tanstack/react-query"; import { queryClient } from "./queryClient"; +import "./axios"; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( diff --git a/lefthook.yml b/lefthook.yml index 3e5f29e..01aa466 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -2,7 +2,7 @@ pre-commit: commands: check: glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}" - run: npx biome check --apply --no-errors-on-unmatched --files-ignore-unknown=true ./ && git update-index --again + run: npx biome check --write --no-errors-on-unmatched --files-ignore-unknown=true ./ && git update-index --again test: glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}" run: npx vitest run diff --git a/package.json b/package.json index e51199f..6f4b8a1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,37 @@ { "name": "@7nohe/openapi-react-query-codegen", - "version": "1.6.1", + "version": "2.0.0", "description": "OpenAPI React Query Codegen", + "bin": { + "openapi-rq": "dist/cli.mjs" + }, + "private": false, + "type": "module", + "workspaces": ["examples/*"], + "scripts": { + "build": "rimraf dist && tsc -p tsconfig.json", + "lint": "biome check .", + "lint:fix": "biome check --write .", + "preview": "npm run build && npm -C examples/react-app run generate:api", + "prepublishOnly": "npm run build", + "release": "npx git-ensure -a && npx bumpp --commit --tag --push", + "test": "vitest --coverage.enabled true", + "snapshot": "vitest --update" + }, + "exports": [ + { + "import": "./dist/generate.mjs", + "require": "./dist/generate.mjs", + "types": "./dist/generate.d.mts" + } + ], + "repository": { + "type": "git", + "url": "git+https://github.com/7nohe/openapi-react-query-codegen.git" + }, + "homepage": "https://github.com/7nohe/openapi-react-query-codegen", + "bugs": "https://github.com/7nohe/openapi-react-query-codegen/issues", + "files": ["dist"], "keywords": [ "codegen", "react-query", @@ -12,36 +42,17 @@ "openapi-typescript-codegen", "@hey-api/openapi-ts" ], - "homepage": "https://github.com/7nohe/openapi-react-query-codegen", - "bugs": "https://github.com/7nohe/openapi-react-query-codegen/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/7nohe/openapi-react-query-codegen.git" - }, "license": "MIT", "author": "Daiki Urata (@7nohe)", - "type": "module", - "bin": { - "openapi-rq": "dist/cli.mjs" - }, - "files": ["dist"], - "workspaces": ["examples/*"], - "scripts": { - "build": "rimraf dist && tsc -p tsconfig.json", - "lint": "biome check .", - "lint:fix": "biome check --write .", - "prepublishOnly": "npm run build", - "preview": "npm run build && npm -C examples/react-app run generate:api", - "release": "npx git-ensure -a && npx bumpp --commit --tag --push", - "snapshot": "vitest --update", - "test": "vitest --coverage.enabled true" - }, "dependencies": { - "@hey-api/openapi-ts": "0.52.0" + "@hey-api/client-fetch": "0.4.0", + "@hey-api/openapi-ts": "0.53.8", + "cross-spawn": "^7.0.3" }, "devDependencies": { "@biomejs/biome": "^1.7.2", - "@types/node": "^20.10.6", + "@types/node": "^22.7.4", + "@types/cross-spawn": "^6.0.6", "@vitest/coverage-v8": "^1.5.0", "commander": "^12.0.0", "glob": "^10.3.10", @@ -55,7 +66,7 @@ "peerDependencies": { "commander": "12.x", "glob": "10.x", - "ts-morph": "22.x", + "ts-morph": "23.x", "typescript": "5.x" }, "packageManager": "pnpm@9.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 962fa3b..626bd17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,58 +8,67 @@ importers: .: dependencies: + '@hey-api/client-fetch': + specifier: 0.4.0 + version: 0.4.0 '@hey-api/openapi-ts': - specifier: 0.52.0 - version: 0.52.0(magicast@0.3.4)(typescript@5.5.4) + specifier: 0.53.8 + version: 0.53.8(typescript@5.6.2) + cross-spawn: + specifier: ^7.0.3 + version: 7.0.3 devDependencies: '@biomejs/biome': specifier: ^1.7.2 - version: 1.8.3 + version: 1.8.1 + '@types/cross-spawn': + specifier: ^6.0.6 + version: 6.0.6 '@types/node': - specifier: ^20.10.6 - version: 20.14.13 + specifier: ^22.7.4 + version: 22.7.4 '@vitest/coverage-v8': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.13)(terser@5.33.0)) + version: 1.6.0(vitest@1.6.0(@types/node@22.7.4)(terser@5.34.1)) commander: specifier: ^12.0.0 version: 12.1.0 glob: specifier: ^10.3.10 - version: 10.4.5 + version: 10.4.1 lefthook: specifier: ^1.6.10 - version: 1.7.11 + version: 1.6.15 rimraf: specifier: ^5.0.5 - version: 5.0.9 + version: 5.0.7 ts-morph: specifier: ^23.0.0 version: 23.0.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.13)(typescript@5.5.4) + version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2) typescript: specifier: ^5.5.4 - version: 5.5.4 + version: 5.6.2 vitest: specifier: ^1.5.0 - version: 1.6.0(@types/node@20.14.13)(terser@5.33.0) + version: 1.6.0(@types/node@22.7.4)(terser@5.34.1) examples/nextjs-app: dependencies: '@tanstack/react-query': specifier: ^5.32.1 - version: 5.51.16(react@18.3.1) + version: 5.45.0(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.32.1 - version: 5.51.16(@tanstack/react-query@5.51.16(react@18.3.1))(react@18.3.1) + version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) axios: specifier: ^1.6.7 version: 1.7.2 next: specifier: ^14.2.3 - version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18 version: 18.3.1 @@ -69,10 +78,10 @@ importers: devDependencies: '@stoplight/prism-cli': specifier: ^5.5.2 - version: 5.8.3 + version: 5.8.1 '@types/node': specifier: ^20 - version: 20.14.13 + version: 20.14.2 '@types/react': specifier: ^18 version: 18.3.3 @@ -84,19 +93,22 @@ importers: version: 4.1.5 postcss: specifier: ^8 - version: 8.4.40 + version: 8.4.38 tailwindcss: specifier: ^3.4.1 - version: 3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)) + version: 3.4.4(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5)) typescript: specifier: ^5 - version: 5.5.4 + version: 5.4.5 examples/react-app: dependencies: + '@hey-api/client-axios': + specifier: ^0.2.7 + version: 0.2.7(axios@1.7.2) '@tanstack/react-query': specifier: ^5.32.1 - version: 5.51.16(react@18.3.1) + version: 5.45.0(react@18.3.1) axios: specifier: ^1.6.7 version: 1.7.2 @@ -112,10 +124,10 @@ importers: devDependencies: '@biomejs/biome': specifier: ^1.7.2 - version: 1.8.3 + version: 1.8.1 '@stoplight/prism-cli': specifier: ^5.5.2 - version: 5.8.3 + version: 5.8.1 '@types/react': specifier: ^18.3.1 version: 18.3.3 @@ -124,37 +136,37 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.1(vite@5.3.5(@types/node@20.14.13)(terser@5.33.0)) + version: 4.3.1(vite@5.2.13(@types/node@22.7.4)(terser@5.34.1)) npm-run-all: specifier: ^4.1.5 version: 4.1.5 typescript: specifier: ^5.4.5 - version: 5.5.4 + version: 5.4.5 vite: specifier: ^5.0.12 - version: 5.3.5(@types/node@20.14.13)(terser@5.33.0) + version: 5.2.13(@types/node@22.7.4)(terser@5.34.1) examples/tanstack-router-app: dependencies: '@tanstack/react-query': specifier: ^5.32.1 - version: 5.51.16(react@18.3.1) + version: 5.45.0(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.32.1 - version: 5.51.16(@tanstack/react-query@5.51.16(react@18.3.1))(react@18.3.1) + version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) '@tanstack/react-router': specifier: ^1.58.7 - version: 1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-router-with-query': specifier: ^1.58.7 - version: 1.58.7(@tanstack/react-query@5.51.16(react@18.3.1))(@tanstack/react-router@1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.62.1(@tanstack/react-query@5.45.0(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-devtools': specifier: ^1.58.7 - version: 1.58.7(@tanstack/react-router@1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.62.1(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/start': specifier: ^1.58.7 - version: 1.58.7(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.33.0)(typescript@5.5.4)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) + version: 1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) axios: specifier: ^1.6.7 version: 1.7.2 @@ -167,10 +179,10 @@ importers: devDependencies: '@stoplight/prism-cli': specifier: ^5.5.2 - version: 5.8.3 + version: 5.8.1 '@tanstack/router-plugin': specifier: ^1.58.4 - version: 1.58.4(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) + version: 1.62.0(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -179,13 +191,13 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) + version: 4.3.1(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) npm-run-all: specifier: ^4.1.5 version: 4.1.5 vite: specifier: ^5.4.4 - version: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + version: 5.4.8(@types/node@22.7.4)(terser@5.34.1) packages: @@ -197,90 +209,160 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apidevtools/json-schema-ref-parser@11.6.4': - resolution: {integrity: sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==} + '@apidevtools/json-schema-ref-parser@11.7.0': + resolution: {integrity: sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==} engines: {node: '>= 16'} '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.2': - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/compat-data@7.24.7': + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.0': - resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/core@7.24.7': + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.24.7': + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.24.7': + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.24.7': + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.24.7': + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.24.7': + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.24.7': + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.24.7': + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.0': - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + '@babel/helper-validator-option@7.24.7': + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.24.7': + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.7': + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.4': - resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + '@babel/plugin-syntax-typescript@7.25.7': + resolution: {integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -297,78 +379,82 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + '@babel/traverse@7.24.7': + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + '@babel/types@7.24.7': + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/biome@1.8.3': - resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} + '@biomejs/biome@1.8.1': + resolution: {integrity: sha512-fQXGfvq6DIXem12dGQCM2tNF+vsNHH1qs3C7WeOu75Pd0trduoTmoO7G4ntLJ2qDs5wuw981H+cxQhi1uHnAtA==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.8.3': - resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} + '@biomejs/cli-darwin-arm64@1.8.1': + resolution: {integrity: sha512-XLiB7Uu6GALIOBWzQ2aMD0ru4Ly5/qSeQF7kk3AabzJ/kwsEWSe33iVySBP/SS2qv25cgqNiLksjGcw2bHT3mw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.8.3': - resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} + '@biomejs/cli-darwin-x64@1.8.1': + resolution: {integrity: sha512-uMTSxVLMfqkBVqyc25hSn83jBbp+wtWjzM/pHFlKXt3htJuw7FErVGW0nmQ9Sxa9vJ7GcqoltLMl28VQRIMYzg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} + '@biomejs/cli-linux-arm64-musl@1.8.1': + resolution: {integrity: sha512-UQ8Wc01J0wQL+5AYOc7qkJn20B4PZmQL1KrmDZh7ot0DvD6aX4+8mmfd/dG5b6Zjo/44QvCKcvkFGCMRYuhWZA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.8.3': - resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + '@biomejs/cli-linux-arm64@1.8.1': + resolution: {integrity: sha512-3SzZRuC/9Oi2P2IBNPsEj0KXxSXUEYRR2kfRF/Ve8QAfGgrt4qnwuWd6QQKKN5R+oYH691qjm+cXBKEcrP1v/Q==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + '@biomejs/cli-linux-x64-musl@1.8.1': + resolution: {integrity: sha512-fYbP/kNu/rtZ4kKzWVocIdqZOtBSUEg9qUhZaao3dy3CRzafR6u6KDtBeSCnt47O+iLnks1eOR1TUxzr5+QuqA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.8.3': - resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} + '@biomejs/cli-linux-x64@1.8.1': + resolution: {integrity: sha512-AeBycVdNrTzsyYKEOtR2R0Ph0hCD0sCshcp2aOnfGP0hCZbtFg09D0SdKLbyzKntisY41HxKVrydYiaApp+2uw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.8.3': - resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} + '@biomejs/cli-win32-arm64@1.8.1': + resolution: {integrity: sha512-6tEd1H/iFKpgpE3OIB7oNgW5XkjiVMzMRPL8zYoZ036YfuJ5nMYm9eB9H/y81+8Z76vL48fiYzMPotJwukGPqQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.8.3': - resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} + '@biomejs/cli-win32-x64@1.8.1': + resolution: {integrity: sha512-g2H31jJzYmS4jkvl6TiyEjEX+Nv79a5km/xn+5DARTp5MBFzC9gwceusSSB2AkJKqZzY131AiACAWjKrVt5Ijw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -818,8 +904,16 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@hey-api/openapi-ts@0.52.0': - resolution: {integrity: sha512-DA3Zf5ONxMK1PUkK88lAuYbXMgn5BvU5sjJdTAO2YOn6Eu/9ovilBztMzvu8pyY44PmL3n4ex4+f+XIwvgfhvw==} + '@hey-api/client-axios@0.2.7': + resolution: {integrity: sha512-3691It5Bt87/kS1K5+vPt6RdSk/gCnkiaEgjrasgRWKHktJ727f+7QWs+KfmCTSGeXf5ODTu7zNOBwzVkLzGkA==} + peerDependencies: + axios: '>= 1.0.0 < 2' + + '@hey-api/client-fetch@0.4.0': + resolution: {integrity: sha512-T8T3yCl2+AiVVDP6tvfnU/rXOkEHddMTOYCZXUVbydj7URVErh5BelIa8UWBkFYZBP2/mi2nViScNhe9eBolPw==} + + '@hey-api/openapi-ts@0.53.8': + resolution: {integrity: sha512-UbiaIq+JNgG00N/iWYk+LSivOBgWsfGxEHDleWEgQcQr3q7oZJTKL8oH87+KkFDDbUngm1g8lnKI/zLdu1aElQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -855,6 +949,9 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -871,71 +968,71 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - '@netlify/functions@2.8.1': - resolution: {integrity: sha512-+6wtYdoz0yE06dSa9XkP47tw5zm6g13QMeCwM3MmHx1vn8hzwFa51JtmfraprdkL7amvb7gaNM+OOhQU1h6T8A==} + '@netlify/functions@2.8.2': + resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} engines: {node: '>=14.0.0'} '@netlify/node-cookies@0.1.0': resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - '@netlify/serverless-functions-api@1.19.1': - resolution: {integrity: sha512-2KYkyluThg1AKfd0JWI7FzpS4A/fzVVGYIf6AM4ydWyNj8eI/86GQVLeRgDoH7CNOxt243R5tutWlmHpVq0/Ew==} + '@netlify/serverless-functions-api@1.26.1': + resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} engines: {node: '>=18.0.0'} - '@next/env@14.2.5': - resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} + '@next/env@14.2.4': + resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} - '@next/swc-darwin-arm64@14.2.5': - resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} + '@next/swc-darwin-arm64@14.2.4': + resolution: {integrity: sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.5': - resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} + '@next/swc-darwin-x64@14.2.4': + resolution: {integrity: sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.5': - resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} + '@next/swc-linux-arm64-gnu@14.2.4': + resolution: {integrity: sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.5': - resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} + '@next/swc-linux-arm64-musl@14.2.4': + resolution: {integrity: sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.5': - resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} + '@next/swc-linux-x64-gnu@14.2.4': + resolution: {integrity: sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.5': - resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} + '@next/swc-linux-x64-musl@14.2.4': + resolution: {integrity: sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.5': - resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} + '@next/swc-win32-arm64-msvc@14.2.4': + resolution: {integrity: sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.5': - resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} + '@next/swc-win32-ia32-msvc@14.2.4': + resolution: {integrity: sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.5': - resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} + '@next/swc-win32-x64-msvc@14.2.4': + resolution: {integrity: sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1120,163 +1217,163 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.19.1': - resolution: {integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==} + '@rollup/rollup-android-arm-eabi@4.18.0': + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.22.4': - resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.19.1': - resolution: {integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==} + '@rollup/rollup-android-arm64@4.18.0': + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.22.4': - resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.19.1': - resolution: {integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==} + '@rollup/rollup-darwin-arm64@4.18.0': + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.22.4': - resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.19.1': - resolution: {integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==} + '@rollup/rollup-darwin-x64@4.18.0': + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.22.4': - resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.19.1': - resolution: {integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==} + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': - resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.19.1': - resolution: {integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==} + '@rollup/rollup-linux-arm-musleabihf@4.18.0': + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.4': - resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.19.1': - resolution: {integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==} + '@rollup/rollup-linux-arm64-gnu@4.18.0': + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.4': - resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.19.1': - resolution: {integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==} + '@rollup/rollup-linux-arm64-musl@4.18.0': + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.4': - resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': - resolution: {integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': - resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.19.1': - resolution: {integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==} + '@rollup/rollup-linux-riscv64-gnu@4.18.0': + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.4': - resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.19.1': - resolution: {integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==} + '@rollup/rollup-linux-s390x-gnu@4.18.0': + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.4': - resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.19.1': - resolution: {integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==} + '@rollup/rollup-linux-x64-gnu@4.18.0': + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.4': - resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.19.1': - resolution: {integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==} + '@rollup/rollup-linux-x64-musl@4.18.0': + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.4': - resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.19.1': - resolution: {integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==} + '@rollup/rollup-win32-arm64-msvc@4.18.0': + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.22.4': - resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.19.1': - resolution: {integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==} + '@rollup/rollup-win32-ia32-msvc@4.18.0': + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.4': - resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.19.1': - resolution: {integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==} + '@rollup/rollup-win32-x64-msvc@4.18.0': + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.4': - resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] @@ -1287,8 +1384,8 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@stoplight/http-spec@7.1.0': - resolution: {integrity: sha512-Z2XqKX2SV8a1rrgSzFqccX2TolfcblT+l4pNvUU+THaLl50tKDoeidwWWZTzYUzqU0+UV97ponvqEbWWN3PaXg==} + '@stoplight/http-spec@7.0.3': + resolution: {integrity: sha512-r9Y8rT4RbqY7NWqSXjiqtBq0Nme2K5cArSX9gDPeuud8F4CwbizP7xkUwLdwDdHgoJkyIQ3vkFJpHzUVCQeOOA==} engines: {node: '>=14.13'} '@stoplight/json-schema-generator@1.0.2': @@ -1304,8 +1401,8 @@ packages: '@stoplight/json-schema-sampler@0.3.0': resolution: {integrity: sha512-G7QImi2xr9+8iPEg0D9YUi1BWhIiiEm19aMb91oWBSdxuhezOAqqRP3XNY6wczHV9jLWW18f+KkghTy9AG0BQA==} - '@stoplight/json@3.21.5': - resolution: {integrity: sha512-hWc0ctoZ+tZwhJm8FjTP4OHxEm1V28rU84FNJToLYUBLgInZEMqQZ4f55eUECm08QCyUl5x7E48iyiWj+P+ejA==} + '@stoplight/json@3.21.0': + resolution: {integrity: sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==} engines: {node: '>=8.3.0'} '@stoplight/ordered-object-literal@1.0.5': @@ -1316,8 +1413,8 @@ packages: resolution: {integrity: sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==} engines: {node: '>=8'} - '@stoplight/prism-cli@5.8.3': - resolution: {integrity: sha512-Tp3bRKp0Q8P0szB9ozsyYDC+BJ+wtcLkInnD3WZQcAeM8irqAfkqwCTVigpcCJeKYRB2p9PtxpG1XtGB5TDP1g==} + '@stoplight/prism-cli@5.8.1': + resolution: {integrity: sha512-GePFIKpHZRnp2UpesxdJuaYG98Pt4zQhF9Q7TBcDvP3o3Dg+8VBdOweJXYs6qJVxJublR7jzVF+zR+J9rr4VZw==} engines: {node: '>=18.20.1'} hasBin: true @@ -1325,12 +1422,12 @@ packages: resolution: {integrity: sha512-fmH7n6e0thzOGcD5uZBu/Xx1iFNfpc9ACTxPie+lFD54SJ214M2FIFXD7kV+NCFlC+w5OFw+lJRaYM859uMnAg==} engines: {node: '>=18.20.1'} - '@stoplight/prism-http-server@5.8.3': - resolution: {integrity: sha512-7SOBjccS+czl9F2eKxY1Y3bjFefq+1aX2PdSHC5+HcZ2oupffRKMA0gIL2/lsvgcPGBO0HJvl6WXPLnRJ3q2yw==} + '@stoplight/prism-http-server@5.8.1': + resolution: {integrity: sha512-7IXx0GpeOrbMosYEsC/oh2r1KWW3ZDFo61XyXJKIhiCqUtcPgLbafONfp5h6a7Dk3RPhJEXGQXXdBSxZ3vSuUQ==} engines: {node: '>=18.20.1'} - '@stoplight/prism-http@5.8.3': - resolution: {integrity: sha512-v58g0d4zhLbGiKkXSIE4ineYkIK8IZ/FT3im2Sg78hhp69TkF9bZc8+XdVYPLZxt1jkLDcm2SepM/InDtaK0xA==} + '@stoplight/prism-http@5.8.1': + resolution: {integrity: sha512-2tTybBTyQtMrLkn+yBOkwivI0MobW77Pfgwc9M0rhAFpM46Zx1gxOG7LIaVIucyAwCwk6X+8wU/ZW/5tm4i+gQ==} engines: {node: '>=18.20.1'} '@stoplight/types@13.20.0': @@ -1358,35 +1455,35 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@tanstack/history@1.57.6': - resolution: {integrity: sha512-ppAJbnUaHdHmccVmplcd1ivX4GMPHxhStSquuuz0TSAEPEpz0iOVBur4iKfvIuMKm24c40nhvaEwZbKGVfbrGg==} + '@tanstack/history@1.61.1': + resolution: {integrity: sha512-2CqERleeqO3hkhJmyJm37tiL3LYgeOpmo8szqdjgtnnG0z7ZpvzkZz6HkfOr9Ca/ha7mhAiouSvLYuLkM37AMg==} engines: {node: '>=12'} - '@tanstack/query-core@5.51.16': - resolution: {integrity: sha512-zfV+WAtBGm1dUIbL0w/x8qTqVLKU1/Bo1p19J9LF02MmIc4FxzMImMXhFzYJQl5Hx8Wit6RiQ4tB/DvN8y9zaQ==} + '@tanstack/query-core@5.45.0': + resolution: {integrity: sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==} - '@tanstack/query-devtools@5.51.16': - resolution: {integrity: sha512-ajwuq4WnkNCMj/Hy3KR8d3RtZ6PSKc1dD2vs2T408MdjgKzQ3klVoL6zDgVO7X+5jlb5zfgcO3thh4ojPhfIaw==} + '@tanstack/query-devtools@5.37.1': + resolution: {integrity: sha512-XcG4IIHIv0YQKrexTqo2zogQWR1Sz672tX2KsfE9kzB+9zhx44vRKH5si4WDILE1PIWQpStFs/NnrDQrBAUQpg==} - '@tanstack/react-cross-context@1.57.6': - resolution: {integrity: sha512-TarQ/WX+uVQ3t8aK4GYUQ4uZ+zAG67hn9vGNp2vtsy0UdOhgHdXf30bi8lR6GsHrZMuS/Z/TlXqqngqBnTwF5A==} + '@tanstack/react-cross-context@1.60.0': + resolution: {integrity: sha512-UZXc0ggrZLvNN3j1qQLtnhPp0gAcxeKS+d+hjGiJuIHSKt5fCbb/88C5uWrq4R4jsw5PnzUaKn8VqyUi/cXsXA==} peerDependencies: react: '>=18' react-dom: '>=18' - '@tanstack/react-query-devtools@5.51.16': - resolution: {integrity: sha512-nX/LeBMba9S9/kKfOrPDUiBXkpc5To8JbssABOadukPB093SF8+NdSO5/2RY72aE0pBwaru2THyM4WX5rEnuAw==} + '@tanstack/react-query-devtools@5.45.0': + resolution: {integrity: sha512-bYHKCBQxRYQgQPPt+OdxJxoGag8SyPYxFxUsTHXERPnhD99I8iUV39XGYePyxKv5b3oME4fM1e8AgQ1aPxTQ6w==} peerDependencies: - '@tanstack/react-query': ^5.51.16 + '@tanstack/react-query': ^5.45.0 react: ^18 || ^19 - '@tanstack/react-query@5.51.16': - resolution: {integrity: sha512-NZnpJ30zkwaA2ZPhxJLs/qoMbd0yNAj6yyb3JTADJx9HjSdtvnNzOY1bDa3bU1B9CZTBBb7W9E1PpWlNXdgESg==} + '@tanstack/react-query@5.45.0': + resolution: {integrity: sha512-y272cKRJp1BvehrWG4ashOBuqBj1Qm2O6fgYJ9LYSHrLdsCXl74GbSVjUQTReUdHuRIl9cEOoyPa6HYag400lw==} peerDependencies: react: ^18.0.0 - '@tanstack/react-router-with-query@1.58.7': - resolution: {integrity: sha512-NhohmafqKHsIJSycTqskmQqcK5vV6bTSp3pNKT9xhTKkxaol3bWi/Lv1NIo6b1MdqghO6dhp+Sc4vIjX/VzdPQ==} + '@tanstack/react-router-with-query@1.62.1': + resolution: {integrity: sha512-S6+BfVTkKdbKudPUrEHccn78tXCq5hlEFuV0x+LvXNDdLo9H62N/0uiZ1HZdCgyeLyU+YNbR0QXJlLQVrRKXkQ==} engines: {node: '>=12'} peerDependencies: '@tanstack/react-query': '>=5.49.2' @@ -1394,11 +1491,11 @@ packages: react: '>=18' react-dom: '>=18' - '@tanstack/react-router@1.58.7': - resolution: {integrity: sha512-iu4WtrhXz0YcJzPMlyP4jT3zfEKJH+dVVKViK8ayL1hWjP2n6A08kYE1hcT3YmuK2LmNmMsnGS+Tc7WAFsHgZQ==} + '@tanstack/react-router@1.62.1': + resolution: {integrity: sha512-8xMVZForpvRK8EtCKJ/ZBVqC3LXGYETeqRns+aFjdQRqy3rnreYKJ+pUDz1gkMWi3fYfC1jvJdZbJdZAtCEssw==} engines: {node: '>=12'} peerDependencies: - '@tanstack/router-generator': 1.58.1 + '@tanstack/router-generator': 1.58.12 react: '>=18' react-dom: '>=18' peerDependenciesMeta: @@ -1411,20 +1508,20 @@ packages: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - '@tanstack/router-devtools@1.58.7': - resolution: {integrity: sha512-bZL3VDmS63gOW+RKSXRQ7uagATP1k8sM+ucHrcLy98hcVxzYRVwIwVgqTZY2KtUSXgFwb4LXClAdZdiJM9i+gw==} + '@tanstack/router-devtools@1.62.1': + resolution: {integrity: sha512-MTxGell0S4GcCmLLJkCgiNk91Omr8gvMJ62bq892RVBI/O5oBzuZKW6SDLdiToJWKaB2PaL8HyNO0b2AYkPT8g==} engines: {node: '>=12'} peerDependencies: - '@tanstack/react-router': ^1.58.7 + '@tanstack/react-router': ^1.62.1 react: '>=18' react-dom: '>=18' - '@tanstack/router-generator@1.58.1': - resolution: {integrity: sha512-oj/97KWi8EHFx/w07fAuXXyhWi5xgSMCfzbB9q42c1ZdLbv8wzBo4a6PO1fCi01tpKKHUopA8dSlGIOeJDhBAA==} + '@tanstack/router-generator@1.58.12': + resolution: {integrity: sha512-Ovzb+zCbiRgJAg6awTXWQjn1uRkVyiBc4jiIk7ll2hg0bHjIOsgiegwx/F2YKycY98vWj9TLv/U4Hoo4rmK0IA==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.58.4': - resolution: {integrity: sha512-Ypoy+HrHwpv9A41bj7dpHhtLYavu7CU8WyuJnuFBY3SI5ZKWF7s/hMYUtVmEVwwT7fJCVQ8gcTkbfAag4uy/pA==} + '@tanstack/router-plugin@1.62.0': + resolution: {integrity: sha512-I+S1QWjKKvWqEns4pwH4KfM0jkiXv00Q5DnG0lw7DKETfBy77UpMLUDruayKfeqErbMv/ksxt6hSlpm3Hlx2dw==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' @@ -1438,12 +1535,12 @@ packages: webpack: optional: true - '@tanstack/start-vite-plugin@1.57.14': - resolution: {integrity: sha512-TmuAuD5IkUUz7vX9DcPCYNIgs2WXiMyLacN0uyzYa7mlOfp/vKwSIfMGvkZsyr6jhqzWHeB00EPql60HfjIqaA==} + '@tanstack/start-vite-plugin@1.60.0': + resolution: {integrity: sha512-ap9NFBRyWJo7Xdklad0Bg3LOZ+n9nwWTDOU5ix/ZzZfifNWp5OoHRSVveHqPm2UAHUVp2BCzUK6xbAxtaSjjnw==} engines: {node: '>=12'} - '@tanstack/start@1.58.7': - resolution: {integrity: sha512-j1L9Ddm5Rdu0tmIS0IkhHoz1iyTLjOUkdOidzKBu+03nyHjAVQFpdSybZVh6hWr5Oy6bgWHQsrX6qTEo0Gs/iQ==} + '@tanstack/start@1.62.1': + resolution: {integrity: sha512-y8K/musbAxhm1T65p9M5yBukyrVdHulASCmg4FfYJBjJCSaTIrrE9EnN2J3u5Msy9x/1Ujce5hj9DfmTNTwcZg==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -1490,9 +1587,15 @@ packages: '@types/braces@3.0.4': resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} + '@types/cross-spawn@6.0.6': + resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/http-proxy@1.17.15': resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} @@ -1508,8 +1611,11 @@ packages: '@types/micromatch@4.0.9': resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} - '@types/node@20.14.13': - resolution: {integrity: sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==} + '@types/node@20.14.2': + resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} @@ -1623,9 +1729,14 @@ packages: peerDependencies: acorn: '>=8.9.0' - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} + hasBin: true acorn@8.12.1: resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} @@ -1644,8 +1755,8 @@ packages: ajv: optional: true - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -1752,8 +1863,8 @@ packages: axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} - b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} babel-dead-code-elimination@1.0.6: resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==} @@ -1761,8 +1872,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.4.2: - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + bare-events@2.5.0: + resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1791,8 +1902,13 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1818,6 +1934,14 @@ packages: magicast: optional: true + c12@2.0.1: + resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1837,18 +1961,17 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} + caniuse-lite@1.0.30001632: + resolution: {integrity: sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==} - caniuse-lite@1.0.30001645: - resolution: {integrity: sha512-GFtY2+qt91kzyMk6j48dJcwJVq5uTkk71XxE3RtScx7XWRLsO7bU44LOFkOZYR8w9YMS0UhPSYpN/6rAMImmLw==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - chai@4.5.0: - resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} chalk@2.4.2: @@ -1874,6 +1997,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -1907,8 +2034,8 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} - code-block-writer@13.0.2: - resolution: {integrity: sha512-XfXzAGiStXSmCIwrkdfvc7FS5Dtj8yelCtyOf2p2skCAfvLd6zu0rGzuS9NSCO3bq1JKpFZ7tbKdKlcd5occQA==} + code-block-writer@13.0.1: + resolution: {integrity: sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1993,8 +2120,8 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - croner@8.1.1: - resolution: {integrity: sha512-1VdUuRnQP4drdFkS8NKvDR1NBgevm8TOuflcaZEKsxw42CxonjW/2vkj1AKlinJb4ZLwBcuWF9GiPr7FQc6AQA==} + croner@8.1.2: + resolution: {integrity: sha512-ypfPFcAXHuAZRCzo3vJL6ltENzniTjwe/qsLleH1V2/7SRDjgvRQyrLmumFTLmjFax4IuSxfGXEn79fozXcJog==} engines: {node: '>=18.0'} cross-fetch@3.1.8: @@ -2061,8 +2188,8 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2155,8 +2282,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.4: - resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + electron-to-chromium@1.4.799: + resolution: {integrity: sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==} + + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2221,6 +2351,10 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -2279,11 +2413,8 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} - - fast-xml-parser@4.4.1: - resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} hasBin: true fastestsmallesttextencoderdecoder@1.0.22: @@ -2332,8 +2463,8 @@ packages: foreach@2.0.6: resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.2.0: + resolution: {integrity: sha512-CrWQNaEl1/6WeZoarcM9LHupTo3RpZO2Pdk1vktwzPiQTsJnAKJmm3TACKeG5UZbWDfaH2AbvYxzP96y0MT7fA==} engines: {node: '>=14'} form-data@4.0.0: @@ -2343,8 +2474,8 @@ packages: format-util@1.0.5: resolution: {integrity: sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==} - fp-ts@2.16.9: - resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==} + fp-ts@2.16.6: + resolution: {integrity: sha512-v7w209VPj4L6pPn/ftFRJu31Oa8QagwcVw7BZmLCUWU4AQoc954rX9ogSIahDf67Pg+GjPbkW/Kn9XWnlWJG0g==} fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} @@ -2422,8 +2553,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.4.1: + resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true glob@7.2.3: @@ -2468,8 +2600,8 @@ packages: h3@1.11.1: resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} - h3@1.12.0: - resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} @@ -2610,9 +2742,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -2738,21 +2869,26 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} engines: {node: '>=10'} istanbul-reports@3.1.7: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} + engines: {node: '>=14'} jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.3.1: + resolution: {integrity: sha512-xPZ6pPzUifI8XDBBxIL4OB1w1ZKmBpmNEeKwNt2d0Spn8XisAIZhWrlOHq5seBrFGTxVx9PbrWvEMyrk4IO5bA==} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2826,48 +2962,48 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - lefthook-darwin-arm64@1.7.11: - resolution: {integrity: sha512-JQtGTM2uZF/3MGKmqb3jg8KG0B/V+2IU+H2jLvRtJULjHQxgiAQGsCJZKCYr8Uvq2/sbjaa+YdiKHROlqt7O6w==} + lefthook-darwin-arm64@1.6.15: + resolution: {integrity: sha512-PQKFipNueV2i/W3XI+fDDwzV3YdnJ1AqwIP2BwDpzlSJtQQarsAG7lRvFdjkPGplVLqWoohTQa1/ooBmg+g3dw==} cpu: [arm64] os: [darwin] - lefthook-darwin-x64@1.7.11: - resolution: {integrity: sha512-sfHzHklBh/xEiRGbCkIWZfkyf6gxg4nSryKuA7M6VgwooauXYN+0aXxNbK4CjXBPSMhSCSHh6uHXsqXWaVrTCQ==} + lefthook-darwin-x64@1.6.15: + resolution: {integrity: sha512-dNAZp281EJ1vyovszftVO+uk/xJZbomrtfuQeZ3tAk8Xybu6b4+XSoBklH5eRfl46/TWUNVkSF5owYG6+ZtvIA==} cpu: [x64] os: [darwin] - lefthook-freebsd-arm64@1.7.11: - resolution: {integrity: sha512-UsEHI2xB0c+k3DfTNhl9STBuxZMkgMCUdOS2r6OkVoUY5Uf1PVUH+OTq7dvSAnsueSl6r+3xyCBz2tn48uVwbA==} + lefthook-freebsd-arm64@1.6.15: + resolution: {integrity: sha512-GWGt5jDLOcICjsoPZV4tFjjQJ3v9uNqHXg80QXx+Pb7HSqLFp3OnUEfjV2IO27lOln7+AMTF6WWigJl/NKllKw==} cpu: [arm64] os: [freebsd] - lefthook-freebsd-x64@1.7.11: - resolution: {integrity: sha512-WJznUCrP8kb0nlxWvlvfWJm/SAW0TOJOv2VFeFLInYM1ylFVUVeV2fEvEHOjGIKyt96+uAnbiHOkqIYbhfc03g==} + lefthook-freebsd-x64@1.6.15: + resolution: {integrity: sha512-803r+OYRpY5CBa8LU83EINO+Mi5k7rfflApMJuEIzcH1pFlEjbLttGy2hJX19m1kTKzkz/HuzFl6znbkmZGttw==} cpu: [x64] os: [freebsd] - lefthook-linux-arm64@1.7.11: - resolution: {integrity: sha512-4S+Gdr5jWmwrfHGokcuRQm/A92KLRwYotBgOMwf0etQa4n9B6FGXEi59IOuFNHeZXY4DpxA9A8AvplVdN5KSOA==} + lefthook-linux-arm64@1.6.15: + resolution: {integrity: sha512-4rATbRhhBj4VNnvAEGRXvQL+POO4xwdUdCc2aSBcKdRFnabYabWm9ebSp55id7nDt3mVf7FBKDCl7A3kzUxehQ==} cpu: [arm64] os: [linux] - lefthook-linux-x64@1.7.11: - resolution: {integrity: sha512-3CwNNpRa1fHlymgtxjHQ0BqYMvvj3WXvX4eq1BT+w5NF7h5ZjVaK+nilpgEWUUTQyF66FLai+CGx6wfKvcPOag==} + lefthook-linux-x64@1.6.15: + resolution: {integrity: sha512-VhDL/po/EujilZKq14frjzOgApHrI1bNfghvuWkNz+5LGphe1/iSXV1DKDDOrGprl/vp2p+QUaJW8HMKBiKgTw==} cpu: [x64] os: [linux] - lefthook-windows-arm64@1.7.11: - resolution: {integrity: sha512-DfLVQ4F1iQcudTDnX/Ru1WNSN2OBPrHwwcWVVdQ/KDYWSru6dd4f18M7g98TZ2X9nYHA5IWrX8w2DaBR6P0/bw==} + lefthook-windows-arm64@1.6.15: + resolution: {integrity: sha512-0HcX/tPEktPjkFVrAIUXzlWIN5VhkBqbYl7xofWoYMjdYetFU2dvC2UDqp/ENVA/PxelszgTVLUVaI0RVJHDoA==} cpu: [arm64] os: [win32] - lefthook-windows-x64@1.7.11: - resolution: {integrity: sha512-xAZP4tQr/6YKbKKvp0qMf6UnToXxo9RulzpKq+v5SiGWE5rz3G12XpyaNVslfrb1N30Yp8wUdZdlXBqhUvltYw==} + lefthook-windows-x64@1.6.15: + resolution: {integrity: sha512-oBTfUbJRNOSuR1XsS5frGPCY8p74KXNVOuMX+Oun6kyBSutqe3kmafZ3nytbugJdzGx4bGfYxLISM8EoEkgThA==} cpu: [x64] os: [win32] - lefthook@1.7.11: - resolution: {integrity: sha512-IJ9KSk3+dkjTmKEsH2XJC4elocdgXzIznAHfbgr+5N/dJoB3fj8xNWfNx5fDhjT6so4eCJgdOrF9NJ7cS4wRvw==} + lefthook@1.6.15: + resolution: {integrity: sha512-Jjsz5ln/khEBEWH0ZWtK4A14F5aIGk3iwfyHpqqnxpF79OQR8MYCUN2VzpTk5XgzbokMi/M7CJ17/LPAYBRUEw==} hasBin: true lilconfig@2.1.0: @@ -2885,8 +3021,8 @@ packages: resolution: {integrity: sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==} engines: {node: '>=4'} - listhen@1.7.2: - resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} hasBin: true load-json-file@4.0.0: @@ -2920,6 +3056,10 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -2930,6 +3070,9 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} @@ -3010,8 +3153,8 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.6: @@ -3081,8 +3224,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@14.2.5: - resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} + next@14.2.4: + resolution: {integrity: sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -3138,6 +3281,9 @@ packages: resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -3166,8 +3312,8 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. - nypm@0.3.9: - resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} + nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true @@ -3179,9 +3325,8 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -3197,6 +3342,9 @@ packages: ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -3238,9 +3386,6 @@ packages: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -3343,8 +3488,8 @@ packages: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} @@ -3377,14 +3522,14 @@ packages: ts-node: optional: true - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + postcss-nested@6.0.1: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.1: - resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -3394,16 +3539,16 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.40: - resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==} + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - postman-collection@4.4.1: - resolution: {integrity: sha512-1oS1x+Y7gLGV3xF+EwdZtZOmZILsDTogTHdv2nssTjO+bAo7yr++nOwINT1p3A3mrDeCuEscMJmbJzil57FedQ==} + postman-collection@4.4.0: + resolution: {integrity: sha512-2BGDFcUwlK08CqZFUlIC8kwRJueVzPjZnnokWPtJCd9f2J06HBQpGL7t2P1Ud1NEsK9NHq9wdipUhWLOPj5s/Q==} engines: {node: '>=10'} postman-url-encoder@3.0.5: @@ -3506,6 +3651,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + recast@0.23.9: resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} @@ -3553,9 +3702,9 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.9: - resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} - engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} + rimraf@5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true rollup-plugin-visualizer@5.12.0: @@ -3568,13 +3717,13 @@ packages: rollup: optional: true - rollup@4.19.1: - resolution: {integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==} + rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.22.4: - resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3620,8 +3769,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true @@ -3846,8 +3995,8 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - tailwindcss@3.4.7: - resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} + tailwindcss@3.4.4: + resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} engines: {node: '>=14.0.0'} hasBin: true @@ -3858,8 +4007,8 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - terser@5.33.0: - resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -3947,8 +4096,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - type-detect@4.1.0: - resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} type-fest@2.19.0: @@ -3979,16 +4128,24 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uglify-js@3.19.1: - resolution: {integrity: sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==} + uglify-js@3.18.0: + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} hasBin: true @@ -4004,6 +4161,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} @@ -4015,8 +4175,8 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unimport@3.12.0: - resolution: {integrity: sha512-5y8dSvNvyevsnw4TBQkIQR1Rjdbb+XjVSwQwxltpnVZrStBvvPkMPcZrh1kg5kY77kpx6+D4Ztd3W6FOBH/y2Q==} + unimport@3.13.1: + resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -4082,8 +4242,14 @@ packages: unwasm@0.3.9: resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4091,6 +4257,9 @@ packages: uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-template-lite@22.9.0: resolution: {integrity: sha512-cmGZaykSWEQ5UXKaGKnUS8zFvfp8j1Jvn7dlq3P7tGd5XeybXcfo0xnVBRWiNEp80nO1GYgCLwoaRJ8WMmmk3Q==} @@ -4154,8 +4323,8 @@ packages: vite: optional: true - vite@5.3.5: - resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + vite@5.2.13: + resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4182,8 +4351,8 @@ packages: terser: optional: true - vite@5.4.7: - resolution: {integrity: sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==} + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4275,8 +4444,8 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true @@ -4315,8 +4484,8 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true @@ -4340,8 +4509,8 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} zip-stream@6.0.1: @@ -4360,7 +4529,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/json-schema-ref-parser@11.6.4': + '@apidevtools/json-schema-ref-parser@11.7.0': dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 @@ -4371,86 +4540,176 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.25.2': {} + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.0.1 + + '@babel/compat-data@7.24.7': {} + + '@babel/compat-data@7.25.7': {} - '@babel/core@7.25.2': + '@babel/core@7.24.7': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.25.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.25.0': + '@babel/generator@7.24.7': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.24.7': dependencies: - '@babel/compat-data': 7.25.2 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.25.7': + dependencies: + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/helper-function-name@7.24.7': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 + + '@babel/helper-hoist-variables@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.24.7': {} + + '@babel/helper-plugin-utils@7.25.7': {} '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/helper-string-parser@7.24.7': {} + + '@babel/helper-string-parser@7.25.7': {} '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-option@7.24.7': {} + + '@babel/helper-validator-option@7.25.7': {} + + '@babel/helpers@7.24.7': + dependencies: + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 - '@babel/helpers@7.25.0': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 '@babel/highlight@7.24.7': dependencies: @@ -4459,111 +4718,137 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.25.3': + '@babel/highlight@7.25.7': dependencies: - '@babel/types': 7.25.2 + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.24.7': + dependencies: + '@babel/types': 7.24.7 + + '@babel/parser@7.25.7': + dependencies: + '@babel/types': 7.25.7 - '@babel/parser@7.25.6': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.24.7)': dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 - '@babel/template@7.25.0': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 - '@babel/traverse@7.25.3': + '@babel/traverse@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.6 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.2': + '@babel/types@7.24.7': dependencies: - '@babel/helper-string-parser': 7.24.8 + '@babel/helper-string-parser': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/biome@1.8.3': + '@biomejs/biome@1.8.1': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 + '@biomejs/cli-darwin-arm64': 1.8.1 + '@biomejs/cli-darwin-x64': 1.8.1 + '@biomejs/cli-linux-arm64': 1.8.1 + '@biomejs/cli-linux-arm64-musl': 1.8.1 + '@biomejs/cli-linux-x64': 1.8.1 + '@biomejs/cli-linux-x64-musl': 1.8.1 + '@biomejs/cli-win32-arm64': 1.8.1 + '@biomejs/cli-win32-x64': 1.8.1 - '@biomejs/cli-darwin-arm64@1.8.3': + '@biomejs/cli-darwin-arm64@1.8.1': optional: true - '@biomejs/cli-darwin-x64@1.8.3': + '@biomejs/cli-darwin-x64@1.8.1': optional: true - '@biomejs/cli-linux-arm64-musl@1.8.3': + '@biomejs/cli-linux-arm64-musl@1.8.1': optional: true - '@biomejs/cli-linux-arm64@1.8.3': + '@biomejs/cli-linux-arm64@1.8.1': optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + '@biomejs/cli-linux-x64-musl@1.8.1': optional: true - '@biomejs/cli-linux-x64@1.8.3': + '@biomejs/cli-linux-x64@1.8.1': optional: true - '@biomejs/cli-win32-arm64@1.8.3': + '@biomejs/cli-win32-arm64@1.8.1': optional: true - '@biomejs/cli-win32-x64@1.8.3': + '@biomejs/cli-win32-x64@1.8.1': optional: true '@cloudflare/kv-asset-handler@0.3.4': @@ -4797,14 +5082,19 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@hey-api/openapi-ts@0.52.0(magicast@0.3.4)(typescript@5.5.4)': + '@hey-api/client-axios@0.2.7(axios@1.7.2)': dependencies: - '@apidevtools/json-schema-ref-parser': 11.6.4 - c12: 1.11.1(magicast@0.3.4) - camelcase: 8.0.0 + axios: 1.7.2 + + '@hey-api/client-fetch@0.4.0': {} + + '@hey-api/openapi-ts@0.53.8(typescript@5.6.2)': + dependencies: + '@apidevtools/json-schema-ref-parser': 11.7.0 + c12: 2.0.1 commander: 12.1.0 handlebars: 4.7.8 - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - magicast @@ -4828,7 +5118,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -4840,17 +5130,19 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.4.15 '@jsdevtools/ono@7.1.3': {} @@ -4863,50 +5155,50 @@ snapshots: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.3 + semver: 7.6.2 tar: 6.2.1 transitivePeerDependencies: - encoding - supports-color - '@netlify/functions@2.8.1': + '@netlify/functions@2.8.2': dependencies: - '@netlify/serverless-functions-api': 1.19.1 + '@netlify/serverless-functions-api': 1.26.1 '@netlify/node-cookies@0.1.0': {} - '@netlify/serverless-functions-api@1.19.1': + '@netlify/serverless-functions-api@1.26.1': dependencies: '@netlify/node-cookies': 0.1.0 urlpattern-polyfill: 8.0.2 - '@next/env@14.2.5': {} + '@next/env@14.2.4': {} - '@next/swc-darwin-arm64@14.2.5': + '@next/swc-darwin-arm64@14.2.4': optional: true - '@next/swc-darwin-x64@14.2.5': + '@next/swc-darwin-x64@14.2.4': optional: true - '@next/swc-linux-arm64-gnu@14.2.5': + '@next/swc-linux-arm64-gnu@14.2.4': optional: true - '@next/swc-linux-arm64-musl@14.2.5': + '@next/swc-linux-arm64-musl@14.2.4': optional: true - '@next/swc-linux-x64-gnu@14.2.5': + '@next/swc-linux-x64-gnu@14.2.4': optional: true - '@next/swc-linux-x64-musl@14.2.5': + '@next/swc-linux-x64-musl@14.2.4': optional: true - '@next/swc-win32-arm64-msvc@14.2.5': + '@next/swc-win32-arm64-msvc@14.2.4': optional: true - '@next/swc-win32-ia32-msvc@14.2.5': + '@next/swc-win32-ia32-msvc@14.2.4': optional: true - '@next/swc-win32-x64-msvc@14.2.5': + '@next/swc-win32-x64-msvc@14.2.4': optional: true '@nodelib/fs.scandir@2.1.5': @@ -4990,176 +5282,176 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/plugin-alias@5.1.1(rollup@4.22.4)': + '@rollup/plugin-alias@5.1.1(rollup@4.18.0)': optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-commonjs@25.0.8(rollup@4.22.4)': + '@rollup/plugin-commonjs@25.0.8(rollup@4.18.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.11 + magic-string: 0.30.10 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-inject@5.0.5(rollup@4.22.4)': + '@rollup/plugin-inject@5.0.5(rollup@4.18.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) estree-walker: 2.0.2 - magic-string: 0.30.11 + magic-string: 0.30.10 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-json@6.1.0(rollup@4.22.4)': + '@rollup/plugin-json@6.1.0(rollup@4.18.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.22.4)': + '@rollup/plugin-node-resolve@15.3.0(rollup@4.18.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-replace@5.0.7(rollup@4.22.4)': + '@rollup/plugin-replace@5.0.7(rollup@4.18.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) - magic-string: 0.30.11 + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) + magic-string: 0.30.10 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/plugin-terser@0.4.4(rollup@4.22.4)': + '@rollup/plugin-terser@0.4.4(rollup@4.18.0)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 - terser: 5.33.0 + terser: 5.34.1 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.2(rollup@4.22.4)': + '@rollup/pluginutils@5.1.2(rollup@4.18.0)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - '@rollup/rollup-android-arm-eabi@4.19.1': + '@rollup/rollup-android-arm-eabi@4.18.0': optional: true - '@rollup/rollup-android-arm-eabi@4.22.4': + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.19.1': + '@rollup/rollup-android-arm64@4.18.0': optional: true - '@rollup/rollup-android-arm64@4.22.4': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.19.1': + '@rollup/rollup-darwin-arm64@4.18.0': optional: true - '@rollup/rollup-darwin-arm64@4.22.4': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.19.1': + '@rollup/rollup-darwin-x64@4.18.0': optional: true - '@rollup/rollup-darwin-x64@4.22.4': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.19.1': + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.19.1': + '@rollup/rollup-linux-arm-musleabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.4': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.19.1': + '@rollup/rollup-linux-arm64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.4': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.19.1': + '@rollup/rollup-linux-arm64-musl@4.18.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.22.4': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.19.1': + '@rollup/rollup-linux-riscv64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.4': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.19.1': + '@rollup/rollup-linux-s390x-gnu@4.18.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.4': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.19.1': + '@rollup/rollup-linux-x64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.22.4': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.19.1': + '@rollup/rollup-linux-x64-musl@4.18.0': optional: true - '@rollup/rollup-linux-x64-musl@4.22.4': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.19.1': + '@rollup/rollup-win32-arm64-msvc@4.18.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.4': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.19.1': + '@rollup/rollup-win32-ia32-msvc@4.18.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.4': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.19.1': + '@rollup/rollup-win32-x64-msvc@4.18.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.22.4': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true '@sinclair/typebox@0.27.8': {} '@sindresorhus/merge-streams@2.3.0': {} - '@stoplight/http-spec@7.1.0': + '@stoplight/http-spec@7.0.3': dependencies: - '@stoplight/json': 3.21.5 + '@stoplight/json': 3.21.0 '@stoplight/json-schema-generator': 1.0.2 '@stoplight/types': 14.1.0 '@types/json-schema': 7.0.11 @@ -5168,7 +5460,7 @@ snapshots: fnv-plus: 1.3.1 lodash: 4.17.21 openapi3-ts: 2.0.2 - postman-collection: 4.4.1 + postman-collection: 4.4.0 tslib: 2.6.3 type-is: 1.6.18 transitivePeerDependencies: @@ -5207,7 +5499,7 @@ snapshots: '@types/json-schema': 7.0.15 json-pointer: 0.6.2 - '@stoplight/json@3.21.5': + '@stoplight/json@3.21.0': dependencies: '@stoplight/ordered-object-literal': 1.0.5 '@stoplight/path': 1.3.2 @@ -5220,17 +5512,17 @@ snapshots: '@stoplight/path@1.3.2': {} - '@stoplight/prism-cli@5.8.3': + '@stoplight/prism-cli@5.8.1': dependencies: - '@stoplight/json': 3.21.5 + '@stoplight/json': 3.21.0 '@stoplight/json-schema-ref-parser': 9.2.7 '@stoplight/prism-core': 5.8.0 - '@stoplight/prism-http': 5.8.3 - '@stoplight/prism-http-server': 5.8.3 + '@stoplight/prism-http': 5.8.1 + '@stoplight/prism-http-server': 5.8.1 '@stoplight/types': 14.1.1 chalk: 4.1.2 chokidar: 3.6.0 - fp-ts: 2.16.9 + fp-ts: 2.16.6 json-schema-faker: 0.5.3 lodash: 4.17.21 node-fetch: 2.7.0 @@ -5247,19 +5539,19 @@ snapshots: '@stoplight/prism-core@5.8.0': dependencies: - fp-ts: 2.16.9 + fp-ts: 2.16.6 lodash: 4.17.21 pino: 6.14.0 tslib: 2.6.3 - '@stoplight/prism-http-server@5.8.3': + '@stoplight/prism-http-server@5.8.1': dependencies: '@stoplight/prism-core': 5.8.0 - '@stoplight/prism-http': 5.8.3 + '@stoplight/prism-http': 5.8.1 '@stoplight/types': 14.1.1 - fast-xml-parser: 4.4.1 - fp-ts: 2.16.9 - io-ts: 2.2.21(fp-ts@2.16.9) + fast-xml-parser: 4.4.0 + fp-ts: 2.16.6 + io-ts: 2.2.21(fp-ts@2.16.6) lodash: 4.17.21 micri: 4.5.1 node-fetch: 2.7.0 @@ -5270,11 +5562,11 @@ snapshots: - encoding - supports-color - '@stoplight/prism-http@5.8.3': + '@stoplight/prism-http@5.8.1': dependencies: '@faker-js/faker': 6.3.1 - '@stoplight/http-spec': 7.1.0 - '@stoplight/json': 3.21.5 + '@stoplight/http-spec': 7.0.3 + '@stoplight/json': 3.21.0 '@stoplight/json-schema-merge-allof': 0.7.8 '@stoplight/json-schema-ref-parser': 9.2.7 '@stoplight/json-schema-sampler': 0.3.0 @@ -5283,12 +5575,12 @@ snapshots: '@stoplight/yaml': 4.3.0 abstract-logging: 2.0.1 accepts: 1.3.8 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) + ajv: 8.16.0 + ajv-formats: 2.1.1(ajv@8.16.0) caseless: 0.12.0 chalk: 4.1.2 content-type: 1.0.5 - fp-ts: 2.16.9 + fp-ts: 2.16.6 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 json-schema-faker: 0.5.3 @@ -5311,7 +5603,7 @@ snapshots: '@stoplight/types@14.1.0': dependencies: - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.15 utility-types: 3.11.0 '@stoplight/types@14.1.1': @@ -5335,45 +5627,45 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.6.3 - '@tanstack/history@1.57.6': {} + '@tanstack/history@1.61.1': {} - '@tanstack/query-core@5.51.16': {} + '@tanstack/query-core@5.45.0': {} - '@tanstack/query-devtools@5.51.16': {} + '@tanstack/query-devtools@5.37.1': {} - '@tanstack/react-cross-context@1.57.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-cross-context@1.60.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/react-query-devtools@5.51.16(@tanstack/react-query@5.51.16(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-devtools': 5.51.16 - '@tanstack/react-query': 5.51.16(react@18.3.1) + '@tanstack/query-devtools': 5.37.1 + '@tanstack/react-query': 5.45.0(react@18.3.1) react: 18.3.1 - '@tanstack/react-query@5.51.16(react@18.3.1)': + '@tanstack/react-query@5.45.0(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.51.16 + '@tanstack/query-core': 5.45.0 react: 18.3.1 - '@tanstack/react-router-with-query@1.58.7(@tanstack/react-query@5.51.16(react@18.3.1))(@tanstack/react-router@1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-router-with-query@1.62.1(@tanstack/react-query@5.45.0(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-query': 5.51.16(react@18.3.1) - '@tanstack/react-router': 1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': 5.45.0(react@18.3.1) + '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/react-router@1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/history': 1.57.6 + '@tanstack/history': 1.61.1 '@tanstack/react-store': 0.5.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 optionalDependencies: - '@tanstack/router-generator': 1.58.1 + '@tanstack/router-generator': 1.58.12 '@tanstack/react-store@0.5.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -5382,9 +5674,9 @@ snapshots: react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.2.2(react@18.3.1) - '@tanstack/router-devtools@1.58.7(@tanstack/react-router@1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/router-devtools@1.62.1(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-router': 1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 goober: 2.1.14(csstype@3.1.3) react: 18.3.1 @@ -5392,24 +5684,24 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/router-generator@1.58.1': + '@tanstack/router-generator@1.58.12': dependencies: '@tanstack/virtual-file-routes': 1.56.0 prettier: 3.3.3 tsx: 4.19.1 zod: 3.23.8 - '@tanstack/router-plugin@1.58.4(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0))': - dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - '@tanstack/router-generator': 1.58.1 + '@tanstack/router-plugin@1.62.0(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + dependencies: + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + '@tanstack/router-generator': 1.58.12 '@tanstack/virtual-file-routes': 1.56.0 '@types/babel__core': 7.20.5 '@types/babel__generator': 7.6.8 @@ -5420,21 +5712,21 @@ snapshots: unplugin: 1.14.1 zod: 3.23.8 optionalDependencies: - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color - webpack-sources - '@tanstack/start-vite-plugin@1.57.14': + '@tanstack/start-vite-plugin@1.60.0': dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__core': 7.20.5 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -5442,26 +5734,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/start@1.58.7(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.33.0)(typescript@5.5.4)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0))': + '@tanstack/start@1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: - '@tanstack/react-cross-context': 1.57.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-router': 1.58.7(@tanstack/router-generator@1.58.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/router-generator': 1.58.1 - '@tanstack/router-plugin': 1.58.4(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) - '@tanstack/start-vite-plugin': 1.57.14 + '@tanstack/react-cross-context': 1.60.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/router-generator': 1.58.12 + '@tanstack/router-plugin': 1.62.0(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@tanstack/start-vite-plugin': 1.60.0 '@types/jsesc': 3.0.3 '@vinxi/react': 0.2.5 - '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) - '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0)) - '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0)) + '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) import-meta-resolve: 4.1.0 isbot: 5.1.17 jsesc: 3.0.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 - vinxi: 0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0) - vite-tsconfig-paths: 5.0.1(typescript@5.5.4)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) + vite-tsconfig-paths: 5.0.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -5509,7 +5801,7 @@ snapshots: '@ts-morph/common@0.24.0': dependencies: fast-glob: 3.3.2 - minimatch: 9.0.5 + minimatch: 9.0.4 mkdirp: 3.0.1 path-browserify: 1.0.1 @@ -5523,32 +5815,38 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@types/braces@3.0.4': {} + '@types/cross-spawn@6.0.6': + dependencies: + '@types/node': 20.14.2 + '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/http-proxy@1.17.15': dependencies: - '@types/node': 20.14.13 + '@types/node': 20.14.2 '@types/jsesc@3.0.3': {} @@ -5560,10 +5858,14 @@ snapshots: dependencies: '@types/braces': 3.0.4 - '@types/node@20.14.13': + '@types/node@20.14.2': dependencies: undici-types: 5.26.5 + '@types/node@22.7.4': + dependencies: + undici-types: 6.19.8 + '@types/prop-types@15.7.12': {} '@types/react-dom@18.3.0': @@ -5581,14 +5883,14 @@ snapshots: '@types/type-is@1.6.6': dependencies: - '@types/node': 20.14.13 + '@types/node': 20.14.2 '@vercel/nft@0.26.5': dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -5617,94 +5919,94 @@ snapshots: node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 - ufo: 1.5.4 + ufo: 1.5.3 untun: 0.1.3 uqr: 0.1.2 transitivePeerDependencies: - uWebSockets.js - '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0))': + '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': dependencies: - '@babel/parser': 7.25.6 - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + '@babel/parser': 7.24.7 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.12.1) + acorn-typescript: 1.4.13(acorn@8.11.3) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 tslib: 2.6.3 - vinxi: 0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) - '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0))': + '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: acorn-loose: 8.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) '@vinxi/react@0.2.5': {} - '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0))': + '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0)) - acorn: 8.12.1 + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + acorn: 8.11.3 acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.12.1) + acorn-typescript: 1.4.13(acorn@8.11.3) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) - '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0))': + '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0)) - acorn: 8.12.1 + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + acorn: 8.11.3 acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.12.1) + acorn-typescript: 1.4.13(acorn@8.11.3) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) - '@vitejs/plugin-react@4.3.1(vite@5.3.5(@types/node@20.14.13)(terser@5.33.0))': + '@vitejs/plugin-react@4.3.1(vite@5.2.13(@types/node@22.7.4)(terser@5.34.1))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.5(@types/node@20.14.13)(terser@5.33.0) + vite: 5.2.13(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.13)(terser@5.33.0))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@22.7.4)(terser@5.34.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.6 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 + istanbul-lib-source-maps: 5.0.4 istanbul-reports: 3.1.7 - magic-string: 0.30.11 + magic-string: 0.30.10 magicast: 0.3.4 picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.13)(terser@5.33.0) + vitest: 1.6.0(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color @@ -5712,7 +6014,7 @@ snapshots: dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - chai: 4.5.0 + chai: 4.4.1 '@vitest/runner@1.6.0': dependencies: @@ -5722,7 +6024,7 @@ snapshots: '@vitest/snapshot@1.6.0': dependencies: - magic-string: 0.30.11 + magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 @@ -5750,44 +6052,44 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.11.3): dependencies: - acorn: 8.12.1 + acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.11.3): dependencies: - acorn: 8.12.1 + acorn: 8.11.3 acorn-loose@8.4.0: dependencies: - acorn: 8.12.1 + acorn: 8.11.3 - acorn-typescript@1.4.13(acorn@8.12.1): + acorn-typescript@1.4.13(acorn@8.11.3): dependencies: - acorn: 8.12.1 + acorn: 8.11.3 - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 + acorn-walk@8.3.2: {} + + acorn@8.11.3: {} acorn@8.12.1: {} agent-base@6.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.5 transitivePeerDependencies: - supports-color - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.16.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.16.0 - ajv@8.17.1: + ajv@8.16.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + uri-js: 4.4.1 ansi-align@3.0.1: dependencies: @@ -5822,7 +6124,7 @@ snapshots: archiver-utils@5.0.2: dependencies: - glob: 10.4.5 + glob: 10.4.1 graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 @@ -5899,20 +6201,20 @@ snapshots: transitivePeerDependencies: - debug - b4a@1.6.6: {} + b4a@1.6.7: {} babel-dead-code-elimination@1.0.6: dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color balanced-match@1.0.2: {} - bare-events@2.4.2: + bare-events@2.5.0: optional: true base64-js@1.5.1: {} @@ -5949,12 +6251,19 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.23.1: dependencies: - caniuse-lite: 1.0.30001645 - electron-to-chromium: 1.5.4 + caniuse-lite: 1.0.30001632 + electron-to-chromium: 1.4.799 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.1) + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-crc32@1.0.0: {} @@ -5981,11 +6290,26 @@ snapshots: ohash: 1.1.3 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.3 + pkg-types: 1.1.1 rc9: 2.1.2 optionalDependencies: magicast: 0.3.4 + c12@2.0.1: + dependencies: + chokidar: 4.0.1 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 2.3.1 + mlly: 1.7.1 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + rc9: 2.1.2 + cac@6.7.14: {} call-bind@1.0.7: @@ -6002,13 +6326,13 @@ snapshots: camelcase@7.0.1: {} - camelcase@8.0.0: {} + caniuse-lite@1.0.30001632: {} - caniuse-lite@1.0.30001645: {} + caniuse-lite@1.0.30001667: {} caseless@0.12.0: {} - chai@4.5.0: + chai@4.4.1: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -6016,7 +6340,7 @@ snapshots: get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.1.0 + type-detect: 4.0.8 chalk@2.4.2: dependencies: @@ -6049,6 +6373,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@2.0.0: {} citty@0.1.6: @@ -6081,7 +6409,7 @@ snapshots: cluster-key-slot@1.1.2: {} - code-block-writer@13.0.2: {} + code-block-writer@13.0.1: {} color-convert@1.9.3: dependencies: @@ -6155,7 +6483,7 @@ snapshots: create-require@1.1.1: {} - croner@8.1.1: {} + croner@8.1.2: {} cross-fetch@3.1.8: dependencies: @@ -6212,13 +6540,13 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.3.6: + debug@4.3.5: dependencies: ms: 2.1.2 deep-eql@4.1.4: dependencies: - type-detect: 4.1.0 + type-detect: 4.0.8 deepmerge@4.3.1: {} @@ -6274,7 +6602,9 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.4: {} + electron-to-chromium@1.4.799: {} + + electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} @@ -6321,7 +6651,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -6442,6 +6772,8 @@ snapshots: escalade@3.1.2: {} + escalade@3.2.0: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -6492,9 +6824,7 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.0.1: {} - - fast-xml-parser@4.4.1: + fast-xml-parser@4.4.0: dependencies: strnum: 1.0.5 @@ -6532,7 +6862,7 @@ snapshots: foreach@2.0.6: {} - foreground-child@3.2.1: + foreground-child@3.2.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -6545,7 +6875,7 @@ snapshots: format-util@1.0.5: {} - fp-ts@2.16.9: {} + fp-ts@2.16.6: {} fresh@0.5.2: {} @@ -6621,7 +6951,7 @@ snapshots: consola: 3.2.3 defu: 6.1.4 node-fetch-native: 1.6.4 - nypm: 0.3.9 + nypm: 0.3.8 ohash: 1.1.3 pathe: 1.1.2 tar: 6.2.1 @@ -6634,13 +6964,12 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: + glob@10.4.1: dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 + foreground-child: 3.2.0 + jackspeak: 3.4.0 + minimatch: 9.0.4 minipass: 7.1.2 - package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -6701,20 +7030,20 @@ snapshots: iron-webcrypto: 1.2.1 ohash: 1.1.3 radix3: 1.1.2 - ufo: 1.5.4 + ufo: 1.5.3 uncrypto: 0.1.3 unenv: 1.10.0 transitivePeerDependencies: - uWebSockets.js - h3@1.12.0: + h3@1.13.0: dependencies: cookie-es: 1.2.2 crossws: 0.2.4 defu: 6.1.4 destr: 2.0.3 iron-webcrypto: 1.2.1 - ohash: 1.1.3 + ohash: 1.1.4 radix3: 1.1.2 ufo: 1.5.4 uncrypto: 0.1.3 @@ -6729,7 +7058,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.19.1 + uglify-js: 3.18.0 handler-agent@0.2.0: {} @@ -6775,7 +7104,7 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -6794,7 +7123,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -6825,15 +7154,15 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - io-ts@2.2.21(fp-ts@2.16.9): + io-ts@2.2.21(fp-ts@2.16.6): dependencies: - fp-ts: 2.16.9 + fp-ts: 2.16.6 ioredis@5.4.1: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.6 + debug: 4.3.5 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -6867,7 +7196,7 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.15.0: + is-core-module@2.13.1: dependencies: hasown: 2.0.2 @@ -6975,10 +7304,10 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.6: + istanbul-lib-source-maps@5.0.4: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.6 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -6988,7 +7317,7 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.3: + jackspeak@3.4.0: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -6996,6 +7325,8 @@ snapshots: jiti@1.21.6: {} + jiti@2.3.1: {} + js-tokens@4.0.0: {} js-tokens@9.0.0: {} @@ -7060,40 +7391,40 @@ snapshots: dependencies: readable-stream: 2.3.8 - lefthook-darwin-arm64@1.7.11: + lefthook-darwin-arm64@1.6.15: optional: true - lefthook-darwin-x64@1.7.11: + lefthook-darwin-x64@1.6.15: optional: true - lefthook-freebsd-arm64@1.7.11: + lefthook-freebsd-arm64@1.6.15: optional: true - lefthook-freebsd-x64@1.7.11: + lefthook-freebsd-x64@1.6.15: optional: true - lefthook-linux-arm64@1.7.11: + lefthook-linux-arm64@1.6.15: optional: true - lefthook-linux-x64@1.7.11: + lefthook-linux-x64@1.6.15: optional: true - lefthook-windows-arm64@1.7.11: + lefthook-windows-arm64@1.6.15: optional: true - lefthook-windows-x64@1.7.11: + lefthook-windows-x64@1.6.15: optional: true - lefthook@1.7.11: + lefthook@1.6.15: optionalDependencies: - lefthook-darwin-arm64: 1.7.11 - lefthook-darwin-x64: 1.7.11 - lefthook-freebsd-arm64: 1.7.11 - lefthook-freebsd-x64: 1.7.11 - lefthook-linux-arm64: 1.7.11 - lefthook-linux-x64: 1.7.11 - lefthook-windows-arm64: 1.7.11 - lefthook-windows-x64: 1.7.11 + lefthook-darwin-arm64: 1.6.15 + lefthook-darwin-x64: 1.6.15 + lefthook-freebsd-arm64: 1.6.15 + lefthook-freebsd-x64: 1.6.15 + lefthook-linux-arm64: 1.6.15 + lefthook-linux-x64: 1.6.15 + lefthook-windows-arm64: 1.6.15 + lefthook-windows-x64: 1.6.15 lilconfig@2.1.0: {} @@ -7103,7 +7434,7 @@ snapshots: liquid-json@0.3.1: {} - listhen@1.7.2: + listhen@1.9.0: dependencies: '@parcel/watcher': 2.4.1 '@parcel/watcher-wasm': 2.4.1 @@ -7113,9 +7444,9 @@ snapshots: crossws: 0.2.4 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.12.0 + h3: 1.13.0 http-shutdown: 1.2.2 - jiti: 1.21.6 + jiti: 2.3.1 mlly: 1.7.1 node-forge: 1.3.1 pathe: 1.1.2 @@ -7136,7 +7467,7 @@ snapshots: local-pkg@0.5.0: dependencies: mlly: 1.7.1 - pkg-types: 1.1.3 + pkg-types: 1.1.1 locate-path@2.0.0: dependencies: @@ -7159,6 +7490,8 @@ snapshots: dependencies: get-func-name: 2.0.2 + lru-cache@10.2.2: {} + lru-cache@10.4.3: {} lru-cache@5.1.1: @@ -7169,20 +7502,24 @@ snapshots: dependencies: yallist: 4.0.0 + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.2.11: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 recast: 0.23.9 magicast@0.3.4: dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 source-map-js: 1.2.0 make-dir@3.1.0: @@ -7191,7 +7528,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.3 + semver: 7.6.2 make-error@1.3.6: {} @@ -7238,7 +7575,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.5: + minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 @@ -7269,10 +7606,10 @@ snapshots: mlly@1.7.1: dependencies: - acorn: 8.12.1 + acorn: 8.11.3 pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 + pkg-types: 1.1.1 + ufo: 1.5.3 mri@1.2.0: {} @@ -7294,27 +7631,27 @@ snapshots: neo-async@2.6.2: {} - next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.5 + '@next/env': 14.2.4 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001645 + caniuse-lite: 1.0.30001632 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.5 - '@next/swc-darwin-x64': 14.2.5 - '@next/swc-linux-arm64-gnu': 14.2.5 - '@next/swc-linux-arm64-musl': 14.2.5 - '@next/swc-linux-x64-gnu': 14.2.5 - '@next/swc-linux-x64-musl': 14.2.5 - '@next/swc-win32-arm64-msvc': 14.2.5 - '@next/swc-win32-ia32-msvc': 14.2.5 - '@next/swc-win32-x64-msvc': 14.2.5 + '@next/swc-darwin-arm64': 14.2.4 + '@next/swc-darwin-x64': 14.2.4 + '@next/swc-linux-arm64-gnu': 14.2.4 + '@next/swc-linux-arm64-musl': 14.2.4 + '@next/swc-linux-x64-gnu': 14.2.4 + '@next/swc-linux-x64-musl': 14.2.4 + '@next/swc-win32-arm64-msvc': 14.2.4 + '@next/swc-win32-ia32-msvc': 14.2.4 + '@next/swc-win32-x64-msvc': 14.2.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -7324,15 +7661,15 @@ snapshots: nitropack@2.9.7(magicast@0.3.4): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 - '@netlify/functions': 2.8.1 - '@rollup/plugin-alias': 5.1.1(rollup@4.22.4) - '@rollup/plugin-commonjs': 25.0.8(rollup@4.22.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.22.4) - '@rollup/plugin-json': 6.1.0(rollup@4.22.4) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.22.4) - '@rollup/plugin-replace': 5.0.7(rollup@4.22.4) - '@rollup/plugin-terser': 0.4.4(rollup@4.22.4) - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@netlify/functions': 2.8.2 + '@rollup/plugin-alias': 5.1.1(rollup@4.18.0) + '@rollup/plugin-commonjs': 25.0.8(rollup@4.18.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) + '@rollup/plugin-json': 6.1.0(rollup@4.18.0) + '@rollup/plugin-node-resolve': 15.3.0(rollup@4.18.0) + '@rollup/plugin-replace': 5.0.7(rollup@4.18.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) '@types/http-proxy': 1.17.15 '@vercel/nft': 0.26.5 archiver: 7.0.1 @@ -7342,7 +7679,7 @@ snapshots: citty: 0.1.6 consola: 3.2.3 cookie-es: 1.2.2 - croner: 8.1.1 + croner: 8.1.2 crossws: 0.2.4 db0: 0.1.4 defu: 6.1.4 @@ -7354,15 +7691,15 @@ snapshots: fs-extra: 11.2.0 globby: 14.0.2 gzip-size: 7.0.0 - h3: 1.12.0 + h3: 1.13.0 hookable: 5.5.3 httpxy: 0.1.5 ioredis: 5.4.1 jiti: 1.21.6 klona: 2.0.6 knitwork: 1.1.0 - listhen: 1.7.2 - magic-string: 0.30.11 + listhen: 1.9.0 + magic-string: 0.30.10 mime: 4.0.4 mlly: 1.7.1 mri: 1.2.0 @@ -7372,21 +7709,21 @@ snapshots: openapi-typescript: 6.7.6 pathe: 1.1.2 perfect-debounce: 1.0.0 - pkg-types: 1.1.3 + pkg-types: 1.1.1 pretty-bytes: 6.1.1 radix3: 1.1.2 - rollup: 4.22.4 - rollup-plugin-visualizer: 5.12.0(rollup@4.22.4) + rollup: 4.18.0 + rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) scule: 1.3.0 - semver: 7.6.3 + semver: 7.6.2 serve-placeholder: 2.0.2 serve-static: 1.16.2 std-env: 3.7.0 - ufo: 1.5.4 + ufo: 1.5.3 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.10.0 - unimport: 3.12.0(rollup@4.22.4) + unimport: 3.13.1(rollup@4.18.0) unstorage: 1.12.0(ioredis@5.4.1) unwasm: 0.3.9 transitivePeerDependencies: @@ -7425,6 +7762,8 @@ snapshots: node-gyp-build@4.8.2: {} + node-releases@2.0.14: {} + node-releases@2.0.18: {} nopt@5.0.0: @@ -7463,20 +7802,19 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 - nypm@0.3.9: + nypm@0.3.8: dependencies: citty: 0.1.6 consola: 3.2.3 execa: 8.0.1 pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 + ufo: 1.5.3 object-assign@4.1.1: {} object-hash@3.0.0: {} - object-inspect@1.13.2: {} + object-inspect@1.13.1: {} object-keys@1.1.1: {} @@ -7495,6 +7833,8 @@ snapshots: ohash@1.1.3: {} + ohash@1.1.4: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -7536,7 +7876,7 @@ snapshots: p-limit@5.0.0: dependencies: - yocto-queue: 1.1.1 + yocto-queue: 1.0.0 p-locate@2.0.0: dependencies: @@ -7544,8 +7884,6 @@ snapshots: p-try@1.0.0: {} - package-json-from-dist@1.0.0: {} - parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -7575,7 +7913,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.4.3 + lru-cache: 10.2.2 minipass: 7.1.2 path-to-regexp@6.3.0: {} @@ -7623,7 +7961,7 @@ snapshots: find-up: 2.1.0 load-json-file: 4.0.0 - pkg-types@1.1.3: + pkg-types@1.1.1: dependencies: confbox: 0.1.7 mlly: 1.7.1 @@ -7637,32 +7975,32 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.40): + postcss-import@15.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.40 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.40): + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.40 + postcss: 8.4.38 - postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5)): dependencies: lilconfig: 3.1.2 - yaml: 2.5.0 + yaml: 2.4.5 optionalDependencies: - postcss: 8.4.40 - ts-node: 10.9.2(@types/node@20.14.13)(typescript@5.5.4) + postcss: 8.4.38 + ts-node: 10.9.2(@types/node@20.14.2)(typescript@5.4.5) - postcss-nested@6.2.0(postcss@8.4.40): + postcss-nested@6.0.1(postcss@8.4.38): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.38 + postcss-selector-parser: 6.1.0 - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -7675,7 +8013,7 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.40: + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -7687,7 +8025,7 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 - postman-collection@4.4.1: + postman-collection@4.4.0: dependencies: '@faker-js/faker': 5.5.3 file-type: 3.9.0 @@ -7802,6 +8140,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + recast@0.23.9: dependencies: ast-types: 0.16.1 @@ -7835,7 +8175,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -7845,61 +8185,61 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.9: + rimraf@5.0.7: dependencies: - glob: 10.4.5 + glob: 10.4.1 - rollup-plugin-visualizer@5.12.0(rollup@4.22.4): + rollup-plugin-visualizer@5.12.0(rollup@4.18.0): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.22.4 + rollup: 4.18.0 - rollup@4.19.1: + rollup@4.18.0: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.19.1 - '@rollup/rollup-android-arm64': 4.19.1 - '@rollup/rollup-darwin-arm64': 4.19.1 - '@rollup/rollup-darwin-x64': 4.19.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.19.1 - '@rollup/rollup-linux-arm-musleabihf': 4.19.1 - '@rollup/rollup-linux-arm64-gnu': 4.19.1 - '@rollup/rollup-linux-arm64-musl': 4.19.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.19.1 - '@rollup/rollup-linux-riscv64-gnu': 4.19.1 - '@rollup/rollup-linux-s390x-gnu': 4.19.1 - '@rollup/rollup-linux-x64-gnu': 4.19.1 - '@rollup/rollup-linux-x64-musl': 4.19.1 - '@rollup/rollup-win32-arm64-msvc': 4.19.1 - '@rollup/rollup-win32-ia32-msvc': 4.19.1 - '@rollup/rollup-win32-x64-msvc': 4.19.1 + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 - rollup@4.22.4: + rollup@4.24.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.4 - '@rollup/rollup-android-arm64': 4.22.4 - '@rollup/rollup-darwin-arm64': 4.22.4 - '@rollup/rollup-darwin-x64': 4.22.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.4 - '@rollup/rollup-linux-arm-musleabihf': 4.22.4 - '@rollup/rollup-linux-arm64-gnu': 4.22.4 - '@rollup/rollup-linux-arm64-musl': 4.22.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.4 - '@rollup/rollup-linux-riscv64-gnu': 4.22.4 - '@rollup/rollup-linux-s390x-gnu': 4.22.4 - '@rollup/rollup-linux-x64-gnu': 4.22.4 - '@rollup/rollup-linux-x64-musl': 4.22.4 - '@rollup/rollup-win32-arm64-msvc': 4.22.4 - '@rollup/rollup-win32-ia32-msvc': 4.22.4 - '@rollup/rollup-win32-x64-msvc': 4.22.4 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -7941,7 +8281,7 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.6.3: {} + semver@7.6.2: {} send@0.19.0: dependencies: @@ -8017,7 +8357,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.1 siginfo@2.0.0: {} @@ -8089,7 +8429,7 @@ snapshots: queue-tick: 1.0.1 text-decoder: 1.2.0 optionalDependencies: - bare-events: 2.4.2 + bare-events: 2.5.0 string-width@4.2.3: dependencies: @@ -8164,7 +8504,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.5 + glob: 10.4.1 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -8184,7 +8524,7 @@ snapshots: system-architecture@0.1.0: {} - tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)): + tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -8200,12 +8540,12 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.1 - postcss: 8.4.40 - postcss-import: 15.1.0(postcss@8.4.40) - postcss-js: 4.0.1(postcss@8.4.40) - postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)) - postcss-nested: 6.2.0(postcss@8.4.40) - postcss-selector-parser: 6.1.1 + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5)) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-selector-parser: 6.1.0 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -8213,7 +8553,7 @@ snapshots: tar-stream@3.1.7: dependencies: - b4a: 1.6.6 + b4a: 1.6.7 fast-fifo: 1.3.2 streamx: 2.20.1 @@ -8226,10 +8566,10 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser@5.33.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 @@ -8241,7 +8581,7 @@ snapshots: text-decoder@1.2.0: dependencies: - b4a: 1.6.6 + b4a: 1.6.7 thenify-all@1.6.0: dependencies: @@ -8276,29 +8616,48 @@ snapshots: ts-morph@23.0.0: dependencies: '@ts-morph/common': 0.24.0 - code-block-writer: 13.0.2 + code-block-writer: 13.0.1 - ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4): + ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.13 - acorn: 8.12.1 - acorn-walk: 8.3.3 + '@types/node': 20.14.2 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optional: true - tsconfck@3.1.3(typescript@5.5.4): + ts-node@10.9.2(@types/node@22.7.4)(typescript@5.6.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.7.4 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfck@3.1.3(typescript@5.6.2): optionalDependencies: - typescript: 5.5.4 + typescript: 5.6.2 tslib@2.6.3: {} @@ -8309,7 +8668,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - type-detect@4.1.0: {} + type-detect@4.0.8: {} type-fest@2.19.0: {} @@ -8352,11 +8711,15 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript@5.5.4: {} + typescript@5.4.5: {} + + typescript@5.6.2: {} + + ufo@1.5.3: {} ufo@1.5.4: {} - uglify-js@3.19.1: + uglify-js@3.18.0: optional: true unbox-primitive@1.0.2: @@ -8370,15 +8733,17 @@ snapshots: unctx@2.3.1: dependencies: - acorn: 8.12.1 + acorn: 8.11.3 estree-walker: 3.0.3 - magic-string: 0.30.11 + magic-string: 0.30.10 unplugin: 1.14.1 transitivePeerDependencies: - webpack-sources undici-types@5.26.5: {} + undici-types@6.19.8: {} + undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 @@ -8393,9 +8758,9 @@ snapshots: unicorn-magic@0.1.0: {} - unimport@3.12.0(rollup@4.22.4): + unimport@3.13.1(rollup@4.18.0): dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.22.4) + '@rollup/pluginutils': 5.1.2(rollup@4.18.0) acorn: 8.12.1 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -8424,8 +8789,8 @@ snapshots: anymatch: 3.1.3 chokidar: 3.6.0 destr: 2.0.3 - h3: 1.12.0 - listhen: 1.7.2 + h3: 1.13.0 + listhen: 1.9.0 lru-cache: 10.4.3 mri: 1.2.0 node-fetch-native: 1.6.4 @@ -8445,22 +8810,32 @@ snapshots: unwasm@0.3.9: dependencies: knitwork: 1.1.0 - magic-string: 0.30.11 + magic-string: 0.30.10 mlly: 1.7.1 pathe: 1.1.2 - pkg-types: 1.1.3 + pkg-types: 1.1.1 unplugin: 1.14.1 transitivePeerDependencies: - webpack-sources - update-browserslist-db@1.1.0(browserslist@4.23.2): + update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: - browserslist: 4.23.2 + browserslist: 4.23.1 escalade: 3.1.2 picocolors: 1.0.1 + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + uqr@0.1.2: {} + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + uri-template-lite@22.9.0: {} urijs@1.19.11: {} @@ -8499,11 +8874,11 @@ snapshots: validate.io-number@1.0.3: {} - vinxi@0.4.3(@types/node@20.14.13)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.33.0): + vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1): dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + '@babel/core': 7.24.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.24.7) + '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.24.7) '@types/micromatch': 4.0.9 '@vinxi/listhen': 1.5.6 boxen: 7.1.1 @@ -8529,11 +8904,11 @@ snapshots: resolve: 1.22.8 serve-placeholder: 2.0.2 serve-static: 1.16.2 - ufo: 1.5.4 + ufo: 1.5.3 unctx: 2.3.1 unenv: 1.10.0 unstorage: 1.12.0(ioredis@5.4.1) - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -8568,13 +8943,13 @@ snapshots: - webpack-sources - xml2js - vite-node@1.6.0(@types/node@20.14.13)(terser@5.33.0): + vite-node@1.6.0(@types/node@22.7.4)(terser@5.34.1): dependencies: cac: 6.7.14 - debug: 4.3.6 + debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - '@types/node' - less @@ -8586,61 +8961,61 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.5.4)(vite@5.4.7(@types/node@20.14.13)(terser@5.33.0)): + vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): dependencies: - debug: 4.3.6 + debug: 4.3.5 globrex: 0.1.2 - tsconfck: 3.1.3(typescript@5.5.4) + tsconfck: 3.1.3(typescript@5.6.2) optionalDependencies: - vite: 5.4.7(@types/node@20.14.13)(terser@5.33.0) + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: - supports-color - typescript - vite@5.3.5(@types/node@20.14.13)(terser@5.33.0): + vite@5.2.13(@types/node@22.7.4)(terser@5.34.1): dependencies: - esbuild: 0.21.5 - postcss: 8.4.40 - rollup: 4.19.1 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.18.0 optionalDependencies: - '@types/node': 20.14.13 + '@types/node': 22.7.4 fsevents: 2.3.3 - terser: 5.33.0 + terser: 5.34.1 - vite@5.4.7(@types/node@20.14.13)(terser@5.33.0): + vite@5.4.8(@types/node@22.7.4)(terser@5.34.1): dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.22.4 + rollup: 4.24.0 optionalDependencies: - '@types/node': 20.14.13 + '@types/node': 22.7.4 fsevents: 2.3.3 - terser: 5.33.0 + terser: 5.34.1 - vitest@1.6.0(@types/node@20.14.13)(terser@5.33.0): + vitest@1.6.0(@types/node@22.7.4)(terser@5.34.1): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.5.0 - debug: 4.3.6 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.5 execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.11 + magic-string: 0.30.10 pathe: 1.1.2 picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.5(@types/node@20.14.13)(terser@5.33.0) - vite-node: 1.6.0(@types/node@20.14.13)(terser@5.33.0) - why-is-node-running: 2.3.0 + vite: 5.2.13(@types/node@22.7.4)(terser@5.34.1) + vite-node: 1.6.0(@types/node@22.7.4)(terser@5.34.1) + why-is-node-running: 2.2.2 optionalDependencies: - '@types/node': 20.14.13 + '@types/node': 22.7.4 transitivePeerDependencies: - less - lightningcss @@ -8692,7 +9067,7 @@ snapshots: dependencies: isexe: 3.1.1 - why-is-node-running@2.3.0: + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 @@ -8729,7 +9104,7 @@ snapshots: yaml@1.10.2: {} - yaml@2.5.0: {} + yaml@2.4.5: {} yargs-parser@20.2.9: {} @@ -8757,7 +9132,7 @@ snapshots: yn@3.1.1: {} - yocto-queue@1.1.1: {} + yocto-queue@1.0.0: {} zip-stream@6.0.1: dependencies: diff --git a/src/cli.mts b/src/cli.mts index c4ec10c..f1128c1 100644 --- a/src/cli.mts +++ b/src/cli.mts @@ -11,14 +11,21 @@ const program = new Command(); export type LimitedUserConfig = { input: string; output: string; - client?: "angular" | "axios" | "fetch" | "node" | "xhr"; + client?: + | "legacy/angular" + | "legacy/axios" + | "legacy/fetch" + | "legacy/node" + | "legacy/xhr" + | "@hey-api/client-fetch" + | "@hey-api/client-axios"; request?: string; format?: "biome" | "prettier"; lint?: "biome" | "eslint"; operationId?: boolean; serviceResponse?: "body" | "response"; base?: string; - enums?: "javascript" | "typescript" | "typescript+namespace"; + enums?: "javascript" | "typescript" | false; useDateType?: boolean; debug?: boolean; noSchemas?: boolean; @@ -46,8 +53,8 @@ async function setupProgram() { .option("-o, --output ", "Output directory", defaultOutputPath) .addOption( new Option("-c, --client ", "HTTP client to generate") - .choices(["angular", "axios", "fetch", "node", "xhr"]) - .default("fetch"), + .choices(["@hey-api/client-fetch", "@hey-api/client-axios"]) + .default("@hey-api/client-fetch"), ) .option("--request ", "Path to custom request file") .addOption( @@ -79,7 +86,7 @@ async function setupProgram() { new Option( "--enums ", "Generate JavaScript objects from enum definitions?", - ).choices(["javascript", "typescript", "typescript+namespace"]), + ).choices(["javascript", "typescript"]), ) .option( "--useDateType", diff --git a/src/common.mts b/src/common.mts index 0a65cdf..d2c227c 100644 --- a/src/common.mts +++ b/src/common.mts @@ -3,11 +3,12 @@ import { stat } from "node:fs/promises"; import path from "node:path"; import type { ClassDeclaration, - MethodDeclaration, ParameterDeclaration, SourceFile, Type, + VariableDeclaration, } from "ts-morph"; +import { ArrowFunction } from "ts-morph"; import ts from "typescript"; import type { LimitedUserConfig } from "./cli.mjs"; import { queriesOutputPath, requestsOutputPath } from "./constants.mjs"; @@ -38,18 +39,30 @@ export const lowercaseFirstLetter = (str: string) => { return str.charAt(0).toLowerCase() + str.slice(1); }; -export const getNameFromMethod = (method: MethodDeclaration) => { - const methodName = method.getName(); - if (!methodName) { - throw new Error("Method name not found"); +export const getVariableArrowFunctionParameters = ( + variable: VariableDeclaration, +) => { + const initializer = variable.getInitializer(); + if (!initializer) { + throw new Error("Initializer not found"); } - return methodName; + if (!ArrowFunction.isArrowFunction(initializer)) { + throw new Error("Initializer is not an arrow function"); + } + return initializer.getParameters(); +}; + +export const getNameFromVariable = (variable: VariableDeclaration) => { + const variableName = variable.getName(); + if (!variableName) { + throw new Error("Variable name not found"); + } + return variableName; }; -export type MethodDescription = { - className: string; +export type FunctionDescription = { node: SourceFile; - method: MethodDeclaration; + method: VariableDeclaration; methodBlock: ts.Block; httpMethodName: string; jsDoc: string; @@ -98,11 +111,14 @@ export function extractPropertiesFromObjectParam(param: ParameterDeclaration) { .getNode() .getType() .getProperties() - .map((prop) => ({ - name: prop.getName(), - optional: prop.isOptional(), - type: prop.getValueDeclaration()?.getType(), - })); + .filter((prop) => prop.getValueDeclaration()?.getType()) + .map((prop) => { + return { + name: prop.getName(), + optional: prop.isOptional(), + type: prop.getValueDeclaration()?.getType(), + }; + }); return paramNodes; } diff --git a/src/createExports.mts b/src/createExports.mts index 50101fa..7b2ff4e 100644 --- a/src/createExports.mts +++ b/src/createExports.mts @@ -10,8 +10,7 @@ export const createExports = ( nextPageParam: string, initialPageParam: string, ) => { - const { klasses } = service; - const methods = klasses.flatMap((k) => k.methods); + const { methods } = service; const allGet = methods.filter((m) => m.httpMethodName.toUpperCase().includes("GET"), diff --git a/src/createImports.mts b/src/createImports.mts index 8f9bcff..3f86b1b 100644 --- a/src/createImports.mts +++ b/src/createImports.mts @@ -6,10 +6,8 @@ import { modalsFileName, serviceFileName } from "./constants.mjs"; const { join } = posix; export const createImports = ({ - serviceEndName, project, }: { - serviceEndName: string; project: Project; }) => { const modelsFile = project @@ -32,9 +30,7 @@ export const createImports = ({ serviceFile.getExportedDeclarations().keys(), ); - const serviceNames = serviceExports.filter((name) => - name.endsWith(serviceEndName), - ); + const serviceNames = serviceExports; const imports = [ ts.factory.createImportDeclaration( diff --git a/src/createPrefetchOrEnsure.mts b/src/createPrefetchOrEnsure.mts index 2b46e53..33181a6 100644 --- a/src/createPrefetchOrEnsure.mts +++ b/src/createPrefetchOrEnsure.mts @@ -1,11 +1,12 @@ -import type { MethodDeclaration } from "ts-morph"; +import type { VariableDeclaration } from "ts-morph"; import ts from "typescript"; import { BuildCommonTypeName, extractPropertiesFromObjectParam, - getNameFromMethod, + getNameFromVariable, + getVariableArrowFunctionParameters, } from "./common.mjs"; -import type { MethodDescription } from "./common.mjs"; +import type { FunctionDescription } from "./common.mjs"; import { createQueryKeyFromMethod, getQueryKeyFnName, @@ -20,16 +21,14 @@ import { addJSDocToNode } from "./util.mjs"; function createPrefetchOrEnsureHook({ requestParams, method, - className, functionType, }: { requestParams: ts.ParameterDeclaration[]; - method: MethodDeclaration; - className: string; + method: VariableDeclaration; functionType: "prefetch" | "ensure"; }) { - const methodName = getNameFromMethod(method); - const queryName = hookNameFromMethod({ method, className }); + const methodName = getNameFromVariable(method); + const queryName = hookNameFromMethod({ method }); let customHookName = `prefetch${ queryName.charAt(0).toUpperCase() + queryName.slice(1) }`; @@ -39,8 +38,7 @@ function createPrefetchOrEnsureHook({ queryName.charAt(0).toUpperCase() + queryName.slice(1) }Data`; } - - const queryKey = createQueryKeyFromMethod({ method, className }); + const queryKey = createQueryKeyFromMethod({ method }); // const const hookExport = ts.factory.createVariableStatement( @@ -82,19 +80,19 @@ function createPrefetchOrEnsureHook({ BuildCommonTypeName(getQueryKeyFnName(queryKey)), undefined, - method.getParameters().length + getVariableArrowFunctionParameters(method).length ? [ ts.factory.createObjectLiteralExpression( - method - .getParameters() - .flatMap((param) => - extractPropertiesFromObjectParam(param).map( - (p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), - ), - ), + getVariableArrowFunctionParameters( + method, + ).flatMap((param) => + extractPropertiesFromObjectParam(param).map( + (p) => + ts.factory.createShorthandPropertyAssignment( + ts.factory.createIdentifier(p.name), + ), ), + ), ), ] : [], @@ -111,24 +109,22 @@ function createPrefetchOrEnsureHook({ ts.SyntaxKind.EqualsGreaterThanToken, ), ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(className), - ts.factory.createIdentifier(methodName), - ), + ts.factory.createIdentifier(methodName), + undefined, - method.getParameters().length + getVariableArrowFunctionParameters(method).length ? [ ts.factory.createObjectLiteralExpression( - method - .getParameters() - .flatMap((param) => - extractPropertiesFromObjectParam(param).map( - (p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), - ), - ), + getVariableArrowFunctionParameters( + method, + ).flatMap((param) => + extractPropertiesFromObjectParam(param).map( + (p) => + ts.factory.createShorthandPropertyAssignment( + ts.factory.createIdentifier(p.name), + ), ), + ), ), ] : undefined, @@ -148,11 +144,10 @@ function createPrefetchOrEnsureHook({ } export const createPrefetchOrEnsure = ({ - className, method, jsDoc, functionType, -}: MethodDescription & { functionType: "prefetch" | "ensure" }) => { +}: FunctionDescription & { functionType: "prefetch" | "ensure" }) => { const requestParam = getRequestParamFromMethod(method); const requestParams = requestParam ? [requestParam] : []; @@ -160,7 +155,6 @@ export const createPrefetchOrEnsure = ({ const prefetchOrEnsureHook = createPrefetchOrEnsureHook({ requestParams, method, - className, functionType, }); diff --git a/src/createSource.mts b/src/createSource.mts index 3a4ef97..2a02c40 100644 --- a/src/createSource.mts +++ b/src/createSource.mts @@ -8,7 +8,6 @@ import { getServices } from "./service.mjs"; const createSourceFile = async ( outputPath: string, - serviceEndName: string, pageParam: string, nextPageParam: string, initialPageParam: string, @@ -27,7 +26,6 @@ const createSourceFile = async ( const service = await getServices(project); const imports = createImports({ - serviceEndName, project, }); @@ -121,14 +119,12 @@ const createSourceFile = async ( export const createSource = async ({ outputPath, version, - serviceEndName, pageParam, nextPageParam, initialPageParam, }: { outputPath: string; version: string; - serviceEndName: string; pageParam: string; nextPageParam: string; initialPageParam: string; @@ -201,7 +197,6 @@ export const createSource = async ({ ensureSource, } = await createSourceFile( outputPath, - serviceEndName, pageParam, nextPageParam, initialPageParam, diff --git a/src/createUseMutation.mts b/src/createUseMutation.mts index 2b68e40..8372abd 100644 --- a/src/createUseMutation.mts +++ b/src/createUseMutation.mts @@ -1,14 +1,15 @@ import ts from "typescript"; import { BuildCommonTypeName, - type MethodDescription, + type FunctionDescription, TContext, TData, TError, capitalizeFirstLetter, extractPropertiesFromObjectParam, - getNameFromMethod, + getNameFromVariable, getShortType, + getVariableArrowFunctionParameters, } from "./common.mjs"; import { addJSDocToNode } from "./util.mjs"; @@ -16,10 +17,8 @@ import { addJSDocToNode } from "./util.mjs"; * Awaited> */ function generateAwaitedReturnType({ - className, methodName, }: { - className: string; methodName: string; }) { return ts.factory.createTypeReferenceNode( @@ -29,10 +28,8 @@ function generateAwaitedReturnType({ ts.factory.createIdentifier("ReturnType"), [ ts.factory.createTypeQueryNode( - ts.factory.createQualifiedName( - ts.factory.createIdentifier(className), - ts.factory.createIdentifier(methodName), - ), + ts.factory.createIdentifier(methodName), + undefined, ), ], @@ -41,21 +38,16 @@ function generateAwaitedReturnType({ ); } -export const createUseMutation = ({ - className, - method, - jsDoc, -}: MethodDescription) => { - const methodName = getNameFromMethod(method); +export const createUseMutation = ({ method, jsDoc }: FunctionDescription) => { + const methodName = getNameFromVariable(method); const awaitedResponseDataType = generateAwaitedReturnType({ - className, methodName, }); const mutationResult = ts.factory.createTypeAliasDeclaration( [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier( - `${className}${capitalizeFirstLetter(methodName)}MutationResult`, + `${capitalizeFirstLetter(methodName)}MutationResult`, ), undefined, awaitedResponseDataType, @@ -71,9 +63,9 @@ export const createUseMutation = ({ ); const methodParameters = - method.getParameters().length !== 0 + getVariableArrowFunctionParameters(method).length !== 0 ? ts.factory.createTypeLiteralNode( - method.getParameters().flatMap((param) => { + getVariableArrowFunctionParameters(method).flatMap((param) => { const paramNodes = extractPropertiesFromObjectParam(param); return paramNodes.map((refParam) => ts.factory.createPropertySignature( @@ -97,7 +89,7 @@ export const createUseMutation = ({ [ ts.factory.createVariableDeclaration( ts.factory.createIdentifier( - `use${className}${capitalizeFirstLetter(methodName)}`, + `use${capitalizeFirstLetter(methodName)}`, ), undefined, undefined, @@ -161,13 +153,15 @@ export const createUseMutation = ({ ts.factory.createArrowFunction( undefined, undefined, - method.getParameters().length !== 0 + getVariableArrowFunctionParameters(method).length !== 0 ? [ ts.factory.createParameterDeclaration( undefined, undefined, ts.factory.createObjectBindingPattern( - method.getParameters().flatMap((param) => { + getVariableArrowFunctionParameters( + method, + ).flatMap((param) => { const paramNodes = extractPropertiesFromObjectParam(param); return paramNodes.map((refParam) => @@ -195,15 +189,16 @@ export const createUseMutation = ({ ts.factory.createAsExpression( ts.factory.createAsExpression( ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(className), - ts.factory.createIdentifier(methodName), - ), + ts.factory.createIdentifier(methodName), + undefined, - method.getParameters().length !== 0 + getVariableArrowFunctionParameters(method) + .length !== 0 ? [ ts.factory.createObjectLiteralExpression( - method.getParameters().flatMap((params) => { + getVariableArrowFunctionParameters( + method, + ).flatMap((params) => { const paramNodes = extractPropertiesFromObjectParam( params, diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index 2dd225e..df5deea 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -1,4 +1,4 @@ -import type { MethodDeclaration } from "ts-morph"; +import type { VariableDeclaration } from "ts-morph"; import ts from "typescript"; import { BuildCommonTypeName, @@ -8,35 +8,34 @@ import { TError, capitalizeFirstLetter, extractPropertiesFromObjectParam, - getNameFromMethod, + getNameFromVariable, getShortType, + getVariableArrowFunctionParameters, queryKeyConstraint, queryKeyGenericType, } from "./common.mjs"; -import type { MethodDescription } from "./common.mjs"; +import type { FunctionDescription } from "./common.mjs"; import { addJSDocToNode } from "./util.mjs"; export const createApiResponseType = ({ - className, methodName, -}: { className: string; methodName: string }) => { +}: { + methodName: string; +}) => { /** Awaited> */ - const awaitedResponseDataType = ts.factory.createTypeReferenceNode( - ts.factory.createIdentifier("Awaited"), - [ + const awaitedResponseDataType = ts.factory.createIndexedAccessTypeNode( + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Awaited"), [ ts.factory.createTypeReferenceNode( ts.factory.createIdentifier("ReturnType"), [ ts.factory.createTypeQueryNode( - ts.factory.createQualifiedName( - ts.factory.createIdentifier(className), - ts.factory.createIdentifier(methodName), - ), + ts.factory.createIdentifier(methodName), undefined, ), ], ), - ], + ]), + ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("data")), ); /** DefaultResponseDataType * export type MyClassMethodDefaultResponse = Awaited> @@ -44,7 +43,7 @@ export const createApiResponseType = ({ const apiResponse = ts.factory.createTypeAliasDeclaration( [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier( - `${capitalizeFirstLetter(className)}${capitalizeFirstLetter(methodName)}DefaultResponse`, + `${capitalizeFirstLetter(methodName)}DefaultResponse`, ), undefined, awaitedResponseDataType, @@ -74,14 +73,14 @@ export const createApiResponseType = ({ }; export function getRequestParamFromMethod( - method: MethodDeclaration, + method: VariableDeclaration, pageParam?: string, ) { - if (!method.getParameters().length) { + if (!getVariableArrowFunctionParameters(method).length) { return null; } - const params = method.getParameters().flatMap((param) => { + const params = getVariableArrowFunctionParameters(method).flatMap((param) => { const paramNodes = extractPropertiesFromObjectParam(param); return paramNodes @@ -135,18 +134,16 @@ export function getRequestParamFromMethod( * export const classNameMethodNameQueryResult = UseQueryResult; */ export function createReturnTypeExport({ - className, methodName, defaultApiResponse, }: { - className: string; methodName: string; defaultApiResponse: ts.TypeAliasDeclaration; }) { return ts.factory.createTypeAliasDeclaration( [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier( - `${capitalizeFirstLetter(className)}${capitalizeFirstLetter(methodName)}QueryResult`, + `${capitalizeFirstLetter(methodName)}QueryResult`, ), [ ts.factory.createTypeParameterDeclaration( @@ -176,10 +173,12 @@ export function createReturnTypeExport({ * QueryKey */ export function createQueryKeyExport({ - className, methodName, queryKey, -}: { className: string; methodName: string; queryKey: string }) { +}: { + methodName: string; + queryKey: string; +}) { return ts.factory.createVariableStatement( [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList( @@ -189,7 +188,7 @@ export function createQueryKeyExport({ undefined, undefined, ts.factory.createStringLiteral( - `${className}${capitalizeFirstLetter(methodName)}`, + `${capitalizeFirstLetter(methodName)}`, ), ), ], @@ -200,17 +199,19 @@ export function createQueryKeyExport({ export function hookNameFromMethod({ method, - className, -}: { method: MethodDeclaration; className: string }) { - const methodName = getNameFromMethod(method); - return `use${className}${capitalizeFirstLetter(methodName)}`; +}: { + method: VariableDeclaration; +}) { + const methodName = getNameFromVariable(method); + return `use${capitalizeFirstLetter(methodName)}`; } export function createQueryKeyFromMethod({ method, - className, -}: { method: MethodDeclaration; className: string }) { - const customHookName = hookNameFromMethod({ method, className }); +}: { + method: VariableDeclaration; +}) { + const customHookName = hookNameFromMethod({ method }); const queryKey = `${customHookName}Key`; return queryKey; } @@ -226,7 +227,6 @@ export function createQueryHook({ responseDataType, requestParams, method, - className, pageParam, nextPageParam, initialPageParam, @@ -235,15 +235,14 @@ export function createQueryHook({ suffix: string; responseDataType: ts.TypeParameterDeclaration; requestParams: ts.ParameterDeclaration[]; - method: MethodDeclaration; - className: string; + method: VariableDeclaration; pageParam?: string; nextPageParam?: string; initialPageParam?: string; }) { - const methodName = getNameFromMethod(method); - const customHookName = hookNameFromMethod({ method, className }); - const queryKey = createQueryKeyFromMethod({ method, className }); + const methodName = getNameFromVariable(method); + const customHookName = hookNameFromMethod({ method }); + const queryKey = createQueryKeyFromMethod({ method }); if ( queryString === "useInfiniteQuery" && @@ -360,11 +359,12 @@ export function createQueryHook({ ts.factory.createCallExpression( BuildCommonTypeName(getQueryKeyFnName(queryKey)), undefined, - - method.getParameters().length + getVariableArrowFunctionParameters(method).length ? [ ts.factory.createObjectLiteralExpression( - method.getParameters().flatMap((param) => + getVariableArrowFunctionParameters( + method, + ).flatMap((param) => extractPropertiesFromObjectParam(param) .filter((p) => p.name !== pageParam) .map((p) => @@ -407,43 +407,71 @@ export function createQueryHook({ ts.factory.createAsExpression( ts.factory.createCallExpression( ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(className), - ts.factory.createIdentifier(methodName), - ), - undefined, - method.getParameters().length - ? [ - ts.factory.createObjectLiteralExpression( - method - .getParameters() - .flatMap((param) => - extractPropertiesFromObjectParam( - param, - ).map((p) => - p.name === pageParam - ? ts.factory.createPropertyAssignment( - ts.factory.createIdentifier( - p.name, - ), - ts.factory.createAsExpression( + ts.factory.createCallExpression( + ts.factory.createIdentifier(methodName), + undefined, + getVariableArrowFunctionParameters(method).length + ? [ + ts.factory.createObjectLiteralExpression( + getVariableArrowFunctionParameters( + method, + ).flatMap((param) => + extractPropertiesFromObjectParam( + param, + ).map((p) => + p.name === pageParam + ? ts.factory.createPropertyAssignment( ts.factory.createIdentifier( - "pageParam", + p.name, ), - ts.factory.createKeywordTypeNode( - ts.SyntaxKind.NumberKeyword, + ts.factory.createAsExpression( + ts.factory.createIdentifier( + "pageParam", + ), + ts.factory.createKeywordTypeNode( + ts.SyntaxKind.NumberKeyword, + ), + ), + ) + : ts.factory.createShorthandPropertyAssignment( + ts.factory.createIdentifier( + p.name, ), ), - ) - : ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier( - p.name, - ), - ), + ), ), ), + ] + : undefined, + ), + ts.factory.createIdentifier("then"), + ), + undefined, + [ + ts.factory.createArrowFunction( + undefined, + undefined, + [ + ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier("response"), + undefined, + undefined, + undefined, + ), + ], + undefined, + EqualsOrGreaterThanToken, + ts.factory.createAsExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier("response"), + ts.factory.createIdentifier("data"), ), - ] - : undefined, + ts.factory.createTypeReferenceNode(TData), + ), + ), + ], ), ts.factory.createTypeReferenceNode(TData), ), @@ -470,16 +498,15 @@ export function createQueryHook({ } export const createUseQuery = ( - { className, method, jsDoc }: MethodDescription, + { method, jsDoc }: FunctionDescription, pageParam: string, nextPageParam: string, initialPageParam: string, ) => { - const methodName = getNameFromMethod(method); - const queryKey = createQueryKeyFromMethod({ method, className }); + const methodName = getNameFromVariable(method); + const queryKey = createQueryKeyFromMethod({ method }); const { apiResponse: defaultApiResponse, responseDataType } = createApiResponseType({ - className, methodName, }); @@ -502,7 +529,6 @@ export const createUseQuery = ( responseDataType, requestParams, method, - className, }); const suspenseQueryHook = createQueryHook({ @@ -511,7 +537,6 @@ export const createUseQuery = ( responseDataType, requestParams, method, - className, }); const isInfiniteQuery = requestParamTexts?.includes(pageParam) ?? false; const infiniteQueryHook = isInfiniteQuery @@ -521,7 +546,6 @@ export const createUseQuery = ( responseDataType, requestParams: infiniteRequestParam ? [infiniteRequestParam] : [], method, - className, pageParam, nextPageParam, initialPageParam, @@ -535,13 +559,11 @@ export const createUseQuery = ( : undefined; const returnTypeExport = createReturnTypeExport({ - className, methodName, defaultApiResponse, }); const queryKeyExport = createQueryKeyExport({ - className, methodName, queryKey, }); @@ -563,7 +585,7 @@ export function getQueryKeyFnName(queryKey: string) { return `${capitalizeFirstLetter(queryKey)}Fn`; } -function createQueryKeyFnExport(queryKey: string, method: MethodDeclaration) { +function createQueryKeyFnExport(queryKey: string, method: VariableDeclaration) { const params = getRequestParamFromMethod(method); // override key is used to allow the user to override the the queryKey values @@ -600,7 +622,7 @@ function createQueryKeyFnExport(queryKey: string, method: MethodDeclaration) { function queryKeyFn( queryKey: string, - method: MethodDeclaration, + method: VariableDeclaration, ): ts.Expression { return ts.factory.createArrayLiteralExpression( [ @@ -610,18 +632,17 @@ function queryKeyFn( ts.factory.createBinaryExpression( ts.factory.createIdentifier("queryKey"), ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken), - method.getParameters().length + getVariableArrowFunctionParameters(method) ? ts.factory.createArrayLiteralExpression([ ts.factory.createObjectLiteralExpression( - method - .getParameters() - .flatMap((param) => + getVariableArrowFunctionParameters(method).flatMap( + (param) => extractPropertiesFromObjectParam(param).map((p) => ts.factory.createShorthandPropertyAssignment( ts.factory.createIdentifier(p.name), ), ), - ), + ), ), ]) : ts.factory.createArrayLiteralExpression([]), diff --git a/src/format.mts b/src/format.mts index b2dcbf3..fe7e21d 100644 --- a/src/format.mts +++ b/src/format.mts @@ -1,4 +1,6 @@ +import { sync } from "cross-spawn"; import { IndentationText, NewLineKind, Project, QuoteKind } from "ts-morph"; +import type { LimitedUserConfig } from "./cli.mjs"; export const formatOutput = async (outputPath: string) => { const project = new Project({ @@ -23,3 +25,72 @@ export const formatOutput = async (outputPath: string) => { await Promise.all(tasks); }; + +type OutputProcesser = { + args: (path: string) => ReadonlyArray; + command: string; + name: string; +}; + +const formatters: Record< + Extract, + OutputProcesser +> = { + biome: { + args: (path) => ["format", "--write", path], + command: "biome", + name: "Biome (Format)", + }, + prettier: { + args: (path) => [ + "--ignore-unknown", + path, + "--write", + "--ignore-path", + "./.prettierignore", + ], + command: "prettier", + name: "Prettier", + }, +}; + +/** + * Map of supported linters + */ +const linters: Record< + Extract, + OutputProcesser +> = { + biome: { + args: (path) => ["lint", "--write", path], + command: "biome", + name: "Biome (Lint)", + }, + eslint: { + args: (path) => [path, "--fix"], + command: "eslint", + name: "ESLint", + }, +}; + +export const processOutput = async ({ + output, + format, + lint, +}: { + output: string; + format?: "prettier" | "biome"; + lint?: "biome" | "eslint"; +}) => { + if (format) { + const module = formatters[format]; + console.log(`✨ Running ${module.name} on queries`); + sync(module.command, module.args(output)); + } + + if (lint) { + const module = linters[lint]; + console.log(`✨ Running ${module.name} on queries`); + sync(module.command, module.args(output)); + } +}; diff --git a/src/generate.mts b/src/generate.mts index 6026d4f..545ffd2 100644 --- a/src/generate.mts +++ b/src/generate.mts @@ -6,7 +6,7 @@ import { formatOptions, } from "./common.mjs"; import { createSource } from "./createSource.mjs"; -import { formatOutput } from "./format.mjs"; +import { formatOutput, processOutput } from "./format.mjs"; import { print } from "./print.mjs"; export async function generate(options: LimitedUserConfig, version: string) { @@ -33,7 +33,7 @@ export async function generate(options: LimitedUserConfig, version: string) { services: { export: true, response: formattedOptions.serviceResponse, - asClass: true, + asClass: false, }, types: { dates: formattedOptions.useDateType, @@ -46,7 +46,6 @@ export async function generate(options: LimitedUserConfig, version: string) { const source = await createSource({ outputPath: openApiOutputPath, version, - serviceEndName: "Service", // we are hard coding this because changing the service end name was depreciated in @hey-api/openapi-ts pageParam: formattedOptions.pageParam, nextPageParam: formattedOptions.nextPageParam, initialPageParam: formattedOptions.initialPageParam.toString(), @@ -54,4 +53,9 @@ export async function generate(options: LimitedUserConfig, version: string) { await print(source, formattedOptions); const queriesOutputPath = buildQueriesOutputPath(options.output); await formatOutput(queriesOutputPath); + await processOutput({ + output: queriesOutputPath, + format: formattedOptions.format, + lint: formattedOptions.lint, + }); } diff --git a/src/service.mts b/src/service.mts index e3fb546..4b42f7c 100644 --- a/src/service.mts +++ b/src/service.mts @@ -1,19 +1,11 @@ -import type { ClassDeclaration, Project, SourceFile } from "ts-morph"; +import type { Project, SourceFile } from "ts-morph"; import ts from "typescript"; -import { - type MethodDescription, - getClassNameFromClassNode, - getClassesFromService, -} from "./common.mjs"; +import type { FunctionDescription } from "./common.mjs"; import { serviceFileName } from "./constants.mjs"; export type Service = { node: SourceFile; - klasses: Array<{ - className: string; - klass: ClassDeclaration; - methods: Array; - }>; + methods: Array; }; export async function getServices(project: Project): Promise { @@ -25,85 +17,86 @@ export async function getServices(project: Project): Promise { throw new Error("No service node found"); } - const klasses = getClassesFromService(node); + const methods = getMethodsFromService(node); return { - klasses: klasses.map(({ klass, className }) => ({ - className, - klass, - methods: getMethodsFromService(node, klass), - })), + methods, node, } satisfies Service; } -function getMethodsFromService(node: SourceFile, klass: ClassDeclaration) { - const methods = klass.getMethods(); - if (!methods.length) { - throw new Error("No methods found"); - } - return methods.map((method) => { - const methodBlockNode = method.compilerNode - .getChildren(node.compilerNode) - .find((child) => child.kind === ts.SyntaxKind.Block); +function getMethodsFromService(node: SourceFile): FunctionDescription[] { + const variableStatements = node.getVariableStatements(); - if (!methodBlockNode) { - throw new Error("Method block not found"); - } - const methodBlock = methodBlockNode as ts.Block; - const foundReturnStatement = methodBlock.statements.find( - (s) => s.kind === ts.SyntaxKind.ReturnStatement, - ); - if (!foundReturnStatement) { - throw new Error("Return statement not found"); - } - const returnStatement = foundReturnStatement as ts.ReturnStatement; - const foundCallExpression = returnStatement.expression; - if (!foundCallExpression) { - throw new Error("Call expression not found"); - } - const callExpression = foundCallExpression as ts.CallExpression; - const properties = ( - callExpression.arguments[1] as ts.ObjectLiteralExpression - ).properties as unknown as ts.PropertyAssignment[]; - const httpMethodName = properties - .find((p) => p.name?.getText(node.compilerNode) === "method") - ?.initializer?.getText(node.compilerNode); + // The first variable statement is `const client = createClient(createConfig())`, so we skip it + return variableStatements.splice(1).flatMap((variableStatement) => { + const declarations = variableStatement.getDeclarations(); + return declarations.map((declaration) => { + if (!ts.isVariableDeclaration(declaration.compilerNode)) { + throw new Error("Variable declaration not found"); + } + const initializer = declaration.getInitializer(); + if (!initializer) { + throw new Error("Initializer not found"); + } + if (!ts.isArrowFunction(initializer.compilerNode)) { + throw new Error("Arrow function not found"); + } + const methodBlockNode = initializer.compilerNode.body; + if (!methodBlockNode || !ts.isBlock(methodBlockNode)) { + throw new Error("Method block not found"); + } + const foundReturnStatement = methodBlockNode.statements.find( + (s) => s.kind === ts.SyntaxKind.ReturnStatement, + ); + if (!foundReturnStatement) { + throw new Error("Return statement not found"); + } + const returnStatement = foundReturnStatement as ts.ReturnStatement; + const foundCallExpression = returnStatement.expression; + if (!foundCallExpression) { + throw new Error("Call expression not found"); + } + const callExpression = foundCallExpression as ts.CallExpression; - if (!httpMethodName) { - throw new Error("httpMethodName not found"); - } + const propertyAccessExpression = + callExpression.expression as ts.PropertyAccessExpression; + const httpMethodName = propertyAccessExpression.name.getText(); - const getAllChildren = (tsNode: ts.Node): Array => { - const childItems = tsNode.getChildren(node.compilerNode); - if (childItems.length) { - const allChildren = childItems.map(getAllChildren); - return [tsNode].concat(allChildren.flat()); + if (!httpMethodName) { + throw new Error("httpMethodName not found"); } - return [tsNode]; - }; - const children = getAllChildren(method.compilerNode); - // get all JSDoc comments - // this should be an array of 1 or 0 - const jsDocs = children - .filter((c) => c.kind === ts.SyntaxKind.JSDoc) - .map((c) => c.getText(node.compilerNode)); - // get the first JSDoc comment - const jsDoc = jsDocs?.[0]; - const isDeprecated = children.some( - (c) => c.kind === ts.SyntaxKind.JSDocDeprecatedTag, - ); + const getAllChildren = (tsNode: ts.Node): Array => { + const childItems = tsNode.getChildren(node.compilerNode); + if (childItems.length) { + const allChildren = childItems.map(getAllChildren); + return [tsNode].concat(allChildren.flat()); + } + return [tsNode]; + }; + + const children = getAllChildren(initializer.compilerNode); + // get all JSDoc comments + // this should be an array of 1 or 0 + const jsDocs = children + .filter((c) => c.kind === ts.SyntaxKind.JSDoc) + .map((c) => c.getText(node.compilerNode)); + // get the first JSDoc comment + const jsDoc = jsDocs?.[0]; + const isDeprecated = children.some( + (c) => c.kind === ts.SyntaxKind.JSDocDeprecatedTag, + ); - const className = getClassNameFromClassNode(klass); + const methodDescription: FunctionDescription = { + node, + method: declaration, + methodBlock: methodBlockNode, + httpMethodName, + jsDoc, + isDeprecated, + } satisfies FunctionDescription; - return { - className, - node, - method, - methodBlock, - httpMethodName, - jsDoc, - isDeprecated, - } satisfies MethodDescription; + return methodDescription; + }); }); } diff --git a/tests/__snapshots__/createSource.test.ts.snap b/tests/__snapshots__/createSource.test.ts.snap index 65c2193..d63a6ed 100644 --- a/tests/__snapshots__/createSource.test.ts.snap +++ b/tests/__snapshots__/createSource.test.ts.snap @@ -12,36 +12,36 @@ exports[`createSource > createSource 2`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; -import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, AddPetData, AddPetResponse, GetNotDefinedResponse, PostNotDefinedResponse, FindPetByIdData, FindPetByIdResponse, DeletePetData, DeletePetResponse, FindPaginatedPetsData, FindPaginatedPetsResponse, $OpenApiTs } from "../requests/types.gen"; -export type DefaultServiceFindPetsDefaultResponse = Awaited>; -export type DefaultServiceFindPetsQueryResult = UseQueryResult; -export const useDefaultServiceFindPetsKey = "DefaultServiceFindPets"; -export const UseDefaultServiceFindPetsKeyFn = ({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: Array) => [useDefaultServiceFindPetsKey, ...(queryKey ?? [{ limit, tags }])]; -export type DefaultServiceGetNotDefinedDefaultResponse = Awaited>; -export type DefaultServiceGetNotDefinedQueryResult = UseQueryResult; -export const useDefaultServiceGetNotDefinedKey = "DefaultServiceGetNotDefined"; -export const UseDefaultServiceGetNotDefinedKeyFn = (queryKey?: Array) => [useDefaultServiceGetNotDefinedKey, ...(queryKey ?? [])]; -export type DefaultServiceFindPetByIdDefaultResponse = Awaited>; -export type DefaultServiceFindPetByIdQueryResult = UseQueryResult; -export const useDefaultServiceFindPetByIdKey = "DefaultServiceFindPetById"; -export const UseDefaultServiceFindPetByIdKeyFn = ({ id }: { - id: number; -}, queryKey?: Array) => [useDefaultServiceFindPetByIdKey, ...(queryKey ?? [{ id }])]; -export type DefaultServiceFindPaginatedPetsDefaultResponse = Awaited>; -export type DefaultServiceFindPaginatedPetsQueryResult = UseQueryResult; -export const useDefaultServiceFindPaginatedPetsKey = "DefaultServiceFindPaginatedPets"; -export const UseDefaultServiceFindPaginatedPetsKeyFn = ({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: Array) => [useDefaultServiceFindPaginatedPetsKey, ...(queryKey ?? [{ limit, page, tags }])]; -export type DefaultServiceAddPetMutationResult = Awaited>; -export type DefaultServicePostNotDefinedMutationResult = Awaited>; -export type DefaultServiceDeletePetMutationResult = Awaited>; +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export type FindPetsDefaultResponse = Awaited>["data"]; +export type FindPetsQueryResult = UseQueryResult; +export const useFindPetsKey = "FindPets"; +export const UseFindPetsKeyFn = ({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [{ query, client }])]; +export type GetNotDefinedDefaultResponse = Awaited>["data"]; +export type GetNotDefinedQueryResult = UseQueryResult; +export const useGetNotDefinedKey = "GetNotDefined"; +export const UseGetNotDefinedKeyFn = ({}: {} = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [{}])]; +export type FindPetByIdDefaultResponse = Awaited>["data"]; +export type FindPetByIdQueryResult = UseQueryResult; +export const useFindPetByIdKey = "FindPetById"; +export const UseFindPetByIdKeyFn = ({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [{ path, client }])]; +export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; +export type FindPaginatedPetsQueryResult = UseQueryResult; +export const useFindPaginatedPetsKey = "FindPaginatedPets"; +export const UseFindPaginatedPetsKeyFn = ({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [{ query, client }])]; +export type AddPetMutationResult = Awaited>; +export type PostNotDefinedMutationResult = Awaited>; +export type DeletePetMutationResult = Awaited>; " `; @@ -50,87 +50,34 @@ exports[`createSource > createSource 3`] = ` import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; -import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, AddPetData, AddPetResponse, GetNotDefinedResponse, PostNotDefinedResponse, FindPetByIdData, FindPetByIdResponse, DeletePetData, DeletePetResponse, FindPaginatedPetsData, FindPaginatedPetsResponse, $OpenApiTs } from "../requests/types.gen"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPets = = unknown[]>({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }, queryKey), queryFn: () => DefaultService.findPets({ limit, tags }) as TData, ...options }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServiceGetNotDefined = = unknown[]>(queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(queryKey), queryFn: () => DefaultService.getNotDefined() as TData, ...options }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetById = = unknown[]>({ id }: { - id: number; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }, queryKey), queryFn: () => DefaultService.findPetById({ id }) as TData, ...options }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPaginatedPets = = unknown[]>({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }, queryKey), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) as TData, ...options }); -/** -* Creates a new pet in the store. Duplicates are allowed -* @param data The data for the request. -* @param data.requestBody Pet to add to the store -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceAddPet = (options?: Omit = unknown[]>({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = = unknown[]>({}: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = = unknown[]>({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = = unknown[]>({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ requestBody }) => DefaultService.addPet({ requestBody }) as unknown as Promise, ...options }); -/** -* @deprecated -* This path is not defined at all. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServicePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: () => DefaultService.postNotDefined() as unknown as Promise, ...options }); -/** -* deletes a single pet based on the ID supplied -* @param data The data for the request. -* @param data.id ID of pet to delete -* @returns void pet deleted -* @throws ApiError -*/ -export const useDefaultServiceDeletePet = (options?: Omit({ mutationFn: ({ body }) => addPet({ body }) as unknown as Promise, ...options }); +export const usePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({}) => postNotDefined({}) as unknown as Promise, ...options }); +export const useDeletePet = (options?: Omit & Config & { headers: Headers; }>; }, TContext>, "mutationFn">) => useMutation({ mutationFn: ({ id }) => DefaultService.deletePet({ id }) as unknown as Promise, ...options }); + path: { id: number; }; + client?: Client & Config & { headers: Headers; }>; +}, TContext>({ mutationFn: ({ path, client }) => deletePet({ path, client }) as unknown as Promise, ...options }); " `; @@ -139,56 +86,21 @@ exports[`createSource > createSource 4`] = ` import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; -import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, AddPetData, AddPetResponse, GetNotDefinedResponse, PostNotDefinedResponse, FindPetByIdData, FindPetByIdResponse, DeletePetData, DeletePetResponse, FindPaginatedPetsData, FindPaginatedPetsResponse, $OpenApiTs } from "../requests/types.gen"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetsSuspense = = unknown[]>({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }, queryKey), queryFn: () => DefaultService.findPets({ limit, tags }) as TData, ...options }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServiceGetNotDefinedSuspense = = unknown[]>(queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(queryKey), queryFn: () => DefaultService.getNotDefined() as TData, ...options }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetByIdSuspense = = unknown[]>({ id }: { - id: number; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }, queryKey), queryFn: () => DefaultService.findPetById({ id }) as TData, ...options }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPaginatedPetsSuspense = = unknown[]>({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }, queryKey), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) as TData, ...options }); +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export const useFindPetsSuspense = = unknown[]>({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = = unknown[]>({}: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = = unknown[]>({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = = unknown[]>({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); " `; @@ -197,55 +109,20 @@ exports[`createSource > createSource 5`] = ` import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; -import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, AddPetData, AddPetResponse, GetNotDefinedResponse, PostNotDefinedResponse, FindPetByIdData, FindPetByIdResponse, DeletePetData, DeletePetResponse, FindPaginatedPetsData, FindPaginatedPetsResponse, $OpenApiTs } from "../requests/types.gen"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPets = (queryClient: QueryClient, { limit, tags }: { - limit?: number; - tags?: string[]; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }), queryFn: () => DefaultService.findPets({ limit, tags }) }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const prefetchUseDefaultServiceGetNotDefined = (queryClient: QueryClient) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(), queryFn: () => DefaultService.getNotDefined() }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPetById = (queryClient: QueryClient, { id }: { - id: number; -}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }), queryFn: () => DefaultService.findPetById({ id }) }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPaginatedPets = (queryClient: QueryClient, { limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) }); +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export const prefetchUseFindPets = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); +export const prefetchUseGetNotDefined = (queryClient: QueryClient, {}: {} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); +export const prefetchUseFindPetById = (queryClient: QueryClient, { path, client }: { + path: { id: number; }; + client?: Client; +}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); +export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); " `; diff --git a/tests/__snapshots__/generate.test.ts.snap b/tests/__snapshots__/generate.test.ts.snap index 94cd5be..d52f9fd 100644 --- a/tests/__snapshots__/generate.test.ts.snap +++ b/tests/__snapshots__/generate.test.ts.snap @@ -3,93 +3,60 @@ exports[`generate > common.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Client } from "@hey-api/client-fetch"; import { UseQueryResult } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; -export type DefaultServiceFindPetsDefaultResponse = Awaited>; -export type DefaultServiceFindPetsQueryResult = UseQueryResult; -export const useDefaultServiceFindPetsKey = "DefaultServiceFindPets"; -export const UseDefaultServiceFindPetsKeyFn = ({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: Array) => [useDefaultServiceFindPetsKey, ...(queryKey ?? [{ limit, tags }])]; -export type DefaultServiceGetNotDefinedDefaultResponse = Awaited>; -export type DefaultServiceGetNotDefinedQueryResult = UseQueryResult; -export const useDefaultServiceGetNotDefinedKey = "DefaultServiceGetNotDefined"; -export const UseDefaultServiceGetNotDefinedKeyFn = (queryKey?: Array) => [useDefaultServiceGetNotDefinedKey, ...(queryKey ?? [])]; -export type DefaultServiceFindPetByIdDefaultResponse = Awaited>; -export type DefaultServiceFindPetByIdQueryResult = UseQueryResult; -export const useDefaultServiceFindPetByIdKey = "DefaultServiceFindPetById"; -export const UseDefaultServiceFindPetByIdKeyFn = ({ id }: { - id: number; -}, queryKey?: Array) => [useDefaultServiceFindPetByIdKey, ...(queryKey ?? [{ id }])]; -export type DefaultServiceFindPaginatedPetsDefaultResponse = Awaited>; -export type DefaultServiceFindPaginatedPetsQueryResult = UseQueryResult; -export const useDefaultServiceFindPaginatedPetsKey = "DefaultServiceFindPaginatedPets"; -export const UseDefaultServiceFindPaginatedPetsKeyFn = ({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: Array) => [useDefaultServiceFindPaginatedPetsKey, ...(queryKey ?? [{ limit, page, tags }])]; -export type DefaultServiceAddPetMutationResult = Awaited>; -export type DefaultServicePostNotDefinedMutationResult = Awaited>; -export type DefaultServiceDeletePetMutationResult = Awaited>; +import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; +export type FindPetsDefaultResponse = Awaited>["data"]; +export type FindPetsQueryResult = UseQueryResult; +export const useFindPetsKey = "FindPets"; +export const UseFindPetsKeyFn = ({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [{ query, client }])]; +export type GetNotDefinedDefaultResponse = Awaited>["data"]; +export type GetNotDefinedQueryResult = UseQueryResult; +export const useGetNotDefinedKey = "GetNotDefined"; +export const UseGetNotDefinedKeyFn = ({ }: {} = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [{}])]; +export type FindPetByIdDefaultResponse = Awaited>["data"]; +export type FindPetByIdQueryResult = UseQueryResult; +export const useFindPetByIdKey = "FindPetById"; +export const UseFindPetByIdKeyFn = ({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [{ path, client }])]; +export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; +export type FindPaginatedPetsQueryResult = UseQueryResult; +export const useFindPaginatedPetsKey = "FindPaginatedPets"; +export const UseFindPaginatedPetsKeyFn = ({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [{ query, client }])]; +export type AddPetMutationResult = Awaited>; +export type PostNotDefinedMutationResult = Awaited>; +export type DeletePetMutationResult = Awaited>; " `; exports[`generate > ensureQueryData.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Client } from "@hey-api/client-fetch"; import { type QueryClient } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; +import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; import * as Common from "./common"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const ensureUseDefaultServiceFindPetsData = (queryClient: QueryClient, { limit, tags }: { - limit?: number; - tags?: string[]; -} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }), queryFn: () => DefaultService.findPets({ limit, tags }) }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const ensureUseDefaultServiceGetNotDefinedData = (queryClient: QueryClient) => queryClient.ensureQueryData({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(), queryFn: () => DefaultService.getNotDefined() }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const ensureUseDefaultServiceFindPetByIdData = (queryClient: QueryClient, { id }: { - id: number; -}) => queryClient.ensureQueryData({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }), queryFn: () => DefaultService.findPetById({ id }) }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const ensureUseDefaultServiceFindPaginatedPetsData = (queryClient: QueryClient, { limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) }); +export const ensureUseFindPetsData = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); +export const ensureUseGetNotDefinedData = (queryClient: QueryClient, { }: {} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); +export const ensureUseFindPetByIdData = (queryClient: QueryClient, { path, client }: { + path: { id: number; }; + client?: Client; +}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); +export const ensureUseFindPaginatedPetsData = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); " `; @@ -104,230 +71,88 @@ export * from "./queries"; exports[`generate > infiniteQueries.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { DefaultService } from "../requests/services.gen"; -import * as Common from "./common"; -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPaginatedPetsInfinite = , TError = unknown, TQueryKey extends Array = unknown[]>({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useInfiniteQuery({ - queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, tags }, queryKey), queryFn: ({ pageParam }) => DefaultService.findPaginatedPets({ limit, page: pageParam as number, tags }) as TData, initialPageParam: "initial", getNextPageParam: response => (response as { - meta: { - next: number; - }; - }).meta.next, ...options -}); " `; exports[`generate > prefetch.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Client } from "@hey-api/client-fetch"; import { type QueryClient } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; +import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; import * as Common from "./common"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPets = (queryClient: QueryClient, { limit, tags }: { - limit?: number; - tags?: string[]; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }), queryFn: () => DefaultService.findPets({ limit, tags }) }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const prefetchUseDefaultServiceGetNotDefined = (queryClient: QueryClient) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(), queryFn: () => DefaultService.getNotDefined() }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPetById = (queryClient: QueryClient, { id }: { - id: number; -}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }), queryFn: () => DefaultService.findPetById({ id }) }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const prefetchUseDefaultServiceFindPaginatedPets = (queryClient: QueryClient, { limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) }); +export const prefetchUseFindPets = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); +export const prefetchUseGetNotDefined = (queryClient: QueryClient, { }: {} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); +export const prefetchUseFindPetById = (queryClient: QueryClient, { path, client }: { + path: { id: number; }; + client?: Client; +}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); +export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, { query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); " `; exports[`generate > queries.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Client, Config, RequestOptionsBase } from "@hey-api/client-fetch"; import { useMutation, UseMutationOptions, useQuery, UseQueryOptions } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; +import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; import { NewPet } from "../requests/types.gen"; import * as Common from "./common"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPets = = unknown[]>({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }, queryKey), queryFn: () => DefaultService.findPets({ limit, tags }) as TData, ...options }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServiceGetNotDefined = = unknown[]>(queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(queryKey), queryFn: () => DefaultService.getNotDefined() as TData, ...options }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetById = = unknown[]>({ id }: { - id: number; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }, queryKey), queryFn: () => DefaultService.findPetById({ id }) as TData, ...options }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPaginatedPets = = unknown[]>({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }, queryKey), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) as TData, ...options }); -/** -* Creates a new pet in the store. Duplicates are allowed -* @param data The data for the request. -* @param data.requestBody Pet to add to the store -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceAddPet = (options?: Omit = unknown[]>({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = = unknown[]>({ }: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = = unknown[]>({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = = unknown[]>({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ requestBody }) => DefaultService.addPet({ requestBody }) as unknown as Promise, ...options }); -/** -* @deprecated -* This path is not defined at all. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServicePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: () => DefaultService.postNotDefined() as unknown as Promise, ...options }); -/** -* deletes a single pet based on the ID supplied -* @param data The data for the request. -* @param data.id ID of pet to delete -* @returns void pet deleted -* @throws ApiError -*/ -export const useDefaultServiceDeletePet = (options?: Omit({ mutationFn: ({ body }) => addPet({ body }) as unknown as Promise, ...options }); +export const usePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ }) => postNotDefined({}) as unknown as Promise, ...options }); +export const useDeletePet = (options?: Omit & Config & { headers: Headers; }>; }, TContext>, "mutationFn">) => useMutation({ mutationFn: ({ id }) => DefaultService.deletePet({ id }) as unknown as Promise, ...options }); + path: { id: number; }; + client?: Client & Config & { headers: Headers; }>; +}, TContext>({ mutationFn: ({ path, client }) => deletePet({ path, client }) as unknown as Promise, ...options }); " `; exports[`generate > suspense.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Client } from "@hey-api/client-fetch"; import { UseQueryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { DefaultService } from "../requests/services.gen"; +import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; import * as Common from "./common"; -/** -* Returns all pets from the system that the user has access to -* Nam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia. -* -* Sed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien. -* -* @param data The data for the request. -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetsSuspense = = unknown[]>({ limit, tags }: { - limit?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPetsKeyFn({ limit, tags }, queryKey), queryFn: () => DefaultService.findPets({ limit, tags }) as TData, ...options }); -/** -* @deprecated -* This path is not fully defined. -* @returns unknown unexpected error -* @throws ApiError -*/ -export const useDefaultServiceGetNotDefinedSuspense = = unknown[]>(queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceGetNotDefinedKeyFn(queryKey), queryFn: () => DefaultService.getNotDefined() as TData, ...options }); -/** -* Returns a user based on a single ID, if the user does not have access to the pet -* @param data The data for the request. -* @param data.id ID of pet to fetch -* @returns Pet pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPetByIdSuspense = = unknown[]>({ id }: { - id: number; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPetByIdKeyFn({ id }, queryKey), queryFn: () => DefaultService.findPetById({ id }) as TData, ...options }); -/** -* Returns paginated pets from the system that the user has access to -* -* @param data The data for the request. -* @param data.page page number -* @param data.tags tags to filter by -* @param data.limit maximum number of results to return -* @returns unknown pet response -* @throws ApiError -*/ -export const useDefaultServiceFindPaginatedPetsSuspense = = unknown[]>({ limit, page, tags }: { - limit?: number; - page?: number; - tags?: string[]; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseDefaultServiceFindPaginatedPetsKeyFn({ limit, page, tags }, queryKey), queryFn: () => DefaultService.findPaginatedPets({ limit, page, tags }) as TData, ...options }); +export const useFindPetsSuspense = = unknown[]>({ query, client }: { + query?: { limit?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = = unknown[]>({ }: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = = unknown[]>({ path, client }: { + path: { id: number; }; + client?: Client; +}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = = unknown[]>({ query, client }: { + query?: { limit?: number; page?: number; tags?: string[]; }; + client?: Client; +} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); " `; diff --git a/tests/common.test.ts b/tests/common.test.ts index 76a09fe..9af48a3 100644 --- a/tests/common.test.ts +++ b/tests/common.test.ts @@ -1,4 +1,9 @@ -import type { ClassDeclaration, MethodDeclaration, SourceFile } from "ts-morph"; +import type { + ClassDeclaration, + MethodDeclaration, + SourceFile, + VariableDeclaration, +} from "ts-morph"; import { describe, expect, test, vi } from "vitest"; import type { LimitedUserConfig } from "../src/cli.mts"; import { @@ -7,7 +12,7 @@ import { formatOptions, getClassNameFromClassNode, getClassesFromService, - getNameFromMethod, + getNameFromVariable, getShortType, lowercaseFirstLetter, safeParseNumber, @@ -239,17 +244,17 @@ describe("common", () => { test("getNameFromMethod - get method name", () => { const method = { getName: vi.fn(() => "test"), - } as unknown as MethodDeclaration; - const result = getNameFromMethod(method); + } as unknown as VariableDeclaration; + const result = getNameFromVariable(method); expect(result).toBe("test"); }); test("getNameFromMethod - no method name", () => { const method = { getName: vi.fn(() => undefined), - } as unknown as MethodDeclaration; - expect(() => getNameFromMethod(method)).toThrowError( - "Method name not found", + } as unknown as VariableDeclaration; + expect(() => getNameFromVariable(method)).toThrowError( + "Variable name not found", ); }); }); diff --git a/tests/createExports.test.ts b/tests/createExports.test.ts index 2784f49..a000bf5 100644 --- a/tests/createExports.test.ts +++ b/tests/createExports.test.ts @@ -24,17 +24,17 @@ describe(fileName, () => { // @ts-ignore .map((e) => e.name.escapedText); expect(commonTypes).toStrictEqual([ - "DefaultServiceFindPetsDefaultResponse", - "DefaultServiceFindPetsQueryResult", - "DefaultServiceGetNotDefinedDefaultResponse", - "DefaultServiceGetNotDefinedQueryResult", - "DefaultServiceFindPetByIdDefaultResponse", - "DefaultServiceFindPetByIdQueryResult", - "DefaultServiceFindPaginatedPetsDefaultResponse", - "DefaultServiceFindPaginatedPetsQueryResult", - "DefaultServiceAddPetMutationResult", - "DefaultServicePostNotDefinedMutationResult", - "DefaultServiceDeletePetMutationResult", + "FindPetsDefaultResponse", + "FindPetsQueryResult", + "GetNotDefinedDefaultResponse", + "GetNotDefinedQueryResult", + "FindPetByIdDefaultResponse", + "FindPetByIdQueryResult", + "FindPaginatedPetsDefaultResponse", + "FindPaginatedPetsQueryResult", + "AddPetMutationResult", + "PostNotDefinedMutationResult", + "DeletePetMutationResult", ]); const constants = exports.allCommon @@ -42,14 +42,14 @@ describe(fileName, () => { // @ts-ignore .map((c) => c.declarationList.declarations[0].name.escapedText); expect(constants).toStrictEqual([ - "useDefaultServiceFindPetsKey", - "UseDefaultServiceFindPetsKeyFn", - "useDefaultServiceGetNotDefinedKey", - "UseDefaultServiceGetNotDefinedKeyFn", - "useDefaultServiceFindPetByIdKey", - "UseDefaultServiceFindPetByIdKeyFn", - "useDefaultServiceFindPaginatedPetsKey", - "UseDefaultServiceFindPaginatedPetsKeyFn", + "useFindPetsKey", + "UseFindPetsKeyFn", + "useGetNotDefinedKey", + "UseGetNotDefinedKeyFn", + "useFindPetByIdKey", + "UseFindPetByIdKeyFn", + "useFindPaginatedPetsKey", + "UseFindPaginatedPetsKeyFn", ]); const mainExports = exports.mainExports.map( @@ -57,13 +57,13 @@ describe(fileName, () => { (e) => e.declarationList.declarations[0].name.escapedText, ); expect(mainExports).toStrictEqual([ - "useDefaultServiceFindPets", - "useDefaultServiceGetNotDefined", - "useDefaultServiceFindPetById", - "useDefaultServiceFindPaginatedPets", - "useDefaultServiceAddPet", - "useDefaultServicePostNotDefined", - "useDefaultServiceDeletePet", + "useFindPets", + "useGetNotDefined", + "useFindPetById", + "useFindPaginatedPets", + "useAddPet", + "usePostNotDefined", + "useDeletePet", ]); const suspenseExports = exports.suspenseExports.map( @@ -71,10 +71,10 @@ describe(fileName, () => { (e) => e.declarationList.declarations[0].name.escapedText, ); expect(suspenseExports).toStrictEqual([ - "useDefaultServiceFindPetsSuspense", - "useDefaultServiceGetNotDefinedSuspense", - "useDefaultServiceFindPetByIdSuspense", - "useDefaultServiceFindPaginatedPetsSuspense", + "useFindPetsSuspense", + "useGetNotDefinedSuspense", + "useFindPetByIdSuspense", + "useFindPaginatedPetsSuspense", ]); }); }); diff --git a/tests/createImports.test.ts b/tests/createImports.test.ts index c0d707e..80b39ef 100644 --- a/tests/createImports.test.ts +++ b/tests/createImports.test.ts @@ -14,7 +14,6 @@ describe(fileName, () => { }); project.addSourceFilesAtPaths(path.join(outputPath(fileName), "**", "*")); const imports = createImports({ - serviceEndName: "Service", project, }); @@ -36,7 +35,6 @@ describe(fileName, () => { }); project.addSourceFilesAtPaths(path.join(outputPath(fileName), "**", "*")); const imports = createImports({ - serviceEndName: "Service", project, }); diff --git a/tests/createSource.test.ts b/tests/createSource.test.ts index f3f114e..55eec67 100644 --- a/tests/createSource.test.ts +++ b/tests/createSource.test.ts @@ -10,9 +10,9 @@ describe(fileName, () => { const source = await createSource({ outputPath: outputPath(fileName), version: "1.0.0", - serviceEndName: "Service", pageParam: "page", nextPageParam: "nextPage", + initialPageParam: "1", }); const indexTs = source.find((s) => s.name === "index.ts"); diff --git a/tests/generate.test.ts b/tests/generate.test.ts index 71aaed5..7e028e8 100644 --- a/tests/generate.test.ts +++ b/tests/generate.test.ts @@ -15,9 +15,9 @@ const readOutput = (fileName: string) => { describe("generate", () => { beforeAll(async () => { const options: LimitedUserConfig = { - client: "fetch", input: path.join(__dirname, "inputs", "petstore.yaml"), output: path.join("tests", "outputs"), + client: "@hey-api/client-fetch", lint: "eslint", pageParam: "page", nextPageParam: "meta.next", diff --git a/tests/service.test.ts b/tests/service.test.ts index d2f64b2..842e977 100644 --- a/tests/service.test.ts +++ b/tests/service.test.ts @@ -16,9 +16,8 @@ describe(fileName, () => { path.join("tests", `${fileName}-outputs`, "**", "*"), ); const service = await getServices(project); - const klass = service.klasses[0]; - expect(klass.className).toBe("DefaultService"); - const methodNames = klass.methods.map((m) => m.method.getName()); + + const methodNames = service.methods.map((m) => m.method.getName()); expect(methodNames).toEqual([ "findPets", "addPet", diff --git a/tests/utils.ts b/tests/utils.ts index 025f386..4da25b7 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -8,13 +8,10 @@ export const outputPath = (prefix: string) => export const generateTSClients = async (prefix: string, inputFile?: string) => { const options: UserConfig = { input: path.join(__dirname, "inputs", inputFile ?? "petstore.yaml"), + client: "@hey-api/client-fetch", output: outputPath(prefix), - client: { - name: "fetch", - bundle: false, - }, services: { - asClass: true, + asClass: false, }, }; await createClient(options); From 866cb97a483a9bc257c604fecef880e919d22073 Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Thu, 10 Oct 2024 21:00:25 +0900 Subject: [PATCH 2/6] Fix for generating infinite/prefetch/ensure queries (#158) --- .../app/components/PaginatedPets.tsx | 14 +- examples/nextjs-app/package.json | 2 +- examples/nextjs-app/request.ts | 94 ---------- examples/tanstack-router-app/package.json | 3 +- examples/tanstack-router-app/request.ts | 94 ---------- .../tanstack-router-app/src/fetchClient.ts | 5 + examples/tanstack-router-app/src/main.tsx | 2 +- .../tanstack-router-app/src/routes/about.tsx | 1 - .../tanstack-router-app/src/routes/index.tsx | 10 +- pnpm-lock.yaml | 3 - src/cli.mts | 6 +- src/constants.mts | 2 +- src/createExports.mts | 74 +++++++- src/createImports.mts | 6 +- src/createPrefetchOrEnsure.mts | 91 +++++----- src/createSource.mts | 1 + src/createUseMutation.mts | 104 ++++------- src/createUseQuery.mts | 162 ++++++++---------- src/service.mts | 2 +- tests/__snapshots__/createSource.test.ts.snap | 84 ++------- tests/__snapshots__/generate.test.ts.snap | 127 +++++--------- tests/common.test.ts | 114 +++++++++++- tests/service.test.ts | 67 +++++++- vitest.config.ts | 2 +- 24 files changed, 492 insertions(+), 578 deletions(-) delete mode 100644 examples/nextjs-app/request.ts delete mode 100644 examples/tanstack-router-app/request.ts create mode 100644 examples/tanstack-router-app/src/fetchClient.ts diff --git a/examples/nextjs-app/app/components/PaginatedPets.tsx b/examples/nextjs-app/app/components/PaginatedPets.tsx index bfaee46..56e64e6 100644 --- a/examples/nextjs-app/app/components/PaginatedPets.tsx +++ b/examples/nextjs-app/app/components/PaginatedPets.tsx @@ -1,13 +1,15 @@ "use client"; -import { useDefaultServiceFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; +import { useFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import React from "react"; export default function PaginatedPets() { - const { data, fetchNextPage } = useDefaultServiceFindPaginatedPetsInfinite({ - limit: 10, - tags: [], + const { data, fetchNextPage } = useFindPaginatedPetsInfinite({ + query: { + limit: 10, + tags: [], + }, }); return ( @@ -15,8 +17,8 @@ export default function PaginatedPets() {

Pet List with Pagination

    {data?.pages.map((group, i) => ( - - {group.pets?.map((pet) => ( + + {group?.pets?.map((pet) => (
  • {pet.name}
  • ))}
    diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 9c5c6d5..08e8db6 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -9,7 +9,7 @@ "build": "next build", "start": "next start", "lint": "next lint", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --request ./request.ts --format=biome --lint=biome --base http://localhost:4010" + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome" }, "dependencies": { "@tanstack/react-query": "^5.32.1", diff --git a/examples/nextjs-app/request.ts b/examples/nextjs-app/request.ts deleted file mode 100644 index 98e0a7f..0000000 --- a/examples/nextjs-app/request.ts +++ /dev/null @@ -1,94 +0,0 @@ -import axios from "axios"; -import type { RawAxiosRequestHeaders } from "axios"; - -import type { ApiRequestOptions } from "./ApiRequestOptions"; -import { CancelablePromise } from "./CancelablePromise"; -import type { OpenAPIConfig } from "./OpenAPI"; - -// Optional: Get and link the cancelation token, so the request can be aborted. -const source = axios.CancelToken.source(); - -const axiosInstance = axios.create({ - // Your custom Axios instance config - baseURL: "http://localhost:4010", - headers: { - // Your custom headers - } satisfies RawAxiosRequestHeaders, -}); - -// Add a request interceptor -axiosInstance.interceptors.request.use( - (config) => { - // Do something before request is sent - if (!config.url || !config.params) { - return config; - } - - for (const [key, value] of Object.entries(config.params)) { - const stringToSearch = `{${key}}`; - if ( - config.url !== undefined && - config.url.search(stringToSearch) !== -1 - ) { - config.url = config.url.replace(`{${key}}`, encodeURIComponent(value)); - delete config.params[key]; - } - } - - return config; - }, - (error) => { - // Do something with request error - return Promise.reject(error); - }, -); - -// Add a response interceptor -axiosInstance.interceptors.response.use( - (response) => { - // Any status code that lie within the range of 2xx cause this function to trigger - // Do something with response data - return response; - }, - (error) => { - // Any status codes that falls outside the range of 2xx cause this function to trigger - // Do something with response error - return Promise.reject(error); - }, -); - -export const request = ( - config: OpenAPIConfig, - options: ApiRequestOptions, -): CancelablePromise => { - return new CancelablePromise((resolve, reject, onCancel) => { - onCancel(() => source.cancel("The user aborted a request.")); - - let formattedHeaders = options.headers as RawAxiosRequestHeaders; - if (options.mediaType) { - formattedHeaders = { - ...options.headers, - "Content-Type": options.mediaType, - } satisfies RawAxiosRequestHeaders; - } - - return axiosInstance - .request({ - url: options.url, - data: options.body, - method: options.method, - params: { - ...options.query, - ...options.path, - }, - headers: formattedHeaders, - cancelToken: source.token, - }) - .then((res) => { - resolve(res.data); - }) - .catch((error) => { - reject(error); - }); - }); -}; diff --git a/examples/tanstack-router-app/package.json b/examples/tanstack-router-app/package.json index c4e5cc3..1904496 100644 --- a/examples/tanstack-router-app/package.json +++ b/examples/tanstack-router-app/package.json @@ -11,7 +11,7 @@ "build": "vite build", "serve": "vite preview", "start": "vite", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml -c axios --request ./request.ts --format=biome --lint=biome" + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome" }, "devDependencies": { "@stoplight/prism-cli": "^5.5.2", @@ -29,7 +29,6 @@ "@tanstack/react-router-with-query": "^1.58.7", "@tanstack/router-devtools": "^1.58.7", "@tanstack/start": "^1.58.7", - "axios": "^1.6.7", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/tanstack-router-app/request.ts b/examples/tanstack-router-app/request.ts deleted file mode 100644 index 98e0a7f..0000000 --- a/examples/tanstack-router-app/request.ts +++ /dev/null @@ -1,94 +0,0 @@ -import axios from "axios"; -import type { RawAxiosRequestHeaders } from "axios"; - -import type { ApiRequestOptions } from "./ApiRequestOptions"; -import { CancelablePromise } from "./CancelablePromise"; -import type { OpenAPIConfig } from "./OpenAPI"; - -// Optional: Get and link the cancelation token, so the request can be aborted. -const source = axios.CancelToken.source(); - -const axiosInstance = axios.create({ - // Your custom Axios instance config - baseURL: "http://localhost:4010", - headers: { - // Your custom headers - } satisfies RawAxiosRequestHeaders, -}); - -// Add a request interceptor -axiosInstance.interceptors.request.use( - (config) => { - // Do something before request is sent - if (!config.url || !config.params) { - return config; - } - - for (const [key, value] of Object.entries(config.params)) { - const stringToSearch = `{${key}}`; - if ( - config.url !== undefined && - config.url.search(stringToSearch) !== -1 - ) { - config.url = config.url.replace(`{${key}}`, encodeURIComponent(value)); - delete config.params[key]; - } - } - - return config; - }, - (error) => { - // Do something with request error - return Promise.reject(error); - }, -); - -// Add a response interceptor -axiosInstance.interceptors.response.use( - (response) => { - // Any status code that lie within the range of 2xx cause this function to trigger - // Do something with response data - return response; - }, - (error) => { - // Any status codes that falls outside the range of 2xx cause this function to trigger - // Do something with response error - return Promise.reject(error); - }, -); - -export const request = ( - config: OpenAPIConfig, - options: ApiRequestOptions, -): CancelablePromise => { - return new CancelablePromise((resolve, reject, onCancel) => { - onCancel(() => source.cancel("The user aborted a request.")); - - let formattedHeaders = options.headers as RawAxiosRequestHeaders; - if (options.mediaType) { - formattedHeaders = { - ...options.headers, - "Content-Type": options.mediaType, - } satisfies RawAxiosRequestHeaders; - } - - return axiosInstance - .request({ - url: options.url, - data: options.body, - method: options.method, - params: { - ...options.query, - ...options.path, - }, - headers: formattedHeaders, - cancelToken: source.token, - }) - .then((res) => { - resolve(res.data); - }) - .catch((error) => { - reject(error); - }); - }); -}; diff --git a/examples/tanstack-router-app/src/fetchClient.ts b/examples/tanstack-router-app/src/fetchClient.ts new file mode 100644 index 0000000..7497a3b --- /dev/null +++ b/examples/tanstack-router-app/src/fetchClient.ts @@ -0,0 +1,5 @@ +import { client } from "../openapi/requests/services.gen"; + +client.setConfig({ + baseUrl: "http://localhost:4010", +}); diff --git a/examples/tanstack-router-app/src/main.tsx b/examples/tanstack-router-app/src/main.tsx index 0c552dc..dbdfd37 100644 --- a/examples/tanstack-router-app/src/main.tsx +++ b/examples/tanstack-router-app/src/main.tsx @@ -1,6 +1,6 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { RouterProvider, createRouter } from "@tanstack/react-router"; -import React from "react"; +import "./fetchClient"; import ReactDOM from "react-dom/client"; import { routeTree } from "./routeTree.gen"; diff --git a/examples/tanstack-router-app/src/routes/about.tsx b/examples/tanstack-router-app/src/routes/about.tsx index de88d2a..494ba18 100644 --- a/examples/tanstack-router-app/src/routes/about.tsx +++ b/examples/tanstack-router-app/src/routes/about.tsx @@ -1,5 +1,4 @@ import { createFileRoute } from "@tanstack/react-router"; -import * as React from "react"; export const Route = createFileRoute("/about")({ component: AboutComponent, diff --git a/examples/tanstack-router-app/src/routes/index.tsx b/examples/tanstack-router-app/src/routes/index.tsx index 03174ee..af7ed6b 100644 --- a/examples/tanstack-router-app/src/routes/index.tsx +++ b/examples/tanstack-router-app/src/routes/index.tsx @@ -1,19 +1,19 @@ import { createFileRoute } from "@tanstack/react-router"; -import { ensureUseDefaultServiceFindPetsData } from "../../openapi/queries/ensureQueryData"; -import { useDefaultServiceFindPetsSuspense } from "../../openapi/queries/suspense"; +import { ensureUseFindPetsData } from "../../openapi/queries/ensureQueryData"; +import { useFindPetsSuspense } from "../../openapi/queries/suspense"; export const Route = createFileRoute("/")({ loader: async ({ context }) => { - await ensureUseDefaultServiceFindPetsData(context.queryClient); + await ensureUseFindPetsData(context.queryClient); }, component: HomeComponent, }); function HomeComponent() { - const petsSuspense = useDefaultServiceFindPetsSuspense(); + const petsSuspense = useFindPetsSuspense(); return (
      - {petsSuspense.data.map((post) => { + {petsSuspense.data?.map?.((post) => { return (
    • {post.name}
      diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 626bd17..3aa9ef4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -167,9 +167,6 @@ importers: '@tanstack/start': specifier: ^1.58.7 version: 1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) - axios: - specifier: ^1.6.7 - version: 1.7.2 react: specifier: ^18.3.1 version: 18.3.1 diff --git a/src/cli.mts b/src/cli.mts index f1128c1..4ca7b06 100644 --- a/src/cli.mts +++ b/src/cli.mts @@ -110,11 +110,7 @@ async function setupProgram() { "Name of the response parameter used for next page", "nextPage", ) - .option( - "--initialPageParam ", - "Initial page value to query", - "initialPageParam", - ) + .option("--initialPageParam ", "Initial page value to query", "1") .parse(); const options = program.opts(); diff --git a/src/constants.mts b/src/constants.mts index f44bf11..651e6e8 100644 --- a/src/constants.mts +++ b/src/constants.mts @@ -3,7 +3,7 @@ export const queriesOutputPath = "queries"; export const requestsOutputPath = "requests"; export const serviceFileName = "services.gen"; -export const modalsFileName = "types.gen"; +export const modelsFileName = "types.gen"; export const OpenApiRqFiles = { queries: "queries", diff --git a/src/createExports.mts b/src/createExports.mts index 7b2ff4e..334c612 100644 --- a/src/createExports.mts +++ b/src/createExports.mts @@ -1,4 +1,7 @@ -import type ts from "typescript"; +import type { Project } from "ts-morph"; +import ts from "typescript"; +import { capitalizeFirstLetter } from "./common.mjs"; +import { modelsFileName } from "./constants.mjs"; import { createPrefetchOrEnsure } from "./createPrefetchOrEnsure.mjs"; import { createUseMutation } from "./createUseMutation.mjs"; import { createUseQuery } from "./createUseQuery.mjs"; @@ -6,11 +9,51 @@ import type { Service } from "./service.mjs"; export const createExports = ( service: Service, + project: Project, pageParam: string, nextPageParam: string, initialPageParam: string, ) => { const { methods } = service; + const methodDataNames = methods.reduce( + (acc, data) => { + const methodName = data.method.getName(); + acc[`${capitalizeFirstLetter(methodName)}Data`] = methodName; + return acc; + }, + {} as { [key: string]: string }, + ); + const modelsFile = project + .getSourceFiles?.() + .find((sourceFile) => sourceFile.getFilePath().includes(modelsFileName)); + + const modelDeclarations = modelsFile?.getExportedDeclarations(); + const entries = modelDeclarations?.entries(); + const modelNames: string[] = []; + const paginatableMethods: string[] = []; + for (const [key, value] of entries ?? []) { + modelNames.push(key); + const node = value[0].compilerNode; + if (ts.isTypeAliasDeclaration(node) && methodDataNames[key] !== undefined) { + // get the type alias declaration + const typeAliasDeclaration = node.type; + if (typeAliasDeclaration.kind === ts.SyntaxKind.TypeLiteral) { + const query = (typeAliasDeclaration as ts.TypeLiteralNode).members.find( + (m) => + m.kind === ts.SyntaxKind.PropertySignature && + m.name?.getText() === "query", + ); + if ( + query && + ((query as ts.PropertySignature).type as ts.TypeLiteralNode).members + .map((m) => m.name?.getText()) + .includes(pageParam) + ) { + paginatableMethods.push(methodDataNames[key]); + } + } + } + } const allGet = methods.filter((m) => m.httpMethodName.toUpperCase().includes("GET"), @@ -29,19 +72,34 @@ export const createExports = ( ); const allGetQueries = allGet.map((m) => - createUseQuery(m, pageParam, nextPageParam, initialPageParam), + createUseQuery( + m, + pageParam, + nextPageParam, + initialPageParam, + paginatableMethods, + modelNames, + ), ); const allPrefetchQueries = allGet.map((m) => - createPrefetchOrEnsure({ ...m, functionType: "prefetch" }), + createPrefetchOrEnsure({ ...m, functionType: "prefetch", modelNames }), ); const allEnsureQueries = allGet.map((m) => - createPrefetchOrEnsure({ ...m, functionType: "ensure" }), + createPrefetchOrEnsure({ ...m, functionType: "ensure", modelNames }), ); - const allPostMutations = allPost.map((m) => createUseMutation(m)); - const allPutMutations = allPut.map((m) => createUseMutation(m)); - const allPatchMutations = allPatch.map((m) => createUseMutation(m)); - const allDeleteMutations = allDelete.map((m) => createUseMutation(m)); + const allPostMutations = allPost.map((m) => + createUseMutation({ ...m, modelNames }), + ); + const allPutMutations = allPut.map((m) => + createUseMutation({ ...m, modelNames }), + ); + const allPatchMutations = allPatch.map((m) => + createUseMutation({ ...m, modelNames }), + ); + const allDeleteMutations = allDelete.map((m) => + createUseMutation({ ...m, modelNames }), + ); const allQueries = [...allGetQueries]; const allMutations = [ diff --git a/src/createImports.mts b/src/createImports.mts index 3f86b1b..2e367b5 100644 --- a/src/createImports.mts +++ b/src/createImports.mts @@ -1,7 +1,7 @@ import { posix } from "node:path"; import type { Project } from "ts-morph"; import ts from "typescript"; -import { modalsFileName, serviceFileName } from "./constants.mjs"; +import { modelsFileName, serviceFileName } from "./constants.mjs"; const { join } = posix; @@ -12,7 +12,7 @@ export const createImports = ({ }) => { const modelsFile = project .getSourceFiles() - .find((sourceFile) => sourceFile.getFilePath().includes(modalsFileName)); + .find((sourceFile) => sourceFile.getFilePath().includes(modelsFileName)); const serviceFile = project.getSourceFileOrThrow(`${serviceFileName}.ts`); @@ -122,7 +122,7 @@ export const createImports = ({ ), ]), ), - ts.factory.createStringLiteral(join("../requests/", modalsFileName)), + ts.factory.createStringLiteral(join("../requests/", modelsFileName)), undefined, ), ); diff --git a/src/createPrefetchOrEnsure.mts b/src/createPrefetchOrEnsure.mts index 33181a6..eb8817d 100644 --- a/src/createPrefetchOrEnsure.mts +++ b/src/createPrefetchOrEnsure.mts @@ -2,7 +2,7 @@ import type { VariableDeclaration } from "ts-morph"; import ts from "typescript"; import { BuildCommonTypeName, - extractPropertiesFromObjectParam, + EqualsOrGreaterThanToken, getNameFromVariable, getVariableArrowFunctionParameters, } from "./common.mjs"; @@ -66,7 +66,7 @@ function createPrefetchOrEnsureHook({ ...requestParams, ], undefined, - ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), + EqualsOrGreaterThanToken, ts.factory.createCallExpression( ts.factory.createIdentifier( `queryClient.${functionType === "prefetch" ? "prefetchQuery" : "ensureQueryData"}`, @@ -80,22 +80,7 @@ function createPrefetchOrEnsureHook({ BuildCommonTypeName(getQueryKeyFnName(queryKey)), undefined, - getVariableArrowFunctionParameters(method).length - ? [ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters( - method, - ).flatMap((param) => - extractPropertiesFromObjectParam(param).map( - (p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), - ), - ), - ), - ), - ] - : [], + [ts.factory.createIdentifier("clientOptions")], ), ), ts.factory.createPropertyAssignment( @@ -105,29 +90,53 @@ function createPrefetchOrEnsureHook({ undefined, [], undefined, - ts.factory.createToken( - ts.SyntaxKind.EqualsGreaterThanToken, - ), + EqualsOrGreaterThanToken, ts.factory.createCallExpression( - ts.factory.createIdentifier(methodName), + ts.factory.createPropertyAccessExpression( + ts.factory.createCallExpression( + ts.factory.createIdentifier(methodName), - undefined, - getVariableArrowFunctionParameters(method).length - ? [ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters( - method, - ).flatMap((param) => - extractPropertiesFromObjectParam(param).map( - (p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), + undefined, + // { ...clientOptions } + getVariableArrowFunctionParameters(method).length + ? [ + ts.factory.createObjectLiteralExpression([ + ts.factory.createSpreadAssignment( + ts.factory.createIdentifier( + "clientOptions", ), - ), - ), + ), + ]), + ] + : undefined, + ), + ts.factory.createIdentifier("then"), + ), + undefined, + [ + ts.factory.createArrowFunction( + undefined, + undefined, + [ + ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier("response"), + undefined, + undefined, + undefined, ), - ] - : undefined, + ], + undefined, + ts.factory.createToken( + ts.SyntaxKind.EqualsGreaterThanToken, + ), + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier("response"), + ts.factory.createIdentifier("data"), + ), + ), + ], ), ), ), @@ -147,8 +156,12 @@ export const createPrefetchOrEnsure = ({ method, jsDoc, functionType, -}: FunctionDescription & { functionType: "prefetch" | "ensure" }) => { - const requestParam = getRequestParamFromMethod(method); + modelNames, +}: FunctionDescription & { + functionType: "prefetch" | "ensure"; + modelNames: string[]; +}) => { + const requestParam = getRequestParamFromMethod(method, undefined, modelNames); const requestParams = requestParam ? [requestParam] : []; diff --git a/src/createSource.mts b/src/createSource.mts index 2a02c40..e29929d 100644 --- a/src/createSource.mts +++ b/src/createSource.mts @@ -31,6 +31,7 @@ const createSourceFile = async ( const exports = createExports( service, + project, pageParam, nextPageParam, initialPageParam, diff --git a/src/createUseMutation.mts b/src/createUseMutation.mts index 8372abd..b20d27e 100644 --- a/src/createUseMutation.mts +++ b/src/createUseMutation.mts @@ -1,14 +1,13 @@ import ts from "typescript"; import { BuildCommonTypeName, + EqualsOrGreaterThanToken, type FunctionDescription, TContext, TData, TError, capitalizeFirstLetter, - extractPropertiesFromObjectParam, getNameFromVariable, - getShortType, getVariableArrowFunctionParameters, } from "./common.mjs"; import { addJSDocToNode } from "./util.mjs"; @@ -38,7 +37,11 @@ function generateAwaitedReturnType({ ); } -export const createUseMutation = ({ method, jsDoc }: FunctionDescription) => { +export const createUseMutation = ({ + method, + jsDoc, + modelNames, +}: FunctionDescription & { modelNames: string[] }) => { const methodName = getNameFromVariable(method); const awaitedResponseDataType = generateAwaitedReturnType({ methodName, @@ -64,22 +67,16 @@ export const createUseMutation = ({ method, jsDoc }: FunctionDescription) => { const methodParameters = getVariableArrowFunctionParameters(method).length !== 0 - ? ts.factory.createTypeLiteralNode( - getVariableArrowFunctionParameters(method).flatMap((param) => { - const paramNodes = extractPropertiesFromObjectParam(param); - return paramNodes.map((refParam) => - ts.factory.createPropertySignature( - undefined, - ts.factory.createIdentifier(refParam.name), - refParam.optional - ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) - : undefined, - ts.factory.createTypeReferenceNode( - getShortType(refParam.type?.getText(param) ?? ""), - ), - ), - ); - }), + ? ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier("Options"), + [ + ts.factory.createTypeReferenceNode( + modelNames.includes(`${capitalizeFirstLetter(methodName)}Data`) + ? `${capitalizeFirstLetter(methodName)}Data` + : "unknown", + ), + ts.factory.createLiteralTypeNode(ts.factory.createTrue()), + ], ) : ts.factory.createKeywordTypeNode(ts.SyntaxKind.VoidKeyword); @@ -150,68 +147,31 @@ export const createUseMutation = ({ method, jsDoc }: FunctionDescription) => { ts.factory.createObjectLiteralExpression([ ts.factory.createPropertyAssignment( ts.factory.createIdentifier("mutationFn"), + // (clientOptions) => addPet(clientOptions).then(response => response.data as TData) as unknown as Promise ts.factory.createArrowFunction( undefined, undefined, - getVariableArrowFunctionParameters(method).length !== 0 - ? [ - ts.factory.createParameterDeclaration( - undefined, - undefined, - ts.factory.createObjectBindingPattern( - getVariableArrowFunctionParameters( - method, - ).flatMap((param) => { - const paramNodes = - extractPropertiesFromObjectParam(param); - return paramNodes.map((refParam) => - ts.factory.createBindingElement( - undefined, - undefined, - ts.factory.createIdentifier( - refParam.name, - ), - undefined, - ), - ); - }), - ), - undefined, - undefined, - undefined, - ), - ] - : [], + [ + ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier("clientOptions"), + undefined, + undefined, + undefined, + ), + ], undefined, - ts.factory.createToken( - ts.SyntaxKind.EqualsGreaterThanToken, - ), + EqualsOrGreaterThanToken, ts.factory.createAsExpression( ts.factory.createAsExpression( ts.factory.createCallExpression( ts.factory.createIdentifier(methodName), - undefined, - getVariableArrowFunctionParameters(method) - .length !== 0 - ? [ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters( - method, - ).flatMap((params) => { - const paramNodes = - extractPropertiesFromObjectParam( - params, - ); - return paramNodes.map((refParam) => - ts.factory.createShorthandPropertyAssignment( - refParam.name, - ), - ); - }), - ), - ] - : [], + getVariableArrowFunctionParameters(method).length > + 0 + ? [ts.factory.createIdentifier("clientOptions")] + : undefined, ), ts.factory.createKeywordTypeNode( ts.SyntaxKind.UnknownKeyword, diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index df5deea..e2a9bb2 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -75,10 +75,12 @@ export const createApiResponseType = ({ export function getRequestParamFromMethod( method: VariableDeclaration, pageParam?: string, + modelNames: string[] = [], ) { if (!getVariableArrowFunctionParameters(method).length) { return null; } + const methodName = getNameFromVariable(method); const params = getVariableArrowFunctionParameters(method).flatMap((param) => { const paramNodes = extractPropertiesFromObjectParam(param); @@ -87,6 +89,7 @@ export function getRequestParamFromMethod( .filter((p) => p.name !== pageParam) .map((refParam) => ({ name: refParam.name, + // TODO: Client -> Client typeName: getShortType(refParam.type?.getText() ?? ""), optional: refParam.optional, })); @@ -97,29 +100,17 @@ export function getRequestParamFromMethod( return ts.factory.createParameterDeclaration( undefined, undefined, - ts.factory.createObjectBindingPattern( - params.map((refParam) => - ts.factory.createBindingElement( - undefined, - undefined, - ts.factory.createIdentifier(refParam.name), - undefined, - ), - ), - ), + // options + ts.factory.createIdentifier("clientOptions"), undefined, - ts.factory.createTypeLiteralNode( - params.map((refParam) => { - return ts.factory.createPropertySignature( - undefined, - ts.factory.createIdentifier(refParam.name), - refParam.optional - ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) - : undefined, - ts.factory.createTypeReferenceNode(refParam.typeName), - ); - }), - ), + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Options"), [ + ts.factory.createTypeReferenceNode( + modelNames.includes(`${capitalizeFirstLetter(methodName)}Data`) + ? `${capitalizeFirstLetter(methodName)}Data` + : "unknown", + ), + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("true")), + ]), // if all params are optional, we create an empty object literal // so the hook can be called without any parameters areAllPropertiesOptional @@ -359,24 +350,10 @@ export function createQueryHook({ ts.factory.createCallExpression( BuildCommonTypeName(getQueryKeyFnName(queryKey)), undefined, - getVariableArrowFunctionParameters(method).length - ? [ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters( - method, - ).flatMap((param) => - extractPropertiesFromObjectParam(param) - .filter((p) => p.name !== pageParam) - .map((p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), - ), - ), - ), - ), - ts.factory.createIdentifier("queryKey"), - ] - : [ts.factory.createIdentifier("queryKey")], + [ + ts.factory.createIdentifier("clientOptions"), + ts.factory.createIdentifier("queryKey"), + ], ), ), ts.factory.createPropertyAssignment( @@ -410,39 +387,60 @@ export function createQueryHook({ ts.factory.createCallExpression( ts.factory.createIdentifier(methodName), undefined, - getVariableArrowFunctionParameters(method).length + pageParam && isInfiniteQuery ? [ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters( - method, - ).flatMap((param) => - extractPropertiesFromObjectParam( - param, - ).map((p) => - p.name === pageParam - ? ts.factory.createPropertyAssignment( + // { ...clientOptions, query: { ...clientOptions.query, page: pageParam as number } } + ts.factory.createObjectLiteralExpression([ + ts.factory.createSpreadAssignment( + ts.factory.createIdentifier( + "clientOptions", + ), + ), + ts.factory.createPropertyAssignment( + ts.factory.createIdentifier("query"), + ts.factory.createObjectLiteralExpression( + [ + ts.factory.createSpreadAssignment( + ts.factory.createPropertyAccessExpression( ts.factory.createIdentifier( - p.name, + "clientOptions", ), - ts.factory.createAsExpression( - ts.factory.createIdentifier( - "pageParam", - ), - ts.factory.createKeywordTypeNode( - ts.SyntaxKind.NumberKeyword, - ), + ts.factory.createIdentifier( + "query", ), - ) - : ts.factory.createShorthandPropertyAssignment( + ), + ), + ts.factory.createPropertyAssignment( + ts.factory.createIdentifier( + pageParam, + ), + ts.factory.createAsExpression( ts.factory.createIdentifier( - p.name, + "pageParam", + ), + ts.factory.createKeywordTypeNode( + ts.SyntaxKind.NumberKeyword, ), ), + ), + ], ), ), - ), + ]), ] - : undefined, + : // { ...clientOptions } + getVariableArrowFunctionParameters(method) + .length > 0 + ? [ + ts.factory.createObjectLiteralExpression([ + ts.factory.createSpreadAssignment( + ts.factory.createIdentifier( + "clientOptions", + ), + ), + ]), + ] + : undefined, ), ts.factory.createIdentifier("then"), ), @@ -502,6 +500,8 @@ export const createUseQuery = ( pageParam: string, nextPageParam: string, initialPageParam: string, + paginatableMethods: string[], + modelNames: string[], ) => { const methodName = getNameFromVariable(method); const queryKey = createQueryKeyFromMethod({ method }); @@ -510,19 +510,15 @@ export const createUseQuery = ( methodName, }); - const requestParam = getRequestParamFromMethod(method); - const infiniteRequestParam = getRequestParamFromMethod(method, pageParam); + const requestParam = getRequestParamFromMethod(method, undefined, modelNames); + const infiniteRequestParam = getRequestParamFromMethod( + method, + pageParam, + modelNames, + ); const requestParams = requestParam ? [requestParam] : []; - const requestParamNames = requestParams - .filter((p) => p.name.kind === ts.SyntaxKind.ObjectBindingPattern) - .map((p) => p.name as ts.ObjectBindingPattern); - const requestParamTexts = requestParamNames - .at(0) - ?.elements.filter((e) => e.name.kind === ts.SyntaxKind.Identifier) - .map((e) => (e.name as ts.Identifier).escapedText as string); - const queryHook = createQueryHook({ queryString: "useQuery", suffix: "", @@ -538,7 +534,8 @@ export const createUseQuery = ( requestParams, method, }); - const isInfiniteQuery = requestParamTexts?.includes(pageParam) ?? false; + const isInfiniteQuery = paginatableMethods.includes(methodName); + const infiniteQueryHook = isInfiniteQuery ? createQueryHook({ queryString: "useInfiniteQuery", @@ -633,19 +630,12 @@ function queryKeyFn( ts.factory.createIdentifier("queryKey"), ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken), getVariableArrowFunctionParameters(method) - ? ts.factory.createArrayLiteralExpression([ - ts.factory.createObjectLiteralExpression( - getVariableArrowFunctionParameters(method).flatMap( - (param) => - extractPropertiesFromObjectParam(param).map((p) => - ts.factory.createShorthandPropertyAssignment( - ts.factory.createIdentifier(p.name), - ), - ), - ), - ), + ? // [...clientOptions] + ts.factory.createArrayLiteralExpression([ + ts.factory.createIdentifier("clientOptions"), ]) - : ts.factory.createArrayLiteralExpression([]), + : // [] + ts.factory.createArrayLiteralExpression(), ), ), ), diff --git a/src/service.mts b/src/service.mts index 4b42f7c..8baa695 100644 --- a/src/service.mts +++ b/src/service.mts @@ -24,7 +24,7 @@ export async function getServices(project: Project): Promise { } satisfies Service; } -function getMethodsFromService(node: SourceFile): FunctionDescription[] { +export function getMethodsFromService(node: SourceFile): FunctionDescription[] { const variableStatements = node.getVariableStatements(); // The first variable statement is `const client = createClient(createConfig())`, so we skip it diff --git a/tests/__snapshots__/createSource.test.ts.snap b/tests/__snapshots__/createSource.test.ts.snap index d63a6ed..cbd8243 100644 --- a/tests/__snapshots__/createSource.test.ts.snap +++ b/tests/__snapshots__/createSource.test.ts.snap @@ -17,28 +17,19 @@ import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddP export type FindPetsDefaultResponse = Awaited>["data"]; export type FindPetsQueryResult = UseQueryResult; export const useFindPetsKey = "FindPets"; -export const UseFindPetsKeyFn = ({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [{ query, client }])]; +export const UseFindPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; export type GetNotDefinedDefaultResponse = Awaited>["data"]; export type GetNotDefinedQueryResult = UseQueryResult; export const useGetNotDefinedKey = "GetNotDefined"; -export const UseGetNotDefinedKeyFn = ({}: {} = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [{}])]; +export const UseGetNotDefinedKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [clientOptions])]; export type FindPetByIdDefaultResponse = Awaited>["data"]; export type FindPetByIdQueryResult = UseQueryResult; export const useFindPetByIdKey = "FindPetById"; -export const UseFindPetByIdKeyFn = ({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [{ path, client }])]; +export const UseFindPetByIdKeyFn = (clientOptions: Options, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; export type FindPaginatedPetsQueryResult = UseQueryResult; export const useFindPaginatedPetsKey = "FindPaginatedPets"; -export const UseFindPaginatedPetsKeyFn = ({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [{ query, client }])]; +export const UseFindPaginatedPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; export type PostNotDefinedMutationResult = Awaited>; export type DeletePetMutationResult = Awaited>; @@ -52,32 +43,13 @@ import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; -export const useFindPets = = unknown[]>({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefined = = unknown[]>({}: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); -export const useFindPetById = = unknown[]>({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPets = = unknown[]>({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ body }) => addPet({ body }) as unknown as Promise, ...options }); -export const usePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({}) => postNotDefined({}) as unknown as Promise, ...options }); -export const useDeletePet = (options?: Omit & Config & { headers: Headers; }>; -}, TContext>, "mutationFn">) => useMutation & Config & { headers: Headers; }>; -}, TContext>({ mutationFn: ({ path, client }) => deletePet({ path, client }) as unknown as Promise, ...options }); +export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); " `; @@ -88,19 +60,10 @@ import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; -export const useFindPetsSuspense = = unknown[]>({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefinedSuspense = = unknown[]>({}: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); -export const useFindPetByIdSuspense = = unknown[]>({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPetsSuspense = = unknown[]>({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); " `; @@ -111,18 +74,9 @@ import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; -export const prefetchUseFindPets = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); -export const prefetchUseGetNotDefined = (queryClient: QueryClient, {}: {} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); -export const prefetchUseFindPetById = (queryClient: QueryClient, { path, client }: { - path: { id: number; }; - client?: Client; -}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); -export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); +export const prefetchUseFindPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseGetNotDefined = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPetById = (queryClient: QueryClient, clientOptions: Options) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); " `; diff --git a/tests/__snapshots__/generate.test.ts.snap b/tests/__snapshots__/generate.test.ts.snap index d52f9fd..923d6fe 100644 --- a/tests/__snapshots__/generate.test.ts.snap +++ b/tests/__snapshots__/generate.test.ts.snap @@ -3,34 +3,25 @@ exports[`generate > common.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Client } from "@hey-api/client-fetch"; +import { Options } from "@hey-api/client-fetch"; import { UseQueryResult } from "@tanstack/react-query"; import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; export type FindPetsDefaultResponse = Awaited>["data"]; export type FindPetsQueryResult = UseQueryResult; export const useFindPetsKey = "FindPets"; -export const UseFindPetsKeyFn = ({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [{ query, client }])]; +export const UseFindPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; export type GetNotDefinedDefaultResponse = Awaited>["data"]; export type GetNotDefinedQueryResult = UseQueryResult; export const useGetNotDefinedKey = "GetNotDefined"; -export const UseGetNotDefinedKeyFn = ({ }: {} = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [{}])]; +export const UseGetNotDefinedKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [clientOptions])]; export type FindPetByIdDefaultResponse = Awaited>["data"]; export type FindPetByIdQueryResult = UseQueryResult; export const useFindPetByIdKey = "FindPetById"; -export const UseFindPetByIdKeyFn = ({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [{ path, client }])]; +export const UseFindPetByIdKeyFn = (clientOptions: Options, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; export type FindPaginatedPetsQueryResult = UseQueryResult; export const useFindPaginatedPetsKey = "FindPaginatedPets"; -export const UseFindPaginatedPetsKeyFn = ({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [{ query, client }])]; +export const UseFindPaginatedPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; export type PostNotDefinedMutationResult = Awaited>; export type DeletePetMutationResult = Awaited>; @@ -40,23 +31,15 @@ export type DeletePetMutationResult = Awaited>; exports[`generate > ensureQueryData.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Client } from "@hey-api/client-fetch"; +import { Options } from "@hey-api/client-fetch"; import { type QueryClient } from "@tanstack/react-query"; import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; +import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; import * as Common from "./common"; -export const ensureUseFindPetsData = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); -export const ensureUseGetNotDefinedData = (queryClient: QueryClient, { }: {} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); -export const ensureUseFindPetByIdData = (queryClient: QueryClient, { path, client }: { - path: { id: number; }; - client?: Client; -}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); -export const ensureUseFindPaginatedPetsData = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); +export const ensureUseFindPetsData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); +export const ensureUseGetNotDefinedData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); +export const ensureUseFindPetByIdData = (queryClient: QueryClient, clientOptions: Options) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); +export const ensureUseFindPaginatedPetsData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); " `; @@ -71,88 +54,64 @@ export * from "./queries"; exports[`generate > infiniteQueries.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 +import { Options } from "@hey-api/client-fetch"; +import { findPaginatedPets } from "../requests/services.gen"; +import { FindPaginatedPetsData } from "../requests/types.gen"; +import * as Common from "./common"; +export const useFindPaginatedPetsInfinite = , TError = unknown, TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useInfiniteQuery({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: ({ pageParam }) => findPaginatedPets({ ...clientOptions, query: { ...clientOptions.query, page: pageParam as number } }).then(response => response.data as TData) as TData, initialPageParam: "initial", getNextPageParam: response => (response as { + meta: { + next: number; + }; + }).meta.next, ...options +}); " `; exports[`generate > prefetch.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Client } from "@hey-api/client-fetch"; +import { Options } from "@hey-api/client-fetch"; import { type QueryClient } from "@tanstack/react-query"; import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; +import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; import * as Common from "./common"; -export const prefetchUseFindPets = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }), queryFn: () => findPets({ query, client }) }); -export const prefetchUseGetNotDefined = (queryClient: QueryClient, { }: {} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}), queryFn: () => getNotDefined({}) }); -export const prefetchUseFindPetById = (queryClient: QueryClient, { path, client }: { - path: { id: number; }; - client?: Client; -}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }), queryFn: () => findPetById({ path, client }) }); -export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, { query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }), queryFn: () => findPaginatedPets({ query, client }) }); +export const prefetchUseFindPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseGetNotDefined = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPetById = (queryClient: QueryClient, clientOptions: Options) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); " `; exports[`generate > queries.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Client, Config, RequestOptionsBase } from "@hey-api/client-fetch"; +import { Options } from "@hey-api/client-fetch"; import { useMutation, UseMutationOptions, useQuery, UseQueryOptions } from "@tanstack/react-query"; import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; -import { NewPet } from "../requests/types.gen"; +import { AddPetData, DeletePetData, FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; import * as Common from "./common"; -export const useFindPets = = unknown[]>({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefined = = unknown[]>({ }: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); -export const useFindPetById = = unknown[]>({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPets = = unknown[]>({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ body }) => addPet({ body }) as unknown as Promise, ...options }); -export const usePostNotDefined = (options?: Omit, "mutationFn">) => useMutation({ mutationFn: ({ }) => postNotDefined({}) as unknown as Promise, ...options }); -export const useDeletePet = (options?: Omit & Config & { headers: Headers; }>; -}, TContext>, "mutationFn">) => useMutation & Config & { headers: Headers; }>; -}, TContext>({ mutationFn: ({ path, client }) => deletePet({ path, client }) as unknown as Promise, ...options }); +export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); " `; exports[`generate > suspense.ts 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Client } from "@hey-api/client-fetch"; +import { Options } from "@hey-api/client-fetch"; import { UseQueryOptions, useSuspenseQuery } from "@tanstack/react-query"; import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; +import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; import * as Common from "./common"; -export const useFindPetsSuspense = = unknown[]>({ query, client }: { - query?: { limit?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn({ query, client }, queryKey), queryFn: () => findPets({ query, client }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefinedSuspense = = unknown[]>({ }: {} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn({}, queryKey), queryFn: () => getNotDefined({}).then(response => response.data as TData) as TData, ...options }); -export const useFindPetByIdSuspense = = unknown[]>({ path, client }: { - path: { id: number; }; - client?: Client; -}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn({ path, client }, queryKey), queryFn: () => findPetById({ path, client }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPetsSuspense = = unknown[]>({ query, client }: { - query?: { limit?: number; page?: number; tags?: string[]; }; - client?: Client; -} = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn({ query, client }, queryKey), queryFn: () => findPaginatedPets({ query, client }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); " `; diff --git a/tests/common.test.ts b/tests/common.test.ts index 9af48a3..ccbe714 100644 --- a/tests/common.test.ts +++ b/tests/common.test.ts @@ -1,19 +1,25 @@ -import type { - ClassDeclaration, - MethodDeclaration, - SourceFile, - VariableDeclaration, +import { + type ClassDeclaration, + Project, + type SourceFile, + type VariableDeclaration, } from "ts-morph"; +import { factory } from "typescript"; import { describe, expect, test, vi } from "vitest"; import type { LimitedUserConfig } from "../src/cli.mts"; import { BuildCommonTypeName, + buildQueriesOutputPath, + buildRequestsOutputPath, capitalizeFirstLetter, + exists, + extractPropertiesFromObjectParam, formatOptions, getClassNameFromClassNode, getClassesFromService, getNameFromVariable, getShortType, + getVariableArrowFunctionParameters, lowercaseFirstLetter, safeParseNumber, } from "../src/common.mts"; @@ -49,6 +55,12 @@ describe("common", () => { expect(result.escapedText).toBe("Common.Name"); }); + test("buildCommonTypeName - identifier", () => { + const name = factory.createIdentifier("Name"); + const result = BuildCommonTypeName(name); + expect(result.escapedText).toBe("Common.Name"); + }); + describe("getShortType", () => { test("linux", () => { const type = 'import("/my/absolute/path").MyType'; @@ -102,6 +114,9 @@ describe("common", () => { output: "output", // biome-ignore lint: test debug: "false" as any, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -114,6 +129,9 @@ describe("common", () => { output: "output", // biome-ignore lint: test debug: "true" as any, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -124,6 +142,9 @@ describe("common", () => { const options: LimitedUserConfig = { input: "input", output: "output", + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -136,6 +157,9 @@ describe("common", () => { output: "output", // biome-ignore lint: test debug: "123" as any, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -149,6 +173,9 @@ describe("common", () => { // biome-ignore lint: test debug: "123" as any, lint: "eslint", + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -161,6 +188,9 @@ describe("common", () => { output: "output", // biome-ignore lint: test debug: Number.NaN as any, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -172,6 +202,9 @@ describe("common", () => { input: "input", output: "output", debug: true, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -183,6 +216,9 @@ describe("common", () => { input: "input", output: "output", debug: false, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", }; const formatted = formatOptions(options); @@ -257,4 +293,72 @@ describe("common", () => { "Variable name not found", ); }); + + test("getVariableArrowFunctionParameters", async () => { + const source = "const test = (queryClient: QueryClient) => {}"; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + const method = sourceFile.getVariableDeclarations()[0]; + const result = getVariableArrowFunctionParameters(method); + expect(result[0].getName()).toStrictEqual("queryClient"); + }); + + test('getVariableArrowFunctionParameters - throw error "Initializer is not an arrow function"', async () => { + const source = 'const foo = "bar"'; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + const method = sourceFile.getVariableDeclarations()[0]; + expect(() => getVariableArrowFunctionParameters(method)).toThrowError( + "Initializer is not an arrow function", + ); + }); + + test('getVariableArrowFunctionParameters - throw error "Initializer not found"', async () => { + const source = "const foo"; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + const method = sourceFile.getVariableDeclarations()[0]; + expect(() => getVariableArrowFunctionParameters(method)).toThrowError( + "Initializer not found", + ); + }); + + test("extractPropertiesFromObjectParam", async () => { + const source = ` + type Params = { limit: number; offset: number; }; + const test = (params: Params) => {} + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + const method = sourceFile.getVariableDeclarations()[0]; + const params = getVariableArrowFunctionParameters(method); + const props = extractPropertiesFromObjectParam(params[0]); + expect(props.map((p) => p.name)).toStrictEqual(["limit", "offset"]); + }); + + test("exists - file exists", async () => { + const f = "tests/common.test.ts"; + const result = await exists(f); + expect(result).toBe(true); + }); + + test("exists - file does not exist", async () => { + const f = "tests/nonexistent.test.ts"; + const result = await exists(f); + expect(result).toBe(false); + }); + + test("buildRequestsOutputPath", async () => { + const output = "output"; + const result = buildRequestsOutputPath(output); + // windows: output\requests | linux/mac: output/requests + expect(result).toMatch(/output[/\\]requests/); + }); + + test("buildQueriesOutputPath", async () => { + const output = "output"; + const result = buildQueriesOutputPath(output); + // windows: output\queries | linux/mac: output/queries + expect(result).toMatch(/output[/\\]queries/); + }); }); diff --git a/tests/service.test.ts b/tests/service.test.ts index 842e977..b4f254d 100644 --- a/tests/service.test.ts +++ b/tests/service.test.ts @@ -1,7 +1,7 @@ import path from "node:path"; import { Project } from "ts-morph"; import { afterAll, beforeAll, describe, expect, test } from "vitest"; -import { getServices } from "../src/service.mjs"; +import { getMethodsFromService, getServices } from "../src/service.mjs"; import { cleanOutputs, generateTSClients } from "./utils"; const fileName = "service"; describe(fileName, () => { @@ -38,4 +38,69 @@ describe(fileName, () => { "No service node found", ); }); + + test('getMethodsFromService - throw error "Arrow function not found"', async () => { + const source = ` + const client = createClient(createConfig()) + const foo = "bar" + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + + await expect(() => getMethodsFromService(sourceFile)).toThrowError( + "Arrow function not found", + ); + }); + + test('getMethodsFromService - throw error "Initializer not found"', async () => { + const source = ` + const client = createClient(createConfig()) + const foo + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + + await expect(() => getMethodsFromService(sourceFile)).toThrowError( + "Initializer not found", + ); + }); + + test('getMethodsFromService - throw error "Return statement not found"', async () => { + const source = ` + const client = createClient(createConfig()) + const foo = () => {} + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + + await expect(() => getMethodsFromService(sourceFile)).toThrowError( + "Return statement not found", + ); + }); + + test('getMethodsFromService - throw error "Call expression not found"', async () => { + const source = ` + const client = createClient(createConfig()) + const foo = () => { return } + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + + await expect(() => getMethodsFromService(sourceFile)).toThrowError( + "Call expression not found", + ); + }); + + test('getMethodsFromService - throw error "Method block not found"', async () => { + const source = ` + const client = createClient(createConfig()) + const foo = () => + `; + const project = new Project(); + const sourceFile = project.createSourceFile("test.ts", source); + + await expect(() => getMethodsFromService(sourceFile)).toThrowError( + "Method block not found", + ); + }); }); diff --git a/vitest.config.ts b/vitest.config.ts index 22b6847..b06deae 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,7 +8,7 @@ export default defineConfig({ reportOnFailure: true, thresholds: { lines: 95, - functions: 95, + functions: 90, statements: 95, branches: 85, }, From 7120b20da503057030dfccf417b9be59c37a987e Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Sat, 12 Oct 2024 20:06:22 +0900 Subject: [PATCH 3/6] Fix unknown error type (#159) --- .github/workflows/test.yml | 20 +- README.md | 74 +-- examples/nextjs-app/package.json | 4 +- examples/react-app/package.json | 4 +- examples/react-app/src/App.tsx | 39 +- examples/react-app/src/axios.ts | 1 + examples/react-app/src/index.css | 17 + examples/react-app/tsconfig.json | 5 +- examples/react-app/tsconfig.openapi.json | 18 - examples/tanstack-router-app/package.json | 3 +- package.json | 4 +- pnpm-lock.yaml | 19 +- src/cli.mts | 16 +- src/createExports.mts | 38 +- src/createImports.mts | 23 + src/createSource.mts | 33 +- src/createUseMutation.mts | 28 +- src/createUseQuery.mts | 78 ++- src/generate.mts | 7 +- tests/__snapshots__/createSource.test.ts.snap | 117 ++++- tests/__snapshots__/generate.test.ts.snap | 493 +++++++++++++++--- tests/createExports.test.ts | 9 +- tests/createSource.test.ts | 29 +- tests/generate.test.ts | 4 +- vitest.config.ts | 4 +- 25 files changed, 832 insertions(+), 255 deletions(-) delete mode 100644 examples/react-app/tsconfig.openapi.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7456104..d2804bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,18 +33,30 @@ jobs: - name: Build run: pnpm -w build - - name: Run codegen + - name: Run codegen for react-app run: pnpm --filter @7nohe/react-app generate:api - - name: Archive generated query file + - name: Run codegen for nextjs-app + run: pnpm --filter nextjs-app generate:api + + - name: Run codegen for tanstack-router-app + run: pnpm --filter tanstack-router-app generate:api + + - name: Archive generated query files uses: actions/upload-artifact@v4 with: name: generated-query-file-${{ matrix.os }} - path: examples/react-app/openapi/queries/index.ts + path: examples/react-app/openapi/queries - - name: Run tsc + - name: Run tsc in react-app run: pnpm --filter @7nohe/react-app test:generated + - name: Run tsc in nextjs-app + run: pnpm --filter nextjs-app test:generated + + - name: Run tsc in tanstack-router-app + run: pnpm --filter tanstack-router-app test:generated + - name: Run biome run: pnpm biome check . if: ${{ matrix.os == 'ubuntu-latest' }} diff --git a/README.md b/README.md index 218f2a1..3f849de 100644 --- a/README.md +++ b/README.md @@ -47,12 +47,10 @@ Options: -i, --input OpenAPI specification, can be a path, url or string content (required) -o, --output Output directory (default: "openapi") -c, --client HTTP client to generate (choices: "@hey-api/client-fetch", "@hey-api/client-axios", default: "@hey-api/client-fetch") - --request Path to custom request file --format Process output folder with formatter? (choices: "biome", "prettier") --lint Process output folder with linter? (choices: "biome", "eslint") --operationId Use operation ID to generate operation names? --serviceResponse Define shape of returned value from service calls (choices: "body", "response", default: "body") - --base Manually set base in OpenAPI config instead of inferring from server value --enums Generate JavaScript objects from enum definitions? (choices: "javascript", "typescript") --useDateType Use Date type instead of string for date types for models, this will not convert the data to a Date object --debug Run in debug mode? @@ -94,9 +92,9 @@ $ openapi-rq -i ./petstore.yaml ```tsx // App.tsx -import { usePetServiceFindPetsByStatus } from "../openapi/queries"; +import { useFindPets } from "../openapi/queries"; function App() { - const { data } = usePetServiceFindPetsByStatus({ status: ["available"] }); + const { data } = useFindPets(); return (
      @@ -113,16 +111,16 @@ export default App; ```tsx import { useQuery } from "@tanstack/react-query"; -import { PetService } from "../openapi/requests/services"; -import { usePetServiceFindPetsByStatusKey } from "../openapi/queries"; +import { findPets } from "../openapi/requests/services.gen"; +import { useFindPetsKey } from "../openapi/queries"; function App() { // You can still use the auto-generated query key const { data } = useQuery({ - queryKey: [usePetServiceFindPetsByStatusKey], + queryKey: [useFindPetsKey], queryFn: () => { // Do something here - return PetService.findPetsByStatus(["available"]); + return findPets(); }, }); @@ -136,9 +134,11 @@ export default App; ```tsx // App.tsx -import { useDefaultClientFindPetsSuspense } from "../openapi/queries/suspense"; +import { useFindPetsSuspense } from "../openapi/queries/suspense"; function ChildComponent() { - const { data } = useDefaultClientFindPetsSuspense({ tags: [], limit: 10 }); + const { data } = useFindPetsSuspense({ + query: { tags: [], limit: 10 }, + }); return
        {data?.map((pet, index) =>
      • {pet.name}
      • )}
      ; } @@ -169,13 +169,13 @@ export default App; ```tsx // App.tsx -import { usePetServiceAddPet } from "../openapi/queries"; +import { useAddPet } from "../openapi/queries"; function App() { - const { mutate } = usePetServiceAddPet(); + const { mutate } = useAddPet(); const handleAddPet = () => { - mutate({ name: "Fluffy", status: "available" }); + mutate({ body: { name: "Fluffy" } }); }; return ( @@ -199,22 +199,22 @@ To ensure the query key is created the same way as the query hook, you can use t ```tsx import { - usePetServiceFindPetsByStatus, - usePetServiceAddPet, - UsePetServiceFindPetsByStatusKeyFn, + useFindPetsByStatus, + useAddPet, + UseFindPetsByStatusKeyFn, } from "../openapi/queries"; // App.tsx function App() { const [status, setStatus] = React.useState(["available"]); - const { data } = usePetServiceFindPetsByStatus({ status }); - const { mutate } = usePetServiceAddPet({ + const { data } = useFindPetsByStatus({ status }); + const { mutate } = useAddPet({ onSuccess: () => { queryClient.invalidateQueries({ // Call the query key function to get the query key // This is important to ensure the query key is created the same way as the query hook // This insures the cache is invalidated correctly and is typed correctly - queryKey: [UsePetServiceFindPetsByStatusKeyFn({ + queryKey: [UseFindPetsByStatusKeyFn({ status })], }); @@ -299,42 +299,13 @@ paths: Usage of Generated Hooks: ```ts -import { useDefaultServiceFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; +import { useFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; -const { data, fetchNextPage } = useDefaultServiceFindPaginatedPetsInfinite({ - limit: 10, - tags: [], +const { data, fetchNextPage } = useFindPaginatedPetsInfinite({ + query: { tags: [], limit: 10 } }); ``` -##### Runtime Configuration - -You can modify the default values used by the generated service calls by modifying the OpenAPI configuration singleton object. - -It's default location is `openapi/requests/core/OpenAPI.ts` and it is also exported from `openapi/index.ts` - -Import the constant into your runtime and modify it before setting up the react app. - -```typescript -/** main.tsx */ -import { OpenAPI as OpenAPIConfig } from './openapi/requests/core/OpenAPI'; -... -OpenAPIConfig.BASE = 'www.domain.com/api'; -OpenAPIConfig.HEADERS = { - 'x-header-1': 'value-1', - 'x-header-2': 'value-2', -}; -... -ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - - - - - -); - -``` - ## Development ### Install dependencies @@ -364,6 +335,7 @@ pnpm snapshot ``` ### Build example and validate generated code + ```bash npm run build && pnpm --filter @7nohe/react-app generate:api && pnpm --filter @7nohe/react-app test:generated ``` diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 08e8db6..366d0d5 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -9,12 +9,12 @@ "build": "next build", "start": "next start", "lint": "next lint", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome" + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome", + "test:generated": "tsc -p ./tsconfig.json --noEmit" }, "dependencies": { "@tanstack/react-query": "^5.32.1", "@tanstack/react-query-devtools": "^5.32.1", - "axios": "^1.6.7", "next": "^14.2.3", "react": "^18", "react-dom": "^18" diff --git a/examples/react-app/package.json b/examples/react-app/package.json index c68ec7c..d06642b 100644 --- a/examples/react-app/package.json +++ b/examples/react-app/package.json @@ -10,12 +10,12 @@ "build": "tsc && vite build", "preview": "vite preview", "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome -c @hey-api/client-axios", - "test:generated": "tsc -p ./tsconfig.openapi.json --noEmit" + "test:generated": "tsc -p ./tsconfig.json --noEmit" }, "dependencies": { "@hey-api/client-axios": "^0.2.7", "@tanstack/react-query": "^5.32.1", - "axios": "^1.6.7", + "axios": "^1.7.7", "form-data": "~4.0.0", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/examples/react-app/src/App.tsx b/examples/react-app/src/App.tsx index d1f45d2..68f4bf3 100644 --- a/examples/react-app/src/App.tsx +++ b/examples/react-app/src/App.tsx @@ -29,7 +29,10 @@ function App() { const { data: notDefined } = useGetNotDefined(); const { mutate: mutateNotDefined } = usePostNotDefined(); - const { mutate: addPet } = useAddPet(); + const { mutate: addPet, isError } = useAddPet(); + + const [text, setText] = useState(""); + const [errorText, setErrorText] = useState(); if (error) return ( @@ -44,18 +47,18 @@ function App() { return (

      Pet List

      -
        - {Array.isArray(data) && - data?.map((pet, index) => ( -
      • {pet.name}
      • - ))} -
      + setText(e.target.value)} + /> + {isError && ( +

      + {errorText} +

      + )} +
        + {Array.isArray(data) && + data?.map((pet, index) => ( +
      • {pet.name}
      • + ))} +

      Suspense Components

      diff --git a/examples/react-app/src/axios.ts b/examples/react-app/src/axios.ts index e767177..22aaac4 100644 --- a/examples/react-app/src/axios.ts +++ b/examples/react-app/src/axios.ts @@ -2,4 +2,5 @@ import { client } from "../openapi/requests/services.gen"; client.setConfig({ baseURL: "http://localhost:4010", + throwOnError: true, }); diff --git a/examples/react-app/src/index.css b/examples/react-app/src/index.css index 917888c..c5239e6 100644 --- a/examples/react-app/src/index.css +++ b/examples/react-app/src/index.css @@ -68,3 +68,20 @@ button:focus-visible { background-color: #f9f9f9; } } + +input { + border-radius: 8px; + border: 1px solid #ccc; + padding: 0.5em; + font-size: 1em; + font-family: inherit; + background-color: #fff; + color: #000; + transition: border-color 0.25s; + margin: 1em; +} + +input:focus { + border-color: #646cff; + outline: none; +} \ No newline at end of file diff --git a/examples/react-app/tsconfig.json b/examples/react-app/tsconfig.json index 374b672..4e730f0 100644 --- a/examples/react-app/tsconfig.json +++ b/examples/react-app/tsconfig.json @@ -18,7 +18,8 @@ }, "include": ["src"], "references": [ - { "path": "./tsconfig.node.json" }, - { "path": "./tsconfig.openapi.json" } + { + "path": "./tsconfig.node.json" + } ] } diff --git a/examples/react-app/tsconfig.openapi.json b/examples/react-app/tsconfig.openapi.json deleted file mode 100644 index 89de92d..0000000 --- a/examples/react-app/tsconfig.openapi.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "target": "ESNext", - "useDefineForClassFields": true, - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node10", - "resolveJsonModule": true, - "isolatedModules": true - }, - "include": ["openapi"] -} diff --git a/examples/tanstack-router-app/package.json b/examples/tanstack-router-app/package.json index 1904496..2d6f2a8 100644 --- a/examples/tanstack-router-app/package.json +++ b/examples/tanstack-router-app/package.json @@ -11,7 +11,8 @@ "build": "vite build", "serve": "vite preview", "start": "vite", - "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome" + "generate:api": "rimraf ./openapi && node ../../dist/cli.mjs -i ../petstore.yaml --format=biome --lint=biome", + "test:generated": "tsc -p ./tsconfig.json --noEmit" }, "devDependencies": { "@stoplight/prism-cli": "^5.5.2", diff --git a/package.json b/package.json index 6f4b8a1..7e58b45 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,9 @@ "build": "rimraf dist && tsc -p tsconfig.json", "lint": "biome check .", "lint:fix": "biome check --write .", - "preview": "npm run build && npm -C examples/react-app run generate:api", + "preview:react": "npm run build && npm -C examples/react-app run generate:api", + "preview:nextjs": "npm run build && npm -C examples/nextjs-app run generate:api", + "preview:tanstack-router": "npm run build && npm -C examples/tanstack-router-app run generate:api", "prepublishOnly": "npm run build", "release": "npx git-ensure -a && npx bumpp --commit --tag --push", "test": "vitest --coverage.enabled true", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3aa9ef4..fe8d542 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,9 +63,6 @@ importers: '@tanstack/react-query-devtools': specifier: ^5.32.1 version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) - axios: - specifier: ^1.6.7 - version: 1.7.2 next: specifier: ^14.2.3 version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -105,13 +102,13 @@ importers: dependencies: '@hey-api/client-axios': specifier: ^0.2.7 - version: 0.2.7(axios@1.7.2) + version: 0.2.7(axios@1.7.7) '@tanstack/react-query': specifier: ^5.32.1 version: 5.45.0(react@18.3.1) axios: - specifier: ^1.6.7 - version: 1.7.2 + specifier: ^1.7.7 + version: 1.7.7 form-data: specifier: ~4.0.0 version: 4.0.0 @@ -1857,8 +1854,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -5079,9 +5076,9 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@hey-api/client-axios@0.2.7(axios@1.7.2)': + '@hey-api/client-axios@0.2.7(axios@1.7.7)': dependencies: - axios: 1.7.2 + axios: 1.7.7 '@hey-api/client-fetch@0.4.0': {} @@ -6190,7 +6187,7 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axios@1.7.2: + axios@1.7.7: dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 diff --git a/src/cli.mts b/src/cli.mts index 4ca7b06..fc587e5 100644 --- a/src/cli.mts +++ b/src/cli.mts @@ -11,20 +11,11 @@ const program = new Command(); export type LimitedUserConfig = { input: string; output: string; - client?: - | "legacy/angular" - | "legacy/axios" - | "legacy/fetch" - | "legacy/node" - | "legacy/xhr" - | "@hey-api/client-fetch" - | "@hey-api/client-axios"; - request?: string; + client?: "@hey-api/client-fetch" | "@hey-api/client-axios"; format?: "biome" | "prettier"; lint?: "biome" | "eslint"; operationId?: boolean; serviceResponse?: "body" | "response"; - base?: string; enums?: "javascript" | "typescript" | false; useDateType?: boolean; debug?: boolean; @@ -56,7 +47,6 @@ async function setupProgram() { .choices(["@hey-api/client-fetch", "@hey-api/client-axios"]) .default("@hey-api/client-fetch"), ) - .option("--request ", "Path to custom request file") .addOption( new Option( "--format ", @@ -78,10 +68,6 @@ async function setupProgram() { .choices(["body", "response"]) .default("body"), ) - .option( - "--base ", - "Manually set base in OpenAPI config instead of inferring from server value", - ) .addOption( new Option( "--enums ", diff --git a/src/createExports.mts b/src/createExports.mts index 334c612..90dc93b 100644 --- a/src/createExports.mts +++ b/src/createExports.mts @@ -1,3 +1,4 @@ +import type { UserConfig } from "@hey-api/openapi-ts"; import type { Project } from "ts-morph"; import ts from "typescript"; import { capitalizeFirstLetter } from "./common.mjs"; @@ -7,13 +8,21 @@ import { createUseMutation } from "./createUseMutation.mjs"; import { createUseQuery } from "./createUseQuery.mjs"; import type { Service } from "./service.mjs"; -export const createExports = ( - service: Service, - project: Project, - pageParam: string, - nextPageParam: string, - initialPageParam: string, -) => { +export const createExports = ({ + service, + client, + project, + pageParam, + nextPageParam, + initialPageParam, +}: { + service: Service; + client: UserConfig["client"]; + project: Project; + pageParam: string; + nextPageParam: string; + initialPageParam: string; +}) => { const { methods } = service; const methodDataNames = methods.reduce( (acc, data) => { @@ -72,14 +81,15 @@ export const createExports = ( ); const allGetQueries = allGet.map((m) => - createUseQuery( - m, + createUseQuery({ + functionDescription: m, + client, pageParam, nextPageParam, initialPageParam, paginatableMethods, modelNames, - ), + }), ); const allPrefetchQueries = allGet.map((m) => createPrefetchOrEnsure({ ...m, functionType: "prefetch", modelNames }), @@ -89,16 +99,16 @@ export const createExports = ( ); const allPostMutations = allPost.map((m) => - createUseMutation({ ...m, modelNames }), + createUseMutation({ ...m, modelNames, client }), ); const allPutMutations = allPut.map((m) => - createUseMutation({ ...m, modelNames }), + createUseMutation({ ...m, modelNames, client }), ); const allPatchMutations = allPatch.map((m) => - createUseMutation({ ...m, modelNames }), + createUseMutation({ ...m, modelNames, client }), ); const allDeleteMutations = allDelete.map((m) => - createUseMutation({ ...m, modelNames }), + createUseMutation({ ...m, modelNames, client }), ); const allQueries = [...allGetQueries]; diff --git a/src/createImports.mts b/src/createImports.mts index 2e367b5..aa1b433 100644 --- a/src/createImports.mts +++ b/src/createImports.mts @@ -1,4 +1,5 @@ import { posix } from "node:path"; +import type { UserConfig } from "@hey-api/openapi-ts"; import type { Project } from "ts-morph"; import ts from "typescript"; import { modelsFileName, serviceFileName } from "./constants.mjs"; @@ -7,8 +8,10 @@ const { join } = posix; export const createImports = ({ project, + client, }: { project: Project; + client: UserConfig["client"]; }) => { const modelsFile = project .getSourceFiles() @@ -127,5 +130,25 @@ export const createImports = ({ ), ); } + + if (client === "@hey-api/client-axios") { + imports.push( + ts.factory.createImportDeclaration( + undefined, + ts.factory.createImportClause( + false, + undefined, + ts.factory.createNamedImports([ + ts.factory.createImportSpecifier( + false, + undefined, + ts.factory.createIdentifier("AxiosError"), + ), + ]), + ), + ts.factory.createStringLiteral("axios"), + ), + ); + } return imports; }; diff --git a/src/createSource.mts b/src/createSource.mts index e29929d..71e2fc4 100644 --- a/src/createSource.mts +++ b/src/createSource.mts @@ -1,4 +1,5 @@ import { join } from "node:path"; +import type { UserConfig } from "@hey-api/openapi-ts"; import { Project } from "ts-morph"; import ts from "typescript"; import { OpenApiRqFiles } from "./constants.mjs"; @@ -6,12 +7,19 @@ import { createExports } from "./createExports.mjs"; import { createImports } from "./createImports.mjs"; import { getServices } from "./service.mjs"; -const createSourceFile = async ( - outputPath: string, - pageParam: string, - nextPageParam: string, - initialPageParam: string, -) => { +const createSourceFile = async ({ + outputPath, + client, + pageParam, + nextPageParam, + initialPageParam, +}: { + outputPath: string; + client: UserConfig["client"]; + pageParam: string; + nextPageParam: string; + initialPageParam: string; +}) => { const project = new Project({ // Optionally specify compiler options, tsconfig.json, in-memory file system, and more here. // If you initialize with a tsconfig.json, then it will automatically populate the project @@ -27,15 +35,17 @@ const createSourceFile = async ( const imports = createImports({ project, + client, }); - const exports = createExports( + const exports = createExports({ service, + client, project, pageParam, nextPageParam, initialPageParam, - ); + }); const commonSource = ts.factory.createSourceFile( [...imports, ...exports.allCommon], @@ -119,12 +129,14 @@ const createSourceFile = async ( export const createSource = async ({ outputPath, + client, version, pageParam, nextPageParam, initialPageParam, }: { outputPath: string; + client: UserConfig["client"]; version: string; pageParam: string; nextPageParam: string; @@ -196,12 +208,13 @@ export const createSource = async ({ indexSource, prefetchSource, ensureSource, - } = await createSourceFile( + } = await createSourceFile({ outputPath, + client, pageParam, nextPageParam, initialPageParam, - ); + }); const comment = `// generated with @7nohe/openapi-react-query-codegen@${version} \n\n`; diff --git a/src/createUseMutation.mts b/src/createUseMutation.mts index b20d27e..d57ab93 100644 --- a/src/createUseMutation.mts +++ b/src/createUseMutation.mts @@ -1,3 +1,4 @@ +import type { UserConfig } from "@hey-api/openapi-ts"; import ts from "typescript"; import { BuildCommonTypeName, @@ -15,11 +16,7 @@ import { addJSDocToNode } from "./util.mjs"; /** * Awaited> */ -function generateAwaitedReturnType({ - methodName, -}: { - methodName: string; -}) { +function generateAwaitedReturnType({ methodName }: { methodName: string }) { return ts.factory.createTypeReferenceNode( ts.factory.createIdentifier("Awaited"), [ @@ -41,7 +38,11 @@ export const createUseMutation = ({ method, jsDoc, modelNames, -}: FunctionDescription & { modelNames: string[] }) => { + client, +}: FunctionDescription & { + modelNames: string[]; + client: UserConfig["client"]; +}) => { const methodName = getNameFromVariable(method); const awaitedResponseDataType = generateAwaitedReturnType({ methodName, @@ -98,7 +99,20 @@ export const createUseMutation = ({ undefined, TError, undefined, - ts.factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword), + client === "@hey-api/client-axios" + ? ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier("AxiosError"), + [ + ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier( + `${capitalizeFirstLetter(methodName)}Error`, + ), + ), + ], + ) + : ts.factory.createTypeReferenceNode( + `${capitalizeFirstLetter(methodName)}Error`, + ), ), ts.factory.createTypeParameterDeclaration( undefined, diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index e2a9bb2..a662183 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -1,3 +1,4 @@ +import type { UserConfig } from "@hey-api/openapi-ts"; import type { VariableDeclaration } from "ts-morph"; import ts from "typescript"; import { @@ -19,8 +20,10 @@ import { addJSDocToNode } from "./util.mjs"; export const createApiResponseType = ({ methodName, + client, }: { methodName: string; + client: UserConfig["client"]; }) => { /** Awaited> */ const awaitedResponseDataType = ts.factory.createIndexedAccessTypeNode( @@ -56,6 +59,26 @@ export const createApiResponseType = ({ ts.factory.createTypeReferenceNode(BuildCommonTypeName(apiResponse.name)), ); + const responseErrorType = ts.factory.createTypeParameterDeclaration( + undefined, + TError.text, + undefined, + client === "@hey-api/client-axios" + ? ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier("AxiosError"), + [ + ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier( + `${capitalizeFirstLetter(methodName)}Error`, + ), + ), + ], + ) + : ts.factory.createTypeReferenceNode( + `${capitalizeFirstLetter(methodName)}Error`, + ), + ); + return { /** * DefaultResponseDataType @@ -69,6 +92,12 @@ export const createApiResponseType = ({ * MyClassMethodDefaultResponse */ responseDataType, + /** + * ErrorDataType + * + * MyClassMethodError + */ + responseErrorType, }; }; @@ -216,6 +245,7 @@ export function createQueryHook({ queryString, suffix, responseDataType, + responseErrorType, requestParams, method, pageParam, @@ -225,6 +255,7 @@ export function createQueryHook({ queryString: "useSuspenseQuery" | "useQuery" | "useInfiniteQuery"; suffix: string; responseDataType: ts.TypeParameterDeclaration; + responseErrorType: ts.TypeParameterDeclaration; requestParams: ts.ParameterDeclaration[]; method: VariableDeclaration; pageParam?: string; @@ -276,12 +307,7 @@ export function createQueryHook({ ), ) : responseDataType, - ts.factory.createTypeParameterDeclaration( - undefined, - TError, - undefined, - ts.factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword), - ), + responseErrorType, ts.factory.createTypeParameterDeclaration( undefined, "TQueryKey", @@ -495,20 +521,33 @@ export function createQueryHook({ return hookExport; } -export const createUseQuery = ( - { method, jsDoc }: FunctionDescription, - pageParam: string, - nextPageParam: string, - initialPageParam: string, - paginatableMethods: string[], - modelNames: string[], -) => { +export const createUseQuery = ({ + functionDescription: { method, jsDoc }, + client, + pageParam, + nextPageParam, + initialPageParam, + paginatableMethods, + modelNames, +}: { + functionDescription: FunctionDescription; + client: UserConfig["client"]; + pageParam: string; + nextPageParam: string; + initialPageParam: string; + paginatableMethods: string[]; + modelNames: string[]; +}) => { const methodName = getNameFromVariable(method); const queryKey = createQueryKeyFromMethod({ method }); - const { apiResponse: defaultApiResponse, responseDataType } = - createApiResponseType({ - methodName, - }); + const { + apiResponse: defaultApiResponse, + responseDataType, + responseErrorType, + } = createApiResponseType({ + methodName, + client, + }); const requestParam = getRequestParamFromMethod(method, undefined, modelNames); const infiniteRequestParam = getRequestParamFromMethod( @@ -523,6 +562,7 @@ export const createUseQuery = ( queryString: "useQuery", suffix: "", responseDataType, + responseErrorType, requestParams, method, }); @@ -531,6 +571,7 @@ export const createUseQuery = ( queryString: "useSuspenseQuery", suffix: "Suspense", responseDataType, + responseErrorType, requestParams, method, }); @@ -541,6 +582,7 @@ export const createUseQuery = ( queryString: "useInfiniteQuery", suffix: "Infinite", responseDataType, + responseErrorType, requestParams: infiniteRequestParam ? [infiniteRequestParam] : [], method, pageParam, diff --git a/src/generate.mts b/src/generate.mts index 545ffd2..34a1fbb 100644 --- a/src/generate.mts +++ b/src/generate.mts @@ -14,7 +14,6 @@ export async function generate(options: LimitedUserConfig, version: string) { const formattedOptions = formatOptions(options); const config: UserConfig = { - base: formattedOptions.base, client: formattedOptions.client, debug: formattedOptions.debug, dryRun: false, @@ -25,7 +24,6 @@ export async function generate(options: LimitedUserConfig, version: string) { path: openApiOutputPath, }, input: formattedOptions.input, - request: formattedOptions.request, schemas: { export: !formattedOptions.noSchemas, type: formattedOptions.schemaType, @@ -34,6 +32,10 @@ export async function generate(options: LimitedUserConfig, version: string) { export: true, response: formattedOptions.serviceResponse, asClass: false, + operationId: + formattedOptions.operationId !== undefined + ? formattedOptions.operationId + : true, }, types: { dates: formattedOptions.useDateType, @@ -45,6 +47,7 @@ export async function generate(options: LimitedUserConfig, version: string) { await createClient(config); const source = await createSource({ outputPath: openApiOutputPath, + client: formattedOptions.client, version, pageParam: formattedOptions.pageParam, nextPageParam: formattedOptions.nextPageParam, diff --git a/tests/__snapshots__/createSource.test.ts.snap b/tests/__snapshots__/createSource.test.ts.snap index cbd8243..777074a 100644 --- a/tests/__snapshots__/createSource.test.ts.snap +++ b/tests/__snapshots__/createSource.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`createSource > createSource 1`] = ` +exports[`createSource > createSource - @hey-api/client-axios 1`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 export * from "./common"; @@ -8,12 +8,13 @@ export * from "./queries"; " `; -exports[`createSource > createSource 2`] = ` +exports[`createSource > createSource - @hey-api/client-axios 2`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +import { AxiosError } from "axios"; export type FindPetsDefaultResponse = Awaited>["data"]; export type FindPetsQueryResult = UseQueryResult; export const useFindPetsKey = "FindPets"; @@ -36,38 +37,122 @@ export type DeletePetMutationResult = Awaited>; " `; -exports[`createSource > createSource 3`] = ` +exports[`createSource > createSource - @hey-api/client-axios 3`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; -export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefined = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); -export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); -export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); +import { AxiosError } from "axios"; +export const useFindPets = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = , TQueryKey extends Array = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); " `; -exports[`createSource > createSource 4`] = ` +exports[`createSource > createSource - @hey-api/client-axios 4`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 import * as Common from "./common"; import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; -export const useFindPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefinedSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPetByIdSuspense = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +import { AxiosError } from "axios"; +export const useFindPetsSuspense = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = , TQueryKey extends Array = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); " `; -exports[`createSource > createSource 5`] = ` +exports[`createSource > createSource - @hey-api/client-axios 5`] = ` +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 + +import * as Common from "./common"; +import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +import { AxiosError } from "axios"; +export const prefetchUseFindPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseGetNotDefined = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPetById = (queryClient: QueryClient, clientOptions: Options) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); +" +`; + +exports[`createSource > createSource - @hey-api/client-fetch 1`] = ` +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 + +export * from "./common"; +export * from "./queries"; +" +`; + +exports[`createSource > createSource - @hey-api/client-fetch 2`] = ` +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 + +import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export type FindPetsDefaultResponse = Awaited>["data"]; +export type FindPetsQueryResult = UseQueryResult; +export const useFindPetsKey = "FindPets"; +export const UseFindPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; +export type GetNotDefinedDefaultResponse = Awaited>["data"]; +export type GetNotDefinedQueryResult = UseQueryResult; +export const useGetNotDefinedKey = "GetNotDefined"; +export const UseGetNotDefinedKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [clientOptions])]; +export type FindPetByIdDefaultResponse = Awaited>["data"]; +export type FindPetByIdQueryResult = UseQueryResult; +export const useFindPetByIdKey = "FindPetById"; +export const UseFindPetByIdKeyFn = (clientOptions: Options, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; +export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; +export type FindPaginatedPetsQueryResult = UseQueryResult; +export const useFindPaginatedPetsKey = "FindPaginatedPets"; +export const UseFindPaginatedPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; +export type AddPetMutationResult = Awaited>; +export type PostNotDefinedMutationResult = Awaited>; +export type DeletePetMutationResult = Awaited>; +" +`; + +exports[`createSource > createSource - @hey-api/client-fetch 3`] = ` +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 + +import * as Common from "./common"; +import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefined = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); +" +`; + +exports[`createSource > createSource - @hey-api/client-fetch 4`] = ` +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 + +import * as Common from "./common"; +import { type QueryClient, useQuery, useSuspenseQuery, useMutation, UseQueryResult, UseQueryOptions, UseMutationOptions, UseMutationResult } from "@tanstack/react-query"; +import { client, findPets, addPet, getNotDefined, postNotDefined, findPetById, deletePet, findPaginatedPets } from "../requests/services.gen"; +import { Pet, NewPet, Error, FindPetsData, FindPetsResponse, FindPetsError, AddPetData, AddPetResponse, AddPetError, GetNotDefinedResponse, GetNotDefinedError, PostNotDefinedResponse, PostNotDefinedError, FindPetByIdData, FindPetByIdResponse, FindPetByIdError, DeletePetData, DeletePetResponse, DeletePetError, FindPaginatedPetsData, FindPaginatedPetsResponse, FindPaginatedPetsError } from "../requests/types.gen"; +export const useFindPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useGetNotDefinedSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetByIdSuspense = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPaginatedPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +" +`; + +exports[`createSource > createSource - @hey-api/client-fetch 5`] = ` "// generated with @7nohe/openapi-react-query-codegen@1.0.0 import * as Common from "./common"; diff --git a/tests/__snapshots__/generate.test.ts.snap b/tests/__snapshots__/generate.test.ts.snap index 923d6fe..7ba9dde 100644 --- a/tests/__snapshots__/generate.test.ts.snap +++ b/tests/__snapshots__/generate.test.ts.snap @@ -1,50 +1,133 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`generate > common.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; -import { UseQueryResult } from "@tanstack/react-query"; -import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; -export type FindPetsDefaultResponse = Awaited>["data"]; -export type FindPetsQueryResult = UseQueryResult; +import type { Options } from "@hey-api/client-fetch"; +import type { UseQueryResult } from "@tanstack/react-query"; +import type { + addPet, + deletePet, + findPaginatedPets, + findPetById, + findPets, + getNotDefined, + postNotDefined, +} from "../requests/services.gen"; +export type FindPetsDefaultResponse = Awaited< + ReturnType +>["data"]; +export type FindPetsQueryResult< + TData = FindPetsDefaultResponse, + TError = unknown, +> = UseQueryResult; export const useFindPetsKey = "FindPets"; -export const UseFindPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; -export type GetNotDefinedDefaultResponse = Awaited>["data"]; -export type GetNotDefinedQueryResult = UseQueryResult; +export const UseFindPetsKeyFn = ( + clientOptions: Options = {}, + queryKey?: Array, +) => [useFindPetsKey, ...(queryKey ?? [clientOptions])]; +export type GetNotDefinedDefaultResponse = Awaited< + ReturnType +>["data"]; +export type GetNotDefinedQueryResult< + TData = GetNotDefinedDefaultResponse, + TError = unknown, +> = UseQueryResult; export const useGetNotDefinedKey = "GetNotDefined"; -export const UseGetNotDefinedKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useGetNotDefinedKey, ...(queryKey ?? [clientOptions])]; -export type FindPetByIdDefaultResponse = Awaited>["data"]; -export type FindPetByIdQueryResult = UseQueryResult; +export const UseGetNotDefinedKeyFn = ( + clientOptions: Options = {}, + queryKey?: Array, +) => [useGetNotDefinedKey, ...(queryKey ?? [clientOptions])]; +export type FindPetByIdDefaultResponse = Awaited< + ReturnType +>["data"]; +export type FindPetByIdQueryResult< + TData = FindPetByIdDefaultResponse, + TError = unknown, +> = UseQueryResult; export const useFindPetByIdKey = "FindPetById"; -export const UseFindPetByIdKeyFn = (clientOptions: Options, queryKey?: Array) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; -export type FindPaginatedPetsDefaultResponse = Awaited>["data"]; -export type FindPaginatedPetsQueryResult = UseQueryResult; +export const UseFindPetByIdKeyFn = ( + clientOptions: Options, + queryKey?: Array, +) => [useFindPetByIdKey, ...(queryKey ?? [clientOptions])]; +export type FindPaginatedPetsDefaultResponse = Awaited< + ReturnType +>["data"]; +export type FindPaginatedPetsQueryResult< + TData = FindPaginatedPetsDefaultResponse, + TError = unknown, +> = UseQueryResult; export const useFindPaginatedPetsKey = "FindPaginatedPets"; -export const UseFindPaginatedPetsKeyFn = (clientOptions: Options = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; +export const UseFindPaginatedPetsKeyFn = ( + clientOptions: Options = {}, + queryKey?: Array, +) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; -export type PostNotDefinedMutationResult = Awaited>; +export type PostNotDefinedMutationResult = Awaited< + ReturnType +>; export type DeletePetMutationResult = Awaited>; " `; exports[`generate > ensureQueryData.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; -import { type QueryClient } from "@tanstack/react-query"; -import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; -import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; +import type { Options } from "@hey-api/client-fetch"; +import type { QueryClient } from "@tanstack/react-query"; +import { + findPaginatedPets, + findPetById, + findPets, + getNotDefined, +} from "../requests/services.gen"; +import type { + FindPaginatedPetsData, + FindPetByIdData, + FindPetsData, +} from "../requests/types.gen"; import * as Common from "./common"; -export const ensureUseFindPetsData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); -export const ensureUseGetNotDefinedData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); -export const ensureUseFindPetByIdData = (queryClient: QueryClient, clientOptions: Options) => queryClient.ensureQueryData({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); -export const ensureUseFindPaginatedPetsData = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.ensureQueryData({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); +export const ensureUseFindPetsData = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.ensureQueryData({ + queryKey: Common.UseFindPetsKeyFn(clientOptions), + queryFn: () => + findPets({ ...clientOptions }).then((response) => response.data), + }); +export const ensureUseGetNotDefinedData = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.ensureQueryData({ + queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), + queryFn: () => + getNotDefined({ ...clientOptions }).then((response) => response.data), + }); +export const ensureUseFindPetByIdData = ( + queryClient: QueryClient, + clientOptions: Options, +) => + queryClient.ensureQueryData({ + queryKey: Common.UseFindPetByIdKeyFn(clientOptions), + queryFn: () => + findPetById({ ...clientOptions }).then((response) => response.data), + }); +export const ensureUseFindPaginatedPetsData = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.ensureQueryData({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), + queryFn: () => + findPaginatedPets({ ...clientOptions }).then((response) => response.data), + }); " `; exports[`generate > index.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 export * from "./common"; export * from "./queries"; @@ -52,66 +135,342 @@ export * from "./queries"; `; exports[`generate > infiniteQueries.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; +import type { Options } from "@hey-api/client-fetch"; import { findPaginatedPets } from "../requests/services.gen"; -import { FindPaginatedPetsData } from "../requests/types.gen"; +import type { + FindPaginatedPetsData, + FindPaginatedPetsError, +} from "../requests/types.gen"; import * as Common from "./common"; -export const useFindPaginatedPetsInfinite = , TError = unknown, TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useInfiniteQuery({ - queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: ({ pageParam }) => findPaginatedPets({ ...clientOptions, query: { ...clientOptions.query, page: pageParam as number } }).then(response => response.data as TData) as TData, initialPageParam: "initial", getNextPageParam: response => (response as { - meta: { - next: number; - }; - }).meta.next, ...options -}); +export const useFindPaginatedPetsInfinite = < + TData = InfiniteData, + TError = FindPaginatedPetsError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit< + UseInfiniteQueryOptions, + "queryKey" | "queryFn" + >, +) => + useInfiniteQuery({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), + queryFn: ({ pageParam }) => + findPaginatedPets({ + ...clientOptions, + query: { ...clientOptions.query, page: pageParam as number }, + }).then((response) => response.data as TData) as TData, + initialPageParam: "initial", + getNextPageParam: (response) => + ( + response as { + meta: { + next: number; + }; + } + ).meta.next, + ...options, + }); " `; exports[`generate > prefetch.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; -import { type QueryClient } from "@tanstack/react-query"; -import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; -import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; +import type { Options } from "@hey-api/client-fetch"; +import type { QueryClient } from "@tanstack/react-query"; +import { + findPaginatedPets, + findPetById, + findPets, + getNotDefined, +} from "../requests/services.gen"; +import type { + FindPaginatedPetsData, + FindPetByIdData, + FindPetsData, +} from "../requests/types.gen"; import * as Common from "./common"; -export const prefetchUseFindPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions), queryFn: () => findPets({ ...clientOptions }).then(response => response.data) }); -export const prefetchUseGetNotDefined = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data) }); -export const prefetchUseFindPetById = (queryClient: QueryClient, clientOptions: Options) => queryClient.prefetchQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data) }); -export const prefetchUseFindPaginatedPets = (queryClient: QueryClient, clientOptions: Options = {}) => queryClient.prefetchQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data) }); +export const prefetchUseFindPets = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.prefetchQuery({ + queryKey: Common.UseFindPetsKeyFn(clientOptions), + queryFn: () => + findPets({ ...clientOptions }).then((response) => response.data), + }); +export const prefetchUseGetNotDefined = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.prefetchQuery({ + queryKey: Common.UseGetNotDefinedKeyFn(clientOptions), + queryFn: () => + getNotDefined({ ...clientOptions }).then((response) => response.data), + }); +export const prefetchUseFindPetById = ( + queryClient: QueryClient, + clientOptions: Options, +) => + queryClient.prefetchQuery({ + queryKey: Common.UseFindPetByIdKeyFn(clientOptions), + queryFn: () => + findPetById({ ...clientOptions }).then((response) => response.data), + }); +export const prefetchUseFindPaginatedPets = ( + queryClient: QueryClient, + clientOptions: Options = {}, +) => + queryClient.prefetchQuery({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions), + queryFn: () => + findPaginatedPets({ ...clientOptions }).then((response) => response.data), + }); " `; exports[`generate > queries.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; -import { useMutation, UseMutationOptions, useQuery, UseQueryOptions } from "@tanstack/react-query"; -import { addPet, deletePet, findPaginatedPets, findPetById, findPets, getNotDefined, postNotDefined } from "../requests/services.gen"; -import { AddPetData, DeletePetData, FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; +import type { Options } from "@hey-api/client-fetch"; +import { + useMutation, + type UseMutationOptions, + useQuery, + type UseQueryOptions, +} from "@tanstack/react-query"; +import { + addPet, + deletePet, + findPaginatedPets, + findPetById, + findPets, + getNotDefined, + postNotDefined, +} from "../requests/services.gen"; +import type { + AddPetData, + AddPetError, + DeletePetData, + DeletePetError, + FindPaginatedPetsData, + FindPaginatedPetsError, + FindPetByIdData, + FindPetByIdError, + FindPetsData, + FindPetsError, + GetNotDefinedError, + PostNotDefinedError, +} from "../requests/types.gen"; import * as Common from "./common"; -export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefined = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); -export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); -export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); +export const useFindPets = < + TData = Common.FindPetsDefaultResponse, + TError = FindPetsError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useQuery({ + queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), + queryFn: () => + findPets({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useGetNotDefined = < + TData = Common.GetNotDefinedDefaultResponse, + TError = GetNotDefinedError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useQuery({ + queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), + queryFn: () => + getNotDefined({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useFindPetById = < + TData = Common.FindPetByIdDefaultResponse, + TError = FindPetByIdError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useQuery({ + queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), + queryFn: () => + findPetById({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useFindPaginatedPets = < + TData = Common.FindPaginatedPetsDefaultResponse, + TError = FindPaginatedPetsError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useQuery({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), + queryFn: () => + findPaginatedPets({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useAddPet = < + TData = Common.AddPetMutationResult, + TError = AddPetError, + TContext = unknown, +>( + options?: Omit< + UseMutationOptions, TContext>, + "mutationFn" + >, +) => + useMutation, TContext>({ + mutationFn: (clientOptions) => + addPet(clientOptions) as unknown as Promise, + ...options, + }); +export const usePostNotDefined = < + TData = Common.PostNotDefinedMutationResult, + TError = PostNotDefinedError, + TContext = unknown, +>( + options?: Omit< + UseMutationOptions, TContext>, + "mutationFn" + >, +) => + useMutation, TContext>({ + mutationFn: (clientOptions) => + postNotDefined(clientOptions) as unknown as Promise, + ...options, + }); +export const useDeletePet = < + TData = Common.DeletePetMutationResult, + TError = DeletePetError, + TContext = unknown, +>( + options?: Omit< + UseMutationOptions, TContext>, + "mutationFn" + >, +) => + useMutation, TContext>({ + mutationFn: (clientOptions) => + deletePet(clientOptions) as unknown as Promise, + ...options, + }); " `; exports[`generate > suspense.ts 1`] = ` -"// generated with @7nohe/openapi-react-query-codegen@1.0.0 +"// generated with @7nohe/openapi-react-query-codegen@1.0.0 -import { Options } from "@hey-api/client-fetch"; -import { UseQueryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { findPaginatedPets, findPetById, findPets, getNotDefined } from "../requests/services.gen"; -import { FindPaginatedPetsData, FindPetByIdData, FindPetsData } from "../requests/types.gen"; +import type { Options } from "@hey-api/client-fetch"; +import { type UseQueryOptions, useSuspenseQuery } from "@tanstack/react-query"; +import { + findPaginatedPets, + findPetById, + findPets, + getNotDefined, +} from "../requests/services.gen"; +import type { + FindPaginatedPetsData, + FindPaginatedPetsError, + FindPetByIdData, + FindPetByIdError, + FindPetsData, + FindPetsError, + GetNotDefinedError, +} from "../requests/types.gen"; import * as Common from "./common"; -export const useFindPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), queryFn: () => findPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useGetNotDefinedSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPetByIdSuspense = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useFindPaginatedPetsSuspense = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useSuspenseQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); +export const useFindPetsSuspense = < + TData = Common.FindPetsDefaultResponse, + TError = FindPetsError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useSuspenseQuery({ + queryKey: Common.UseFindPetsKeyFn(clientOptions, queryKey), + queryFn: () => + findPets({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useGetNotDefinedSuspense = < + TData = Common.GetNotDefinedDefaultResponse, + TError = GetNotDefinedError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useSuspenseQuery({ + queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), + queryFn: () => + getNotDefined({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useFindPetByIdSuspense = < + TData = Common.FindPetByIdDefaultResponse, + TError = FindPetByIdError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useSuspenseQuery({ + queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), + queryFn: () => + findPetById({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); +export const useFindPaginatedPetsSuspense = < + TData = Common.FindPaginatedPetsDefaultResponse, + TError = FindPaginatedPetsError, + TQueryKey extends Array = unknown[], +>( + clientOptions: Options = {}, + queryKey?: TQueryKey, + options?: Omit, "queryKey" | "queryFn">, +) => + useSuspenseQuery({ + queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), + queryFn: () => + findPaginatedPets({ ...clientOptions }).then( + (response) => response.data as TData, + ) as TData, + ...options, + }); " `; diff --git a/tests/createExports.test.ts b/tests/createExports.test.ts index a000bf5..f0cfcd0 100644 --- a/tests/createExports.test.ts +++ b/tests/createExports.test.ts @@ -17,7 +17,14 @@ describe(fileName, () => { }); project.addSourceFilesAtPaths(path.join(outputPath(fileName), "**", "*")); const service = await getServices(project); - const exports = createExports(service, "page", "nextPage", "initial"); + const exports = createExports({ + service, + project, + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "initial", + client: "@hey-api/client-fetch", + }); const commonTypes = exports.allCommon .filter((c) => c.kind === SyntaxKind.TypeAliasDeclaration) diff --git a/tests/createSource.test.ts b/tests/createSource.test.ts index 55eec67..ef37401 100644 --- a/tests/createSource.test.ts +++ b/tests/createSource.test.ts @@ -6,13 +6,40 @@ describe(fileName, () => { beforeAll(async () => await generateTSClients(fileName)); afterAll(async () => await cleanOutputs(fileName)); - test("createSource", async () => { + test("createSource - @hey-api/client-fetch", async () => { const source = await createSource({ outputPath: outputPath(fileName), version: "1.0.0", pageParam: "page", nextPageParam: "nextPage", initialPageParam: "1", + client: "@hey-api/client-fetch", + }); + + const indexTs = source.find((s) => s.name === "index.ts"); + expect(indexTs?.content).toMatchSnapshot(); + + const commonTs = source.find((s) => s.name === "common.ts"); + expect(commonTs?.content).toMatchSnapshot(); + + const queriesTs = source.find((s) => s.name === "queries.ts"); + expect(queriesTs?.content).toMatchSnapshot(); + + const suspenseTs = source.find((s) => s.name === "suspense.ts"); + expect(suspenseTs?.content).toMatchSnapshot(); + + const prefetchTs = source.find((s) => s.name === "prefetch.ts"); + expect(prefetchTs?.content).toMatchSnapshot(); + }); + + test("createSource - @hey-api/client-axios", async () => { + const source = await createSource({ + outputPath: outputPath(fileName), + version: "1.0.0", + pageParam: "page", + nextPageParam: "nextPage", + initialPageParam: "1", + client: "@hey-api/client-axios", }); const indexTs = source.find((s) => s.name === "index.ts"); diff --git a/tests/generate.test.ts b/tests/generate.test.ts index 7e028e8..d4ece8c 100644 --- a/tests/generate.test.ts +++ b/tests/generate.test.ts @@ -18,10 +18,12 @@ describe("generate", () => { input: path.join(__dirname, "inputs", "petstore.yaml"), output: path.join("tests", "outputs"), client: "@hey-api/client-fetch", - lint: "eslint", + lint: "biome", + format: "biome", pageParam: "page", nextPageParam: "meta.next", initialPageParam: "initial", + operationId: true, }; await generate(options, "1.0.0"); }); diff --git a/vitest.config.ts b/vitest.config.ts index b06deae..77a1e7e 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,9 +8,9 @@ export default defineConfig({ reportOnFailure: true, thresholds: { lines: 95, - functions: 90, + functions: 95, statements: 95, - branches: 85, + branches: 90, }, }, }, From f2301bcc5f2388f4db0d0c2a8ab9ca40c7830b71 Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Sat, 12 Oct 2024 23:13:58 +0900 Subject: [PATCH 4/6] feat: Generate mutation keys --- examples/react-app/package.json | 1 + examples/react-app/src/main.tsx | 2 + .../tanstack-router-app/src/routes/__root.tsx | 1 - package.json | 5 +- pnpm-lock.yaml | 61 +++---- src/common.mts | 165 ++++++++++++++++++ src/createExports.mts | 18 +- src/createPrefetchOrEnsure.mts | 4 +- src/createUseMutation.mts | 95 +++++++--- src/createUseQuery.mts | 154 +--------------- tests/__snapshots__/createSource.test.ts.snap | 24 ++- tests/__snapshots__/generate.test.ts.snap | 30 +++- tests/createExports.test.ts | 6 + 13 files changed, 339 insertions(+), 227 deletions(-) diff --git a/examples/react-app/package.json b/examples/react-app/package.json index d06642b..ecb6452 100644 --- a/examples/react-app/package.json +++ b/examples/react-app/package.json @@ -15,6 +15,7 @@ "dependencies": { "@hey-api/client-axios": "^0.2.7", "@tanstack/react-query": "^5.32.1", + "@tanstack/react-query-devtools": "^5.32.1", "axios": "^1.7.7", "form-data": "~4.0.0", "react": "^18.3.1", diff --git a/examples/react-app/src/main.tsx b/examples/react-app/src/main.tsx index 098f65f..1738f04 100644 --- a/examples/react-app/src/main.tsx +++ b/examples/react-app/src/main.tsx @@ -3,6 +3,7 @@ import ReactDOM from "react-dom/client"; import App from "./App"; import "./index.css"; import { QueryClientProvider } from "@tanstack/react-query"; +import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; import { queryClient } from "./queryClient"; import "./axios"; @@ -10,6 +11,7 @@ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + , ); diff --git a/examples/tanstack-router-app/src/routes/__root.tsx b/examples/tanstack-router-app/src/routes/__root.tsx index 7463d18..fa0384a 100644 --- a/examples/tanstack-router-app/src/routes/__root.tsx +++ b/examples/tanstack-router-app/src/routes/__root.tsx @@ -6,7 +6,6 @@ import { createRootRouteWithContext, } from "@tanstack/react-router"; import { TanStackRouterDevtools } from "@tanstack/router-devtools"; -import * as React from "react"; export const Route = createRootRouteWithContext<{ queryClient: QueryClient; diff --git a/package.json b/package.json index 7e58b45..e4e1fc3 100644 --- a/package.json +++ b/package.json @@ -53,21 +53,18 @@ }, "devDependencies": { "@biomejs/biome": "^1.7.2", - "@types/node": "^22.7.4", "@types/cross-spawn": "^6.0.6", + "@types/node": "^22.7.4", "@vitest/coverage-v8": "^1.5.0", "commander": "^12.0.0", - "glob": "^10.3.10", "lefthook": "^1.6.10", "rimraf": "^5.0.5", "ts-morph": "^23.0.0", - "ts-node": "^10.9.2", "typescript": "^5.5.4", "vitest": "^1.5.0" }, "peerDependencies": { "commander": "12.x", - "glob": "10.x", "ts-morph": "23.x", "typescript": "5.x" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe8d542..31392b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,9 +33,6 @@ importers: commander: specifier: ^12.0.0 version: 12.1.0 - glob: - specifier: ^10.3.10 - version: 10.4.1 lefthook: specifier: ^1.6.10 version: 1.6.15 @@ -45,9 +42,6 @@ importers: ts-morph: specifier: ^23.0.0 version: 23.0.0 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2) typescript: specifier: ^5.5.4 version: 5.6.2 @@ -106,6 +100,9 @@ importers: '@tanstack/react-query': specifier: ^5.32.1 version: 5.45.0(react@18.3.1) + '@tanstack/react-query-devtools': + specifier: ^5.32.1 + version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) axios: specifier: ^1.7.7 version: 1.7.7 @@ -4852,6 +4849,7 @@ snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + optional: true '@deno/shim-deno-test@0.5.0': {} @@ -5137,6 +5135,7 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + optional: true '@jsdevtools/ono@7.1.3': {} @@ -5799,13 +5798,17 @@ snapshots: mkdirp: 3.0.1 path-browserify: 1.0.1 - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@types/babel__core@7.20.5': dependencies: @@ -6141,7 +6144,8 @@ snapshots: delegates: 1.0.0 readable-stream: 3.6.2 - arg@4.1.3: {} + arg@4.1.3: + optional: true arg@5.0.2: {} @@ -6475,7 +6479,8 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.5.2 - create-require@1.1.1: {} + create-require@1.1.1: + optional: true croner@8.1.2: {} @@ -6580,7 +6585,8 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} + diff@4.0.2: + optional: true dlv@1.1.3: {} @@ -7524,7 +7530,8 @@ snapshots: dependencies: semver: 7.6.2 - make-error@1.3.6: {} + make-error@1.3.6: + optional: true media-typer@0.3.0: {} @@ -8563,7 +8570,7 @@ snapshots: terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 @@ -8631,24 +8638,6 @@ snapshots: yn: 3.1.1 optional: true - ts-node@10.9.2(@types/node@22.7.4)(typescript@5.6.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.7.4 - acorn: 8.11.3 - acorn-walk: 8.3.2 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.6.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - tsconfck@3.1.3(typescript@5.6.2): optionalDependencies: typescript: 5.6.2 @@ -8846,7 +8835,8 @@ snapshots: uuid@8.3.2: {} - v8-compile-cache-lib@3.0.1: {} + v8-compile-cache-lib@3.0.1: + optional: true validate-npm-package-license@3.0.4: dependencies: @@ -9124,7 +9114,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@1.0.0: {} diff --git a/src/common.mts b/src/common.mts index d2c227c..d8e0e76 100644 --- a/src/common.mts +++ b/src/common.mts @@ -200,3 +200,168 @@ export function buildRequestsOutputPath(outputPath: string) { export function buildQueriesOutputPath(outputPath: string) { return path.join(outputPath, queriesOutputPath); } + +export function getQueryKeyFnName(queryKey: string) { + return `${capitalizeFirstLetter(queryKey)}Fn`; +} + +/** + * Create QueryKey/MutationKey exports + */ +export function createQueryKeyExport({ + methodName, + queryKey, +}: { + methodName: string; + queryKey: string; +}) { + return ts.factory.createVariableStatement( + [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], + ts.factory.createVariableDeclarationList( + [ + ts.factory.createVariableDeclaration( + ts.factory.createIdentifier(queryKey), + undefined, + undefined, + ts.factory.createStringLiteral( + `${capitalizeFirstLetter(methodName)}`, + ), + ), + ], + ts.NodeFlags.Const, + ), + ); +} + +export function createQueryKeyFnExport( + queryKey: string, + method: VariableDeclaration, + type: "query" | "mutation" = "query", +) { + // Mutation keys don't require clientOptions + const params = type === "query" ? getRequestParamFromMethod(method) : null; + + // override key is used to allow the user to override the the queryKey values + const overrideKey = ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier(type === "query" ? "queryKey" : "mutationKey"), + QuestionToken, + ts.factory.createTypeReferenceNode("Array", []), + ); + + return ts.factory.createVariableStatement( + [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], + ts.factory.createVariableDeclarationList( + [ + ts.factory.createVariableDeclaration( + ts.factory.createIdentifier(getQueryKeyFnName(queryKey)), + undefined, + undefined, + ts.factory.createArrowFunction( + undefined, + undefined, + params ? [params, overrideKey] : [overrideKey], + undefined, + EqualsOrGreaterThanToken, + type === "query" + ? queryKeyFn(queryKey, method) + : mutationKeyFn(queryKey), + ), + ), + ], + ts.NodeFlags.Const, + ), + ); +} + +function queryKeyFn( + queryKey: string, + method: VariableDeclaration, +): ts.Expression { + return ts.factory.createArrayLiteralExpression( + [ + ts.factory.createIdentifier(queryKey), + ts.factory.createSpreadElement( + ts.factory.createParenthesizedExpression( + ts.factory.createBinaryExpression( + ts.factory.createIdentifier("queryKey"), + ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken), + getVariableArrowFunctionParameters(method) + ? // [...clientOptions] + ts.factory.createArrayLiteralExpression([ + ts.factory.createIdentifier("clientOptions"), + ]) + : // [] + ts.factory.createArrayLiteralExpression(), + ), + ), + ), + ], + false, + ); +} + +function mutationKeyFn(mutationKey: string): ts.Expression { + return ts.factory.createArrayLiteralExpression( + [ + ts.factory.createIdentifier(mutationKey), + ts.factory.createSpreadElement( + ts.factory.createParenthesizedExpression( + ts.factory.createBinaryExpression( + ts.factory.createIdentifier("mutationKey"), + ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken), + ts.factory.createArrayLiteralExpression(), + ), + ), + ), + ], + false, + ); +} + +export function getRequestParamFromMethod( + method: VariableDeclaration, + pageParam?: string, + modelNames: string[] = [], +) { + if (!getVariableArrowFunctionParameters(method).length) { + return null; + } + const methodName = getNameFromVariable(method); + + const params = getVariableArrowFunctionParameters(method).flatMap((param) => { + const paramNodes = extractPropertiesFromObjectParam(param); + + return paramNodes + .filter((p) => p.name !== pageParam) + .map((refParam) => ({ + name: refParam.name, + // TODO: Client -> Client + typeName: getShortType(refParam.type?.getText() ?? ""), + optional: refParam.optional, + })); + }); + + const areAllPropertiesOptional = params.every((param) => param.optional); + + return ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier("clientOptions"), + undefined, + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Options"), [ + ts.factory.createTypeReferenceNode( + modelNames.includes(`${capitalizeFirstLetter(methodName)}Data`) + ? `${capitalizeFirstLetter(methodName)}Data` + : "unknown", + ), + ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("true")), + ]), + // if all params are optional, we create an empty object literal + // so the hook can be called without any parameters + areAllPropertiesOptional + ? ts.factory.createObjectLiteralExpression() + : undefined, + ); +} diff --git a/src/createExports.mts b/src/createExports.mts index 90dc93b..5a82414 100644 --- a/src/createExports.mts +++ b/src/createExports.mts @@ -99,16 +99,16 @@ export const createExports = ({ ); const allPostMutations = allPost.map((m) => - createUseMutation({ ...m, modelNames, client }), + createUseMutation({ functionDescription: m, modelNames, client }), ); const allPutMutations = allPut.map((m) => - createUseMutation({ ...m, modelNames, client }), + createUseMutation({ functionDescription: m, modelNames, client }), ); const allPatchMutations = allPatch.map((m) => - createUseMutation({ ...m, modelNames, client }), + createUseMutation({ functionDescription: m, modelNames, client }), ); const allDeleteMutations = allDelete.map((m) => - createUseMutation({ ...m, modelNames, client }), + createUseMutation({ functionDescription: m, modelNames, client }), ); const allQueries = [...allGetQueries]; @@ -127,9 +127,13 @@ export const createExports = ({ queryKeyFn, ], ); - const commonInMutations = allMutations.flatMap(({ mutationResult }) => [ - mutationResult, - ]); + const commonInMutations = allMutations.flatMap( + ({ mutationResult, key, mutationKeyFn }) => [ + mutationResult, + key, + mutationKeyFn, + ], + ); const allCommon = [...commonInQueries, ...commonInMutations]; diff --git a/src/createPrefetchOrEnsure.mts b/src/createPrefetchOrEnsure.mts index eb8817d..ce857e1 100644 --- a/src/createPrefetchOrEnsure.mts +++ b/src/createPrefetchOrEnsure.mts @@ -4,13 +4,13 @@ import { BuildCommonTypeName, EqualsOrGreaterThanToken, getNameFromVariable, + getQueryKeyFnName, + getRequestParamFromMethod, getVariableArrowFunctionParameters, } from "./common.mjs"; import type { FunctionDescription } from "./common.mjs"; import { createQueryKeyFromMethod, - getQueryKeyFnName, - getRequestParamFromMethod, hookNameFromMethod, } from "./createUseQuery.mjs"; import { addJSDocToNode } from "./util.mjs"; diff --git a/src/createUseMutation.mts b/src/createUseMutation.mts index d57ab93..c7ed8b2 100644 --- a/src/createUseMutation.mts +++ b/src/createUseMutation.mts @@ -8,9 +8,15 @@ import { TData, TError, capitalizeFirstLetter, + createQueryKeyExport, + createQueryKeyFnExport, getNameFromVariable, + getQueryKeyFnName, getVariableArrowFunctionParameters, + queryKeyConstraint, + queryKeyGenericType, } from "./common.mjs"; +import { createQueryKeyFromMethod } from "./createUseQuery.mjs"; import { addJSDocToNode } from "./util.mjs"; /** @@ -35,15 +41,16 @@ function generateAwaitedReturnType({ methodName }: { methodName: string }) { } export const createUseMutation = ({ - method, - jsDoc, + functionDescription: { method, jsDoc }, modelNames, client, -}: FunctionDescription & { +}: { + functionDescription: FunctionDescription; modelNames: string[]; client: UserConfig["client"]; }) => { const methodName = getNameFromVariable(method); + const mutationKey = createQueryKeyFromMethod({ method }); const awaitedResponseDataType = generateAwaitedReturnType({ methodName, }); @@ -57,6 +64,7 @@ export const createUseMutation = ({ awaitedResponseDataType, ); + // `TData = Common.AddPetMutationResult` const responseDataType = ts.factory.createTypeParameterDeclaration( undefined, TData, @@ -66,6 +74,28 @@ export const createUseMutation = ({ ), ); + // @hey-api/client-axios -> `TError = AxiosError` + // @hey-api/client-fetch -> `TError = AddPetError` + const responseErrorType = ts.factory.createTypeParameterDeclaration( + undefined, + TError, + undefined, + client === "@hey-api/client-axios" + ? ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier("AxiosError"), + [ + ts.factory.createTypeReferenceNode( + ts.factory.createIdentifier( + `${capitalizeFirstLetter(methodName)}Error`, + ), + ), + ], + ) + : ts.factory.createTypeReferenceNode( + `${capitalizeFirstLetter(methodName)}Error`, + ), + ); + const methodParameters = getVariableArrowFunctionParameters(method).length !== 0 ? ts.factory.createTypeReferenceNode( @@ -95,24 +125,16 @@ export const createUseMutation = ({ undefined, ts.factory.createNodeArray([ responseDataType, + responseErrorType, ts.factory.createTypeParameterDeclaration( undefined, - TError, - undefined, - client === "@hey-api/client-axios" - ? ts.factory.createTypeReferenceNode( - ts.factory.createIdentifier("AxiosError"), - [ - ts.factory.createTypeReferenceNode( - ts.factory.createIdentifier( - `${capitalizeFirstLetter(methodName)}Error`, - ), - ), - ], - ) - : ts.factory.createTypeReferenceNode( - `${capitalizeFirstLetter(methodName)}Error`, - ), + "TQueryKey", + queryKeyConstraint, + ts.factory.createArrayTypeNode( + ts.factory.createKeywordTypeNode( + ts.SyntaxKind.UnknownKeyword, + ), + ), ), ts.factory.createTypeParameterDeclaration( undefined, @@ -122,6 +144,13 @@ export const createUseMutation = ({ ), ]), [ + ts.factory.createParameterDeclaration( + undefined, + undefined, + ts.factory.createIdentifier("mutationKey"), + ts.factory.createToken(ts.SyntaxKind.QuestionToken), + queryKeyGenericType, + ), ts.factory.createParameterDeclaration( undefined, undefined, @@ -139,9 +168,14 @@ export const createUseMutation = ({ ts.factory.createTypeReferenceNode(TContext), ], ), - ts.factory.createLiteralTypeNode( - ts.factory.createStringLiteral("mutationFn"), - ), + ts.factory.createUnionTypeNode([ + ts.factory.createLiteralTypeNode( + ts.factory.createStringLiteral("mutationKey"), + ), + ts.factory.createLiteralTypeNode( + ts.factory.createStringLiteral("mutationFn"), + ), + ]), ], ), undefined, @@ -159,6 +193,14 @@ export const createUseMutation = ({ ], [ ts.factory.createObjectLiteralExpression([ + ts.factory.createPropertyAssignment( + ts.factory.createIdentifier("mutationKey"), + ts.factory.createCallExpression( + BuildCommonTypeName(getQueryKeyFnName(mutationKey)), + undefined, + [ts.factory.createIdentifier("mutationKey")], + ), + ), ts.factory.createPropertyAssignment( ts.factory.createIdentifier("mutationFn"), // (clientOptions) => addPet(clientOptions).then(response => response.data as TData) as unknown as Promise @@ -214,8 +256,17 @@ export const createUseMutation = ({ const hookWithJsDoc = addJSDocToNode(exportHook, jsDoc); + const mutationKeyExport = createQueryKeyExport({ + methodName, + queryKey: mutationKey, + }); + + const mutationKeyFn = createQueryKeyFnExport(mutationKey, method, "mutation"); + return { mutationResult, + key: mutationKeyExport, mutationHook: hookWithJsDoc, + mutationKeyFn, }; }; diff --git a/src/createUseQuery.mts b/src/createUseQuery.mts index a662183..c5ad08d 100644 --- a/src/createUseQuery.mts +++ b/src/createUseQuery.mts @@ -4,13 +4,14 @@ import ts from "typescript"; import { BuildCommonTypeName, EqualsOrGreaterThanToken, - QuestionToken, TData, TError, capitalizeFirstLetter, - extractPropertiesFromObjectParam, + createQueryKeyExport, + createQueryKeyFnExport, getNameFromVariable, - getShortType, + getQueryKeyFnName, + getRequestParamFromMethod, getVariableArrowFunctionParameters, queryKeyConstraint, queryKeyGenericType, @@ -18,7 +19,7 @@ import { import type { FunctionDescription } from "./common.mjs"; import { addJSDocToNode } from "./util.mjs"; -export const createApiResponseType = ({ +const createApiResponseType = ({ methodName, client, }: { @@ -101,59 +102,12 @@ export const createApiResponseType = ({ }; }; -export function getRequestParamFromMethod( - method: VariableDeclaration, - pageParam?: string, - modelNames: string[] = [], -) { - if (!getVariableArrowFunctionParameters(method).length) { - return null; - } - const methodName = getNameFromVariable(method); - - const params = getVariableArrowFunctionParameters(method).flatMap((param) => { - const paramNodes = extractPropertiesFromObjectParam(param); - - return paramNodes - .filter((p) => p.name !== pageParam) - .map((refParam) => ({ - name: refParam.name, - // TODO: Client -> Client - typeName: getShortType(refParam.type?.getText() ?? ""), - optional: refParam.optional, - })); - }); - - const areAllPropertiesOptional = params.every((param) => param.optional); - - return ts.factory.createParameterDeclaration( - undefined, - undefined, - // options - ts.factory.createIdentifier("clientOptions"), - undefined, - ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Options"), [ - ts.factory.createTypeReferenceNode( - modelNames.includes(`${capitalizeFirstLetter(methodName)}Data`) - ? `${capitalizeFirstLetter(methodName)}Data` - : "unknown", - ), - ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("true")), - ]), - // if all params are optional, we create an empty object literal - // so the hook can be called without any parameters - areAllPropertiesOptional - ? ts.factory.createObjectLiteralExpression() - : undefined, - ); -} - /** * Return Type * * export const classNameMethodNameQueryResult = UseQueryResult; */ -export function createReturnTypeExport({ +function createReturnTypeExport({ methodName, defaultApiResponse, }: { @@ -189,34 +143,6 @@ export function createReturnTypeExport({ ); } -/** - * QueryKey - */ -export function createQueryKeyExport({ - methodName, - queryKey, -}: { - methodName: string; - queryKey: string; -}) { - return ts.factory.createVariableStatement( - [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], - ts.factory.createVariableDeclarationList( - [ - ts.factory.createVariableDeclaration( - ts.factory.createIdentifier(queryKey), - undefined, - undefined, - ts.factory.createStringLiteral( - `${capitalizeFirstLetter(methodName)}`, - ), - ), - ], - ts.NodeFlags.Const, - ), - ); -} - export function hookNameFromMethod({ method, }: { @@ -241,7 +167,7 @@ export function createQueryKeyFromMethod({ * @param queryString The type of query to use from react-query * @param suffix The suffix to append to the hook name */ -export function createQueryHook({ +function createQueryHook({ queryString, suffix, responseDataType, @@ -620,72 +546,6 @@ export const createUseQuery = ({ }; }; -export function getQueryKeyFnName(queryKey: string) { - return `${capitalizeFirstLetter(queryKey)}Fn`; -} - -function createQueryKeyFnExport(queryKey: string, method: VariableDeclaration) { - const params = getRequestParamFromMethod(method); - - // override key is used to allow the user to override the the queryKey values - const overrideKey = ts.factory.createParameterDeclaration( - undefined, - undefined, - ts.factory.createIdentifier("queryKey"), - QuestionToken, - ts.factory.createTypeReferenceNode("Array", []), - ); - - return ts.factory.createVariableStatement( - [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], - ts.factory.createVariableDeclarationList( - [ - ts.factory.createVariableDeclaration( - ts.factory.createIdentifier(getQueryKeyFnName(queryKey)), - undefined, - undefined, - ts.factory.createArrowFunction( - undefined, - undefined, - params ? [params, overrideKey] : [overrideKey], - undefined, - EqualsOrGreaterThanToken, - queryKeyFn(queryKey, method), - ), - ), - ], - ts.NodeFlags.Const, - ), - ); -} - -function queryKeyFn( - queryKey: string, - method: VariableDeclaration, -): ts.Expression { - return ts.factory.createArrayLiteralExpression( - [ - ts.factory.createIdentifier(queryKey), - ts.factory.createSpreadElement( - ts.factory.createParenthesizedExpression( - ts.factory.createBinaryExpression( - ts.factory.createIdentifier("queryKey"), - ts.factory.createToken(ts.SyntaxKind.QuestionQuestionToken), - getVariableArrowFunctionParameters(method) - ? // [...clientOptions] - ts.factory.createArrayLiteralExpression([ - ts.factory.createIdentifier("clientOptions"), - ]) - : // [] - ts.factory.createArrayLiteralExpression(), - ), - ), - ), - ], - false, - ); -} - function createInfiniteQueryParams( pageParam?: string, nextPageParam?: string, diff --git a/tests/__snapshots__/createSource.test.ts.snap b/tests/__snapshots__/createSource.test.ts.snap index 777074a..88a3e5e 100644 --- a/tests/__snapshots__/createSource.test.ts.snap +++ b/tests/__snapshots__/createSource.test.ts.snap @@ -32,8 +32,14 @@ export type FindPaginatedPetsQueryResult = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; +export const useAddPetKey = "AddPet"; +export const UseAddPetKeyFn = (mutationKey?: Array) => [useAddPetKey, ...(mutationKey ?? [])]; export type PostNotDefinedMutationResult = Awaited>; +export const usePostNotDefinedKey = "PostNotDefined"; +export const UsePostNotDefinedKeyFn = (mutationKey?: Array) => [usePostNotDefinedKey, ...(mutationKey ?? [])]; export type DeletePetMutationResult = Awaited>; +export const useDeletePetKey = "DeletePet"; +export const UseDeletePetKeyFn = (mutationKey?: Array) => [useDeletePetKey, ...(mutationKey ?? [])]; " `; @@ -49,9 +55,9 @@ export const useFindPets = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); export const useFindPetById = , TQueryKey extends Array = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); export const useFindPaginatedPets = , TQueryKey extends Array = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); -export const usePostNotDefined = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); -export const useDeletePet = , TContext = unknown>(options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); +export const useAddPet = , TQueryKey extends Array = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UseAddPetKeyFn(mutationKey), mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = , TQueryKey extends Array = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UsePostNotDefinedKeyFn(mutationKey), mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = , TQueryKey extends Array = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UseDeletePetKeyFn(mutationKey), mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); " `; @@ -116,8 +122,14 @@ export type FindPaginatedPetsQueryResult = {}, queryKey?: Array) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; +export const useAddPetKey = "AddPet"; +export const UseAddPetKeyFn = (mutationKey?: Array) => [useAddPetKey, ...(mutationKey ?? [])]; export type PostNotDefinedMutationResult = Awaited>; +export const usePostNotDefinedKey = "PostNotDefined"; +export const UsePostNotDefinedKeyFn = (mutationKey?: Array) => [usePostNotDefinedKey, ...(mutationKey ?? [])]; export type DeletePetMutationResult = Awaited>; +export const useDeletePetKey = "DeletePet"; +export const UseDeletePetKeyFn = (mutationKey?: Array) => [useDeletePetKey, ...(mutationKey ?? [])]; " `; @@ -132,9 +144,9 @@ export const useFindPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseGetNotDefinedKeyFn(clientOptions, queryKey), queryFn: () => getNotDefined({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); export const useFindPetById = = unknown[]>(clientOptions: Options, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPetByIdKeyFn(clientOptions, queryKey), queryFn: () => findPetById({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); export const useFindPaginatedPets = = unknown[]>(clientOptions: Options = {}, queryKey?: TQueryKey, options?: Omit, "queryKey" | "queryFn">) => useQuery({ queryKey: Common.UseFindPaginatedPetsKeyFn(clientOptions, queryKey), queryFn: () => findPaginatedPets({ ...clientOptions }).then(response => response.data as TData) as TData, ...options }); -export const useAddPet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); -export const usePostNotDefined = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); -export const useDeletePet = (options?: Omit, TContext>, "mutationFn">) => useMutation, TContext>({ mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); +export const useAddPet = = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UseAddPetKeyFn(mutationKey), mutationFn: clientOptions => addPet(clientOptions) as unknown as Promise, ...options }); +export const usePostNotDefined = = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UsePostNotDefinedKeyFn(mutationKey), mutationFn: clientOptions => postNotDefined(clientOptions) as unknown as Promise, ...options }); +export const useDeletePet = = unknown[], TContext = unknown>(mutationKey?: TQueryKey, options?: Omit, TContext>, "mutationKey" | "mutationFn">) => useMutation, TContext>({ mutationKey: Common.UseDeletePetKeyFn(mutationKey), mutationFn: clientOptions => deletePet(clientOptions) as unknown as Promise, ...options }); " `; diff --git a/tests/__snapshots__/generate.test.ts.snap b/tests/__snapshots__/generate.test.ts.snap index 7ba9dde..e95e4cb 100644 --- a/tests/__snapshots__/generate.test.ts.snap +++ b/tests/__snapshots__/generate.test.ts.snap @@ -63,10 +63,25 @@ export const UseFindPaginatedPetsKeyFn = ( queryKey?: Array, ) => [useFindPaginatedPetsKey, ...(queryKey ?? [clientOptions])]; export type AddPetMutationResult = Awaited>; +export const useAddPetKey = "AddPet"; +export const UseAddPetKeyFn = (mutationKey?: Array) => [ + useAddPetKey, + ...(mutationKey ?? []), +]; export type PostNotDefinedMutationResult = Awaited< ReturnType >; +export const usePostNotDefinedKey = "PostNotDefined"; +export const UsePostNotDefinedKeyFn = (mutationKey?: Array) => [ + usePostNotDefinedKey, + ...(mutationKey ?? []), +]; export type DeletePetMutationResult = Awaited>; +export const useDeletePetKey = "DeletePet"; +export const UseDeletePetKeyFn = (mutationKey?: Array) => [ + useDeletePetKey, + ...(mutationKey ?? []), +]; " `; @@ -338,14 +353,17 @@ export const useFindPaginatedPets = < export const useAddPet = < TData = Common.AddPetMutationResult, TError = AddPetError, + TQueryKey extends Array = unknown[], TContext = unknown, >( + mutationKey?: TQueryKey, options?: Omit< UseMutationOptions, TContext>, - "mutationFn" + "mutationKey" | "mutationFn" >, ) => useMutation, TContext>({ + mutationKey: Common.UseAddPetKeyFn(mutationKey), mutationFn: (clientOptions) => addPet(clientOptions) as unknown as Promise, ...options, @@ -353,14 +371,17 @@ export const useAddPet = < export const usePostNotDefined = < TData = Common.PostNotDefinedMutationResult, TError = PostNotDefinedError, + TQueryKey extends Array = unknown[], TContext = unknown, >( + mutationKey?: TQueryKey, options?: Omit< UseMutationOptions, TContext>, - "mutationFn" + "mutationKey" | "mutationFn" >, ) => useMutation, TContext>({ + mutationKey: Common.UsePostNotDefinedKeyFn(mutationKey), mutationFn: (clientOptions) => postNotDefined(clientOptions) as unknown as Promise, ...options, @@ -368,14 +389,17 @@ export const usePostNotDefined = < export const useDeletePet = < TData = Common.DeletePetMutationResult, TError = DeletePetError, + TQueryKey extends Array = unknown[], TContext = unknown, >( + mutationKey?: TQueryKey, options?: Omit< UseMutationOptions, TContext>, - "mutationFn" + "mutationKey" | "mutationFn" >, ) => useMutation, TContext>({ + mutationKey: Common.UseDeletePetKeyFn(mutationKey), mutationFn: (clientOptions) => deletePet(clientOptions) as unknown as Promise, ...options, diff --git a/tests/createExports.test.ts b/tests/createExports.test.ts index f0cfcd0..b09abe1 100644 --- a/tests/createExports.test.ts +++ b/tests/createExports.test.ts @@ -57,6 +57,12 @@ describe(fileName, () => { "UseFindPetByIdKeyFn", "useFindPaginatedPetsKey", "UseFindPaginatedPetsKeyFn", + "useAddPetKey", + "UseAddPetKeyFn", + "usePostNotDefinedKey", + "UsePostNotDefinedKeyFn", + "useDeletePetKey", + "UseDeletePetKeyFn", ]); const mainExports = exports.mainExports.map( From edf979d6b75385bcdbf90a2fc8bff24c875d8a12 Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:52:19 +0900 Subject: [PATCH 5/6] feat: Create a doc site --- .vscode/extensions.json | 4 + README.md | 334 +- docs/.gitignore | 21 + docs/README.md | 12 + docs/astro.config.mjs | 35 + docs/package.json | 19 + docs/public/favicon.svg | 16 + docs/src/assets/logo.png | Bin 0 -> 33593 bytes docs/src/content/config.ts | 6 + docs/src/content/docs/contributing.md | 47 + docs/src/content/docs/examples/nextjs.md | 6 + .../content/docs/examples/tanstack-router.md | 6 + docs/src/content/docs/examples/vite-react.md | 6 + docs/src/content/docs/guides/cli-options.mdx | 91 + docs/src/content/docs/guides/introduction.mdx | 192 + docs/src/content/docs/guides/usage.mdx | 219 + docs/src/content/docs/index.mdx | 32 + docs/src/content/docs/license.md | 9 + docs/src/env.d.ts | 2 + docs/tsconfig.json | 3 + pnpm-lock.yaml | 3809 ++++++++++++++++- src/cli.mts | 9 - src/generate.mts | 1 - vitest.config.ts | 2 +- 24 files changed, 4449 insertions(+), 432 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 docs/.gitignore create mode 100644 docs/README.md create mode 100644 docs/astro.config.mjs create mode 100644 docs/package.json create mode 100644 docs/public/favicon.svg create mode 100644 docs/src/assets/logo.png create mode 100644 docs/src/content/config.ts create mode 100644 docs/src/content/docs/contributing.md create mode 100644 docs/src/content/docs/examples/nextjs.md create mode 100644 docs/src/content/docs/examples/tanstack-router.md create mode 100644 docs/src/content/docs/examples/vite-react.md create mode 100644 docs/src/content/docs/guides/cli-options.mdx create mode 100644 docs/src/content/docs/guides/introduction.mdx create mode 100644 docs/src/content/docs/guides/usage.mdx create mode 100644 docs/src/content/docs/index.mdx create mode 100644 docs/src/content/docs/license.md create mode 100644 docs/src/env.d.ts create mode 100644 docs/tsconfig.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..22a1505 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/README.md b/README.md index 3f849de..8ca0d3f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # OpenAPI React Query Codegen -> Node.js library that generates [React Query (also called TanStack Query)](https://tanstack.com/query) hooks based on an OpenAPI specification file. +> Code generator for creating [React Query (also known as TanStack Query)](https://tanstack.com/query) hooks based on your OpenAPI schema. [![npm version](https://badge.fury.io/js/%407nohe%2Fopenapi-react-query-codegen.svg)](https://badge.fury.io/js/%407nohe%2Fopenapi-react-query-codegen) @@ -11,335 +11,3 @@ - Generates query keys and functions for query caching - Generates pure TypeScript clients generated by [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) -## Installation - -``` -$ npm install -D @7nohe/openapi-react-query-codegen -``` - -Register the command to the `scripts` property in your package.json file. - -```json -{ - "scripts": { - "codegen": "openapi-rq -i ./petstore.yaml -c @hey-api/client-fetch" - } -} -``` - -You can also run the command without installing it in your project using the npx command. - -```bash -$ npx --package @7nohe/openapi-react-query-codegen openapi-rq -i ./petstore.yaml -c @hey-api/client-fetch -``` - -## Usage - -``` -$ openapi-rq --help - -Usage: openapi-rq [options] - -Generate React Query code based on OpenAPI - -Options: - -V, --version output the version number - -i, --input OpenAPI specification, can be a path, url or string content (required) - -o, --output Output directory (default: "openapi") - -c, --client HTTP client to generate (choices: "@hey-api/client-fetch", "@hey-api/client-axios", default: "@hey-api/client-fetch") - --format Process output folder with formatter? (choices: "biome", "prettier") - --lint Process output folder with linter? (choices: "biome", "eslint") - --operationId Use operation ID to generate operation names? - --serviceResponse Define shape of returned value from service calls (choices: "body", "response", default: "body") - --enums Generate JavaScript objects from enum definitions? (choices: "javascript", "typescript") - --useDateType Use Date type instead of string for date types for models, this will not convert the data to a Date object - --debug Run in debug mode? - --noSchemas Disable generating JSON schemas - --schemaType Type of JSON schema [Default: 'json'] (choices: "form", "json") - --pageParam Name of the query parameter used for pagination (default: "page") - --nextPageParam Name of the response parameter used for next page (default: "nextPage") - --initialPageParam Initial page value to query (default: "initialPageParam") - -h, --help display help for command -``` - -### Example Usage - -#### Command - -``` -$ openapi-rq -i ./petstore.yaml -``` - -#### Output directory structure - -``` -- openapi - - queries - - index.ts <- main file that exports common types, variables, and queries. Does not export suspense or prefetch hooks - - common.ts <- common types - - ensureQueryData.ts <- generated ensureQueryData functions - - queries.ts <- generated query hooks - - suspenses.ts <- generated suspense hooks - - prefetch.ts <- generated prefetch functions learn more about prefetching in in link below - - requests <- output code generated by @hey-api/openapi-ts -``` - -- [Prefetching docs](https://tanstack.com/query/latest/docs/framework/react/guides/advanced-ssr#prefetching-and-dehydrating-data) - -#### In your app - -##### Using the generated hooks - -```tsx -// App.tsx -import { useFindPets } from "../openapi/queries"; -function App() { - const { data } = useFindPets(); - - return ( -
      -

      Pet List

      -
        {data?.map((pet) =>
      • {pet.name}
      • )}
      -
      - ); -} - -export default App; -``` - -##### Using the generated typescript client - -```tsx -import { useQuery } from "@tanstack/react-query"; -import { findPets } from "../openapi/requests/services.gen"; -import { useFindPetsKey } from "../openapi/queries"; - -function App() { - // You can still use the auto-generated query key - const { data } = useQuery({ - queryKey: [useFindPetsKey], - queryFn: () => { - // Do something here - return findPets(); - }, - }); - - return
      {/* .... */}
      ; -} - -export default App; -``` - -##### Using Suspense Hooks - -```tsx -// App.tsx -import { useFindPetsSuspense } from "../openapi/queries/suspense"; -function ChildComponent() { - const { data } = useFindPetsSuspense({ - query: { tags: [], limit: 10 }, - }); - - return
        {data?.map((pet, index) =>
      • {pet.name}
      • )}
      ; -} - -function ParentComponent() { - return ( - <> - loading...}> - - - - ); -} - -function App() { - return ( -
      -

      Pet List

      - -
      - ); -} - -export default App; -``` - -##### Using Mutation hooks - -```tsx -// App.tsx -import { useAddPet } from "../openapi/queries"; - -function App() { - const { mutate } = useAddPet(); - - const handleAddPet = () => { - mutate({ body: { name: "Fluffy" } }); - }; - - return ( -
      -

      Add Pet

      - -
      - ); -} - -export default App; -``` - -##### Invalidating queries after mutation - -Invalidating queries after a mutation is important to ensure the cache is updated with the new data. This is done by calling the `queryClient.invalidateQueries` function with the query key used by the query hook. - -Learn more about invalidating queries [here](https://tanstack.com/query/latest/docs/framework/react/guides/query-invalidation). - -To ensure the query key is created the same way as the query hook, you can use the query key function exported by the generated query hooks. - -```tsx -import { - useFindPetsByStatus, - useAddPet, - UseFindPetsByStatusKeyFn, -} from "../openapi/queries"; - -// App.tsx -function App() { - const [status, setStatus] = React.useState(["available"]); - const { data } = useFindPetsByStatus({ status }); - const { mutate } = useAddPet({ - onSuccess: () => { - queryClient.invalidateQueries({ - // Call the query key function to get the query key - // This is important to ensure the query key is created the same way as the query hook - // This insures the cache is invalidated correctly and is typed correctly - queryKey: [UseFindPetsByStatusKeyFn({ - status - })], - }); - }, - }); - - return ( -
      -

      Pet List

      -
        {data?.map((pet) =>
      • {pet.name}
      • )}
      - -
      - ); -} - -export default App; -``` - -##### Using Infinite Query hooks - -This feature will generate a function in infiniteQueries.ts when the name specified by the `pageParam` option exists in the query parameters and the name specified by the `nextPageParam` option exists in the response. - -The `initialPageParam` option can be specified to set the intial page to load, defaults to 1. The `nextPageParam` supports dot notation for nested values (i.e. `meta.next`). - -Example Schema: - -```yml -paths: - /paginated-pets: - get: - description: | - Returns paginated pets from the system that the user has access to - operationId: findPaginatedPets - parameters: - - name: page - in: query - description: page number - required: false - schema: - type: integer - format: int32 - - name: tags - in: query - description: tags to filter by - required: false - style: form - schema: - type: array - items: - type: string - - name: limit - in: query - description: maximum number of results to return - required: false - schema: - type: integer - format: int32 - responses: - '200': - description: pet response - content: - application/json: - schema: - type: object - properties: - pets: - type: array - items: - $ref: '#/components/schemas/Pet' - nextPage: - type: integer - format: int32 - minimum: 1 -``` - -Usage of Generated Hooks: - -```ts -import { useFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; - -const { data, fetchNextPage } = useFindPaginatedPetsInfinite({ - query: { tags: [], limit: 10 } -}); -``` - -## Development - -### Install dependencies - -```bash -pnpm install -``` - -### Run tests -```bash -pnpm test -``` - -### Run linter -```bash -pnpm lint -``` - -### Run linter and fix -```bash -pnpm lint:fix -``` - -### Update snapshots -```bash -pnpm snapshot -``` - -### Build example and validate generated code - -```bash -npm run build && pnpm --filter @7nohe/react-app generate:api && pnpm --filter @7nohe/react-app test:generated -``` - -## License - -MIT diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..6240da8 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..8004a44 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,12 @@ +This documentation is built using [Astro Starlight](https://starlight.astro.build/). + +You can edit the documentation in the `docs/src/content` directory. + +## Development + +Preview the docs: + +```bash +pnpm --filter docs dev +``` + diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs new file mode 100644 index 0000000..c6a2425 --- /dev/null +++ b/docs/astro.config.mjs @@ -0,0 +1,35 @@ +import starlight from "@astrojs/starlight"; +// @ts-check +import { defineConfig } from "astro/config"; + +// https://astro.build/config +export default defineConfig({ + integrations: [ + starlight({ + title: "OpenAPI React Query Codegen", + social: { + github: "https://github.com/7nohe/openapi-react-query-codegen", + }, + sidebar: [ + { + label: "Guides", + items: [ + { slug: "guides/introduction" }, + { slug: "guides/usage" }, + { slug: "guides/cli-options" }, + ], + }, + { + label: "Examples", + autogenerate: { directory: "examples" }, + }, + { + slug: "contributing", + }, + { + slug: "license", + }, + ], + }), + ], +}); diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..6fd0461 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,19 @@ +{ + "name": "docs", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/starlight": "^0.28.3", + "astro": "^4.15.3", + "sharp": "^0.32.5", + "@astrojs/check": "^0.9.4", + "typescript": "^5.6.3" + } +} diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg new file mode 100644 index 0000000..af0fc59 --- /dev/null +++ b/docs/public/favicon.svg @@ -0,0 +1,16 @@ + + + + + + + diff --git a/docs/src/assets/logo.png b/docs/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0378cd285ae09ea1ba1d6fb3b078985644e923 GIT binary patch literal 33593 zcmeFZ_g9lm)CC$)K|#PmQ9!V~(v+qUK$?IQks`eliqbsm>z08 z(1$=yPE!A#rUSp}N4*FFKhAh+nE5~;j2EeYX&|ZTm%uM+eDu|oA!P&HE8rg|9hJ0| zAdt!rjEAs3=69v2a3u0nMwv3pOYZf? z6z;1sJFP;Eyshs|5@Pw?-me~)NeV@nQ3NK>$^5?H-L>k-@iomP#tK~aLz$nEjL-81~Zhd?I&9L z+`ayxzBUgXLqr`}Y4SsLGVUS8>rwTWJs+HO<1WG7CupU0!nEU(_-#4CI|(&$25u7Y z!`pP>$hC3>DF*5PXratsS;pLF4u5Lyd%n2teVZP%8x?6ccbUIw%N42A(jhN<^tUF- zhX;19ga!f;8`G~(@@d$KoCpmPp5r+^Ihl+ebCJm)G@k`8rd-KOn4elxYBOM~EWhWts^uRko-#ZlImF{=(OA~an71k~%M^9~5`k(SQO z1rC4SCg~BKXzyhmVGi0wEG<}mQ7skp>EX+sSxRq!ePYVF3h~c1N$O!NRvS(M@ zcxCMiZz!qThG^z3w#4&%{cwtPlfn!h+EBdH53m$6h1BU!p@5%KDHgOSnej+h9Ahh< z`a1J(uWQ(#ixvIFO~QtF>bJO4J1JPoeCU;<70P}yg_;INKPxUPZB(yJC`AS z{!uffyCBA<%+y=VQAhC@Vark0$PFI0@;^s#_n z-=8HTBw0b@Se%0k-J=Ouusds?gmA7;cE3F$2mIdiklouIcG@A60d;wz=FK9jC^d(A z{J>@F251~2oMI+4>0rrGcDaP=tEcc#!JyAxw5ZEaGq>!29cywa{F(f@^y>3Xn>5>! z3D79}f(+~uaQf2@pTgj3#nval6iRMSHw4(a(HiuDNDq(v6VMKIn0Y`51#Q z>`?UyV=2%MLezs@-Xo$nmEOz?Uy__v)pk5BgC;Wm05-J+lYpNwb6bPS&w6 z+zPu)ba0fK<^Q?u!P?wsK=m5VgG_9w8kX&wer#*ZYCP+*@rUh^R)#MQ4-Ig;IR!uV~wPB z4DI%$cP!q<0lfa>`&L~9adGklDq*V%on}gHwCYx7HS?Z04UL`keD2_TE#(YYdau>d z;_G9s6EF}QsEwisvGVu!gisbW$IlLzwz$vGVBdEIpfz^Q!PAzr8ga3~>=pwtz!$(* zRMXygt<$+uBg5UfaRT;K(mvi+?BYqcs_X4b^Op)(T^-87L$O%zeHnshKbjf>xQn}U zPt?-WQq2XChR|?Pe{zR~F;Raq-*2IA6bSuQ8>-)ioj6xP9b5~|X;6uPy$(6)M*Zmt z`M=lyKc<^|0O?DiZq{1z$^r_GjVN?x-}_^s&U<)BDjkfWo-hh;!kAKof}f9{a)=JL zN%A4%xdX0gzp9papH4mpzg9Ef{8t{Q_<<$FqnzjYPEcsoWkI+fB}s4J1FIzy^4S3W zdE{M;(oeVJV}1(iJm|1bn1<_dfvl3bCP7S{ly&h&?!AjLzO$U2e*62AOuwM@=iEmlJ>dHR91!=S5U|uKEVR&U2CHmT`u3jPgY7Yq zI`gKB`MXNvI&b~*X)v~?>&G+E!GHbuA?vSd`iY{=ao!{|iGFjAS_IV*@2a=Zv2HHi z7nUD>>KGlIjl%X_zWXGHJZLr$mz;M6mSR|6V0y8(Kazs~9h!dm%Z{>VwKqm9m}?&v zjP_U|W_kBJ3=nt?RztM8(gY>*rhhDUBQC+eiok(8a?{dqdES2GXw2b`t4B^|Ec?AQ zw?6R6hB_YK@#Mmbc&>d4Ga)upj*-JiBYyJT{C?*eL`q(wqFmCTzdI%ad%RXn_T6vB zhQAfH4yvNe6fricfW+6)1mI`x22}e z%p5O1;HVD{bOuM%9~#i-5TQC0rTZ*rSo8GQp2*T&nfA}brM=%vJhGw4hvCW9amo(^ z#7PHH=vFL&Ao7gdnwBS$fL;E+X<|3z*07s#)8aJ^1Z>5~ymDi-*L=rRLaqmen~r|O z1cjHg{#+fWR*#YBe}wv^d}=G7;6EApYZw*ZBCPt=_W(PngX))r7eFA}4_oNCHDHMG z#m#srj|QyApk)f;$|<8ugDyH9opdwyL0-%&M9`$JicrQ!(bs9UDbilrt^P=n$0}M93(-XNMMo^)%m3J(0$&$V%klAV|3&}!@+AND)!IPpQAaQqtMt7O4N;9@zR>*wGI ztyTaTXkkJfm9vum%>1BnT3|5g2~)FJ!zwZD>ers?9Fk3yXSY6mQ2}bE?g>c zH~~pvriG@cl#DOVS7J z-`oSQTnv8e4P1W>`g$wG9~yIf)SM1Go9)MVbca(I94ou$D_Xh#uIK40$~d1PNNIkD zak+bR)}J~pCX5*adutotKIWU)1%V`=xH=t zU;1`t%7$V6jT_7HpQS|sS_tcZHsP0lMqUq=zOab!5>x4A0rNjTxOeUw&Hp^xqONsy zUzm!7S%@cT^GgpCxWGW{CfLF{Z+WV zTx^VPDCuY3FmkM4`udUaILJDxCs6@8?^^9RT7r>`v!noZpNkCzV5@eqD?^JcdB4Gz zk~vJ!AK|_$UDg~lkiU0nxU?z*&P?cQ=5Ze+DriMdnxl_b@x%0?{h{r{7^aPJzvc$N zCGwH}I~2}btJsXFyT|B9$GG2PGcapB*f{mPGi z#|O#_a(zBV?@~ExbQU=3bu$4*8Jix)R5gKhFcHBWxl;Em&5T*JF@Uy3@mu*7jmxb*DC4z7hQLzG}L93AQM`Q zSQ-pT_OXt=oZ$2IaDIRG5bpuv2p;4e8fPYL7<_+qe3l6Og>f%Rg5C37^^kI59#a@_ zpY!wG&tsf!nu>r|elpk|YkI}!@PPLl$TU}mcTGYM^;;4y5vm`#uZQdq>2#^S6D`hj zdr?X5d@$KRGX~y=TU%wsg<>%lvjoq+oliE|ml)td(2W zV{n!k)p00nY1QMg@yNzdis+I$sIhL2iT5S!)4NkD>J_*p2wS6X;4*J4v@Mqv$Z8-h z`!5wz_}#sBPi=oitk6g^Pvm33p22=7iE#oJ8seMz9l5`T)j(5@6aB5pn;iNVb$1n$ zQ>+=W*v+khb(s`xk8+Wi8Pbf3$t;PeC_fULCc4li>btTfP^h6ps1vn1YzJY_^FJ{9 zn|`+@-iXJLY!Hl}NcWvH!;vgMO_2TfhoEOdBOQ&GoK$XXm#|<%w);$sF@(jq1o9GL z=Oi5NVr^+@wJ&!HB25eSHZ6-BX@?QlZ>N>EPwy&Ahzojs`84K@lt&ZUyCuEWU~F$~ zLt!UEr2d7U&?}T;O%yG}v+JbW<2tanp84NN7;Jwwm0tZSWcB!FE9Q8b2~(d1+s8jM zBH>L#<|-dvI_ra<7?f+km{e<C7-BW?!zg9J z7@4hRp`@9>n&f)=_QVus#v~rG4H9aY52NmaaOf2mi)I3K^_j_RWm%tz!mE~8gn8f+ z^3jqZ;tHZ4*_*a;xHCJrtGFRp?7%hC5YTo;&WB(ECOSUoP%8e!pdGkaEtunH5lh*- zH+?3`ip^z1js|557UPOj`jfWn=y?KPVA!9vUGOipBh%uK)88mxD4~N zEXGdp@3Lg+9B^$kgsiNUjQ7;arokP5I^n#VY=)%Fi% zjB|~HYm-vdt6z`fn?qhW=QYDhn5VpNyRt=Gk-cVN9<8}!1R}m?FaTDh&w=4(d*t*A zmLRTc2#)(LBIKnQN`B6Y#tY}M4Lq-ZR4Op->z&?Y{quMDH0l-zwl7alX46X6yxAjY zO~BAQZv$L?)7&lxAB{|)@8WOi@gs68O0&AhJvg*+22!hk7Jjdil!1#30`r;nBXW+; z9fhQXh)K>ItTbnp`W?J9)~hX@6~R0R5n8SIGjoPIdHQQM;jdiWnQ%-K#^J?3XFYb` zxS6Z|ilrR%nUwkJMhTVZq@`y9pn>=~jESKK9tah3V`3}QZjMqxMWkanXj5uED9#{lu% z0K?R9?-W&kN{XP{Xz=TP|Ml`nq+1;tmUpL4o1LentjS11)jaxp^*dU~v@8u5>yRjP z*_}O4go~ZCuTXJk-!%$Z)I0S3#NR5``QKxOm;%ZSN*AxvJGCJolPkEdD}rmQ4QZmWzgqyNaGi7B*oQu3-77p9--6JmxFaQ;&|O zLpgU%YklY62tg-}RM;$Bwm}T3@SufCtHrm|$&@g#ddGU4o>)`~Rs6zdVpN=RBMWEt zm&Q=9J!!-Q?496?6|Lef*uCzeq8Er+v4eleUJBPg7)SpK7o)#$b%3QwuS7z^)-Ap9 z@5v&^b}|siBnKE&e3RxE#%kj{o(U3DeCu?;5^_n@Uux`RsbFUm7>$=Vx-ONW#`}YT z0rmn9By9D}zIw;4k90;kRdBYjJ7XGSP%_TQk{Ft8|f8kqN?c@Y28oHYSE^ou&5F5+gVhwiNnZ|S>Hv07Xn#-7skYF z)}!a=p0Fy({E*GaO(qHX?#^KSeu5tBCxg9d;C?rN`{n+G$u^JR5)`i06~2gRd;EwE z+n*+7Oe-By_m_Mb(lQE?%xgV@nQy=AyY#SpadcQWu4GG!RxHm>AW8J9Sk$NLcXv9ytBhVufw&cT)h1lUdv&4vTh+u1=Ra;O zwywWjSPQii0wibd2?C@j1svwm|G_W9VqWP-NrI_G0QkO{9XEd~YJ`vB=3(21@klU# z{tIACg3a<0J*Z9bpZY7E$xuB|c-VoLPlDh!?w!C*moc(TDork<Qc)@eP+Kvp2nGIDyp-N>!Slz+ zRao>Z@0EWqegHE#aSsp$Z$Pq<@M&auU-6(OChP{(%_;a%_hR2(nh<)_aGUk4J6F@IvCL3^@)M~ zUl_5dVV<7NM>0pZd&~f(qKj9COFO_d+XQZ&p)L~eae6TUvqtt{8jC4JY+rGq6_}U% zNw>b3^gPp37Eux)8{c~XS`9(<+<6Q&^Kgh*&#!*G{-FLw`4(k62Jk6R7eCe7xtS&;_qtl7_TY1KY{>#5HqAd8?Z8cnk5Z!1a6_Y+Q-W2cjQBV1f?y0>A@K3@*4D+1&@B(0AOUwrW(!VL zLG~+RZ9Ip+2074S@JkU3)0nFa|DtFuy^Ke4sgTAs%RElO9^@^HXDwP>EIkTM@zl{A zfo<04^ixc;yZcbGB+g)1IJ_;)EO8`WZ|Eu~z*bunfJv<-^xVRo?mli+laDesT=X7P zk=6w9kx^#Lo3+~adms~}C4|~6fm<#^=RK{E*V;IW0V@5(LOYO8Q&ao}8T$wn-_)a_ zLKn^TfFt)TBXf}^2vyK`cj6gpBGuADFN4St9mce`vd|shCh+6ciPeN?d6BeHb1+&n zODo>j%xo9hTo7U@KNN=yv6BzD6uiR*`VLW14SxPMXufc)3v!6yZmEM1OMnQ{$_wFwTa zBN2gFXHw3`?j+Z`f$kyZ`imI0r$4cH@d%R_31^qGhn6>=(iS%0dD|%mPD%wh7q#JcA=mZ}9{* z7_L^zoK5jQS{%|KXtE~hn`2F_wiHf4JXxqMRfQb%?}Wyr;_W^R{v%Vw+WFE{ZWUQa zLz@9YH+_+YYh9)L;sN(&XP9PzMmtYdc;PT#&*+OkWRJ21aIn1G>~;`_Kx)C+F_~qX zaF?NILV%$=An=k{1ZjMTlbuT|zm~N3KgGQ~@Zkgvna|NGjov(}*9a(8daWQ?)tO-Crg8&Xzrt)db9~hvM zAGiy27EZZoyHMd<@Y6@Pl7{Vb{4)ELEwk_Q!wSFLMo-zATjEUhj8G|*t|iDOm=l3Fv>ZgEr;9DU3X&I#w&TszZxSp^1dKqE*B0;hR1Q6T!sy>ziPLc>P2b+Fao&%1@()$YM9?BXe7oyU zh#U5YGlAmWh5DjWe2ZYS=(AK?pYut$@bqn|nPXHPSdq@0GXTleBCmU79`u0yI%f(T zjA7wzGb3a&es2nX+-S0p|F3_f%QWI`n%0SVTSITB&GoN31PO|MSwJ+1x|8ZMvQ z;622~@y{C`q5n{S!}hZPey(xHt)74?(Y7=^6nF6^kCtZ!JO^>4=o4`L$n;*Lp0lZH zr?|%ca(%0FGv`_ z4iBA2Y#dfmg$)KE86n>VxhhyTp+p~RfpLWli!lYQ0tM4Y0f+15O|AoAXw@KQDNNV< zx^8@R^_-_LxQeEGT5BdbPMpWz#!CekxFWpC&?TK zIDzazC@F7pe*2$82uV4gh&k**WBbRzRxEi0_)W0b!D~|N>}Sw#+U}Mz=DC*Y^c4+@ z_52CSHuoM=_A&LixW;RFLd=8$@mzCssdRC&#H8&6o{+Rj2U+HX?Y&c%^$qQpxcRwf0en{mHjlbqr`w6yJc?2(Im35@A(jxHCRH@txGISjE zX<*md@HwB42n1{GcAzNum6~o1WmL0aEuG>8 zB)bF9rY%X=J?MhoZ%WIvu}vWW+G9fp@@1ZdQTDIt-Muu4U2##u(p~4)d;-({}(7~s|LNz6AlG~rxBNXj1d&;2|NL;=nENa;4w5!D2 zH=6j)Dz5A!sZ>G#0y2l(n1fBdV6?4u^L<)GPLL_XE*>T}m6^-?3?6bF3- zzOoFW+-G_GeoX)w7vs_T7_0L&Z=yB7pS#D*bN?;Zn*D%b_!j3kavIZRl z2~ekjRb*AG$s}m~M2@1L=oPNus}m8PT*}hfYP8T=6PXZ`+m>&4#==HY|86bZMu)LZ zy^|u3m{j5vh83o2oYbxih#Wf|t#*i;c<*k{qUbAA4E(=wANfcN`wf1votY`VSI3ot z@78~V!`>Lh@#3=XrU#|^+tn(3?DbcvCH}Z)S4Eao>>YMHJu~NY`1Ip=NL`?sABT?t zZzdDvuyll&vq3CXR`_lb*|1$-v8|5BqjN$yeh}Vx2LDA3H>>Tm1_3b|HODmn#}fsP zW~6^Da2ilMBO|&;uUs~x*Yo7qJQgpIkACGIE8VsGsDyHcQHS=fCZQ8G_LdB-X4R2 z=TzfR19#)agqQFl)ufNaw$+d!r{U(O z;hN418CL2(FsPYDS5D(B83nR;4v`7w^nL4C>bbQV&OzDkmXo=5OLWQfV5A+^uv6;D zV;!wBQuBhj1MWY<4b!#~NW|)9#zEnJ4lCNkHarx=SVJGYyqDz~y!O0jv!^`M%$#vf z^iVaM-D^?w)=!5XyXIdFj8n#_ni|p&d^EUeoZemh($`&|gcEabsg+`)^)oSdetr&G zXq40T-)_4rBg2Z6Oc-M=ySS{ABz5DY$L> z3#p3_xu)uxz9Z09Yi+1_{xl>LBU_5W(fC1n&ET{0Al+v#G2VS&LSh#*d23Z=i@gCO z{ug;M{Gw>F`w8YWQ0-q;eNiA=6naOqYxBWAWr>zS;}llK;GXHF)}Xc0c9P2%my*f) z=1wXm7|?9w=C6$GB4~0EzFQVJXW95$tOFL_XK~LDZGcPKe)Ju>sKi@>gk!Bv_BwjY zTE7c4ARv7FOR*z!H@C52ZB!_sD>%(u=P50U7&Q%4c+Dd9qzxZ$=wwkl&4C1<_Th9WY|AQMt=VKiO_f+YBa6L!>UH_EO98$1+1%M8#7uOl6%v(ec_vG{ROc%O?8ohTSI{`V2Kg)1aZ>EA3rth71tno&F+I~_L z>iO1tr)t&M-J|A~zqy7HQk;osT#DaW&|wsa6j6r>H%wodhfTt-1sfZ2Rd8rS=;IlT zKl;)`j$RtKh_7H(^8OqGMaNiw*ohZ`$a3=@lUyF)v4pxNrfSBZnPmkEe1K4AxlB7C zw{q(;I)0g>8K?OEsSl0UO_?c^9H$4>hCl5HtQLT`_ zmjK37aj41qY#F>L-0kEpuRV!2lek&DIH;DPo_0w_kLR-LUf?gkqHWoXY12a0&o zRdCDYG%k9Q2{ZG2u5#Ps*?#9|$lr6ItLzYF3)aMF)S5WV`(i=T3$2vq4%=0%IC=Xb(t+>SW`bfU^I`J1Mt8nJld@$-Y1>VuTMor!_+lPzShr@}}wZhGHna|83T zstK*{cBP42Zu0V}`v$tY=9CxK>~tz7NTg_NVK=ATiA)YXFd@{pyru$R zvB|mlD62ElE(N@ff+6glU51sL?@q$GFCwxHiqL;*8yk^LvU%`JEtVilyVg}q1(O!4 zXw<(3rn9-TFcEUN-!(-c7(LZ#cpasj0{_r^G}Zpi+qG@Ewi3CtFC6&_x#H`8S()RL z`F*-=P^kpKKtn0y!R-421U zR|9LP4Y@W4Aw_)=F%7Ka&E##LwU;>?tnq@XJ6No04WfdCla}a)sm46_2TC&h^d#=j ztlGn?NDb%tf5~9%|D@_sBad8DM5uZQ5=ekdnJ2#h4k8rAI6jWnh3BWs$Ge!o^Ta{{ zp6&#g0sYvgH&?hLaN%tu{E(+h+;=$i-y2m{D$2ZpOL)lrJ=*19H<@Up-+squ;g@>0sP}XG(6W;?=hfw*tjB#6)$NO=$_Q)bY{WV z7TL{b5{#=p_jk}2o6qY=VwZS=%^!*Ni2=N>TLDg`JV+E18t8 z&6sk7#*C~D4cDUYuwxrd04XKYy$>X+j8 z9>-#-d78*IJ(=#-g^a03=4wm2p*d9^X9(d5VJtP1k>yl=n&U*uWiZbtg7~fNK;Wm$ zWp7rIA{8k4gzNvdlt1pjxt9Nti98j~+x}Gr0PN>r(b+FoaI_H!rW1DJZ6@S>a-@J@g*hQ*8(^t&DNMlNa1-Vu6|2G0uKS>aD(HCLWWe%QNguiJdC zWt8gBY1Qu*w~VA5D!s}{pRfA%Sx1**R0LPR-Z2AqUmUPR@g7?~nmoH&`Z2Z3q%G+& zQFUO6gtF@-is69ePL5oi5KF+R=@B1dQMzhOCbI_PJeqpI;?IsOQGON2b1dUoXC2gd z%Rbk1yu_OlvC+bcVJjd=-|(c$0)$Nc#ER{<`T9e4J|qk2T+rv#&QyOqS)LW(gbbAD zJ;j}yjx9~%?RzsQzo%%;TITik&C%A0&JD2)@bL%r;Y*w)JnR@bKgeL_*w*u6JG0Zz z*pb^_Pe^!rWt6k8zk!px2`zK-MZI>i5Lp?Ybf$T<|0;#`u#b-qf+o8EEFE zZ#%47^VTnI^P-ph_FoM9!M@-Q5(7YgBH~SKpQe$A!~JI@mTWONJU@_X=`A~XS@FPlW;*$eB5}p zwnyj<^_lIi(mTFyvk6o|3i|`DicQ>qu90Z^typE>bLPK{*NRF_1L`2uG`Nf4I3M4S z(W7(beOg^VYEtL69x`opZj|1G0vEHMiLIW_AI&ga!lyWcH55|^3KmuKkb-7;s)j{v z!uUgQ-j;jVMCjK>3OTs_$YuyfPZi8GaaRS0o}RLa%D3T@`?Gw&-MO4GAsVp0K70Zu z8(J4wm=UuDHMncKwb)0$dsm@8yk@uPs@5{|Lb-J)VZ=cE1kd4d+AW#(Xgv*=-^Dde z+e2eEFb5e+v_Z~z#7g;l`hMhvmzYM9&m6m>z9uXK$57*7)Mfm|jAcTc2ZWokfzh4=1TY>(6P=N5e;t2R(x#~}n*$b!~6Zw_m~HVH4t5q0-?&pgk< zb*i$_=Y_X+b0&q0eF0%L(gH4P@C$=`jOZ6_#6lS9&1x}@@9hs)nDAv?5+H2l&~KNj%G)4r>bGL;t=IX_ZWU7J50e69h@6{W6SNe ztJRdJ{Qv2CjN6bb zq_#Cm2!gy}^{{`A@o4!qkzPD%1@*VCbAW?OktRqE*eM(w>uB@8`lGf$Xq-$oyWVQK zX2F#E$+-5oB^2Y(B*scx}HSx2({CRN5n0^25&l#K`swwN;0 zIW?-*Lf2VPD1;)WZ!Pw7&7>?%5?@YFP#?GF z@a>@T4!56Z)Xn_7=!t-Fj+(%IUye*zwU8c#GGn|Ilb;LSIv{mAP%bfL3xV^8FVU!S zH@RaF>~UuTzt1u?w;FvmA~wanI+sP;^xW%68EBbOXaM=rTnGKjXuw;I|93R*Bqp_1 zuBZz<+lV)qdgIS;x+dj~l|I-c*?$1Gu9iTs!H?`mCpn4$&l3Anhs{Egjjpagxlw#D z`S^H1(E4p^{>xR#Se(wKv9gY{-P)GtegxGPGh;{};X|o)&$Re9;@M&zPnOEw9Y5(x zmTE`jF{0B{8;L46LFj+)S28)0SQII>D5F3BuuW$-^&(BIN%QDc7sgbUHl1^KFR}%w z7qDQcS}IEe)q|Pzm0Kd=Hk&T4x*u zCu-+9xRH>Ymn(!yX%KHFdy8$C$T>f5><~}8Eh#-7|x3O28@8dV9q!F8AZ z9HkNl_%mYdvvDPogzV0F(%N9T4k~6G){m;d7XQNn01clN)w5o9$o{SW6Yz3zjx}Y**D%Yx{R4THkW664#+lsIbimuvYn9a4eKB~;h z-mFw00VD>>d?q{wUsa#JcB`6y**TDfsK!0b3MJc(hP^{P zr-f>uGHS(Otq=K*c)z-Ni_7!ZZSaEN6zjuj;%qwavug=$=*loum&9^o8- zcbMrt=mUE3GOU&%2ph}9WGQ`jlU!rmnKtUptg$eAi48;!Z-r;zP>G#vcB%>#ksD|N zcXi?|E9kfrE@&%-_a$1d^7wUY zm_zJO0J~(3agt2H=9aB3QGr_6D-OH6ItANSdBRtXzz|LSrkOjb+P&g{(q;0qYZfos zEK%P`Srqr^M`Qebs5jozfZ>D|kCVjYPNgxws&_#7#4k+WvI?r(Z@69=)lSvATxf{{vbc!) zQkd?T-|m_U-ZZoN{fnOp>{bQOA z6+ZNb92Aokt&C*3w{yy^OI<6Kn!er5a_yw@U!_&eV!dC_-p*KCaZ1MBa-}ye zp5zUG#!+IN%f1*tkb&uFT1Yn(Yop@(tSQ{@wcAF*Sukd={#a~JDNMmmx*Ci!zc2|M z`IxE>(&*CSIhzneqsAn=XZCWYM{_kk`;DnW>7@Hxyv>xwy1AjlLB}R1}=%<=gNv%#{FcR zvlCKFCP)y(m1j!Zt0S;R<9#+AncR{jO2Y5&KshRb%r^1xUr~}YTH3a3hZb9xI+c1V z`uBGX9Y|g#f3g!6`sj1-VoMzL0zk@ZxBgK#_M^vWB`g;x;X;Bl9jgf4;D;tbVjj?&!ytluTY{cV{s-a*K46(}9)aLo%0yP`Fj3&@H{_^5vS-jmSVoGm$^9%ikhf=9*g%u>9N(w~R-mJjM&c#nYYNOaFa34r|jHMqp} zQLf`VJ-=DYX(5pG0_YDkSj7wjIP;Fx-xAtsZ4efYJCxJq7 zO+6_8UnJ=;Tl2(r%l!8=LH! z?^`>+rbWBsnsBhU#dGpk70>_A%6l9n1oLo(@_hNS>dcmr z_0O94qWhX&$YwFliqcu3)Kms@Rbkn%8-V=qBy0Y=2H#99>mFddEvGRR3oc>^ z4m@i$dPZaH-@?g-Gb5-CY*xkd>%7;Q@t<{i2H))}JxTH#L||(o=TTODbw^voS&**J zKkRjkn&P+2ql4AgHcc=3U1FPbbzP>HtP3uQS&S+AkpWqxO32x{Qx&v=|NIVB7^VaP zRb(nZIt`iPh1*nS>wJJC1Ve3p6aR`ny`Kx4EQbl@7KB;Y2wTyGm2uohfDO*7ctm?Q}w~{yzC1X$ly!dC9^^Mzj}{ey%%sB zrycF~4*#z24%2V!Xw=XaA(OJ~13u$vIK^*lwJ=ikP4nPu?liY0Tb+}8^yBsz;yCyxP zq+!;&HM***Bq0<%IQKO@i(H(}WRjr6 zzkdZ<8Z~z0bO#7)x}@R%Y36*sDhf0lleTZMU+s&?C_zq$23w7B{>*(Nz4=wDLnuZ3j?=8 zpU`{{+`w7iNrS8HR*f4X#0&I$p3;kQVAhlDEGO2yVt)~oTz~$##`U0y^QksG&1sX6 zgNx|K)tPw;_?28^wEi<-J50m<5nLCiQXzGB)8Kz1h>uh@9PevZjt^q)y2dyofz+)} zhOIGoCex`*jYiVA(wCa&TS`t3!XT)sSg!Fj`Z>|Ry!MzOppBYl<_~J#k1-Y{>HJ`7; zWPB;J*2a|`x4XihU&jc15tfCm04>pWhobf2hva%lexZyR2YYCBh;QDLKhpL(?ouY` zxvdC+e3;#^3E$q`Uv`?){{K&V-~H9(wzV5TKtRMole!h9S7}lNm7>xK0W?9XQbRE` z=?EK95YSC;(h&lo2nhnxbW^1F7K#V~4NX9L`_{`o=bmreKj4mW$2j?cF-YFk=R4P& zbIs>j)0PTaT5Ay`8m=&JbH5{ux4S}cVQvWH&VxhF!xciGopGgc5!3Ly<%Qx+=lajG zwi=F+CIx7oZA>UrY-{LHe=5J~k1eliNqg4KCX=6XeYn_V59f=zx<8k*Y*Q$InSyB% z7@w4@5w)Oa9YL7D70S?*r7$Kp5;4`P zke?s2430mhdtP#A3JIC7)iX4PpD&}>mwWi%FfKNd#c(sacpG&`nK5x zz(jCa7U2K}D`#W$;ea&t z+c~??Y;iU-9T8<7)lOp8SSWR1qW+dsU`chhdDAq*q855%3NI}o@SbdQp?<^Rj(}q) z$omkl9rIgt8r0qcGVkHJWW7uQU>?_>2fNTg>uQ6K_zmWORC{I_4foLqdK>UZdOk{>r${a4kk@fhmDa4@f=vD3sU_#-$1zYq^`xJTM4h$gp7~E zdTvJZ9`^$rF1!UD82SM#tAr)paC@ZNtErQe5}NGr7E}9{ zf#%+9)76P0ua*bxU6{m1w!JR{_S>H?!~6w7b4y-K2Bj;3>K2o7?0PB=pOiHG& zl5vRXI{f-ef+&Yurito&eqU*t`OKNpu29tjpJSv!F{$hoVUJ?o_2!0t%qeLHfm;FY z6@%9!*Yy0n>Uy5@*P9i5#CL42BLV3U0N^y&mDVf+?CL+sOhL%kgoi63g%YiCf4T%D zCAd%BdmA{`@@)2K|2WmEtxR8+c&61*kJs%K^PpznHJ0(V$-`=k=oAvh{d)?3-38b$ zsZ;1%o?dE&_{o^sJ*}#^aVxgRjI{&7RuMax?%1M($&pqJKB!{9LSEo9GNP+q76$jVEjeZPse~$%&VDWv296wi)3uUB`<*|%hRhpL};}Zq9XusJ2qJhG-daWuZ z&%HJGFDp-+M}wvSe%c`=O#BS$UUfBRJ!vq2do8(PCraUPr6+?Bd(L^gsP9>t9BnAB z3nJ@L6~DD#3OlQ2aofnT>Gtx*NYX`zPpm%Y!bDH-E3)EyKLW2rhSjKbSx{N(1D(-1 z`iNbU-ZCP-C^PxRu2W|{-Y}JiUvGkpXK%5R5{Wo^ z7GHrDfy!XRSBRzZj{uW2SYY91@OtYhOa-6=VFjPJGR?xY$dpl0L)YAy3-5?OkQ(Zd zkK!POlrj~v)KmR>1u~0ov0xk{({C+I9EoRM2yJsR?8YE$0glIF3|U;W2@c6ifp7w= z1!fSICcyc;<6ta`RgzpT%M(|W)J_U1j==!38_dQC99~BQfj(ft!oNAybKcw@rqsL% zdEF?W$8fL{=gUrZ~jdQA>CFw88 zY|~9sjDi$=P#zrN30}R+LygG)O3j<7z?1`czD$CSV}mX>QbE8iSmsB$Jgd0BzMON% z8hOOp8@bH1(E_-NNYxO+Qv^bGP{ATPs8RhieK%g^D{9EUniphq3}`GgdXGLwZ7B>5 zbUg*5)=A8tC>Ghdp`cN?Yr$~%{cXW5qD%aN-)qVfNED1YaU8L9b#E>q)?PS1`++A3 z*HD-fAr_D3jR9C22z~`RtJnMj>*`W0K6c?=`Z#8TLLcqQltU>b-yBjOhg_b8EkVmE zSlWArkb5UAA`ekgb6uV!w;$N}e+CW0m@orG-$Q+ptyzk)5l=*${>s zaDRTsHv^LGfFuaY;(-YYH-7|qnfRCRawEfEYh&{bk-~8ggW;GXZrA{z1%WXS%_BrD zolc<<#d9x+gEF3oGK$7H2#TjcLbwbYIT8(TbCg2MT)F{XFRQu7n|?`{ zr4}R!*_ie(Fl_9&vve=a5|~CHz4>3nMg<71@=MHa*3AD5$Wr_gPY=SL8V!?V{NIoL zU-U^y+6wEEnO?f0r%s?&Fc?DEjsis&n!n~wd(v+hY*pIDm0|P*oC;Px;uApaNH#+w zdRPs@q3Ne(he2~fmOVYPRNpUOdG1&ig2@P8U85*!8Q@zYW^XR3g$Xm6` z3uhaTP6je=AH;UcQ?HI~yo%yvB#je$P{Jye@Gu1KdTirah;Ec)f1Uki;wlTM2^?U7 zto(q#E=8Rncz}3laA;f(9lkFUukD=NY9C=3Cm(SKb3K$X_z;>pcM&{MFS`(V78h|X z_hrwie+v~U#8_BY`b@#YXe(xe4P}93KNc953{X-i|&57GhtS1 z=JxfDFu{y6_~+G=2!YOk;MM_W4?jYDAx&I z3k3S^iPm9m*2`v_4>00macb{6-P!d@5viVv>0lj)P^hCy|LB7-IchJL!zioyK_L=` zB|)G{*x|ghQF*3>d{)T6`b5GTqPzRQIt%n6gx^~+e<-g(XiyVB?iZ zffsRt z$AS^Ia|)Vo9%}hlNRL~LCm=zvDHgbd{wPTsw{EiNMz&GxJcgd(Pv}ibJB-=?Q%Kz6+(z!^6XZ^fiZ5 zQ6yM!%w_NlS&BVTxyfSZKu zxuqqp_%e;H%ZlpTETm1abAluJ!#!3gvq#<+bkF;oBT-H<=bTu_5qTcpk<1>8liolF zK*lf3ApZ6o7@L(}8BRCu`nVw5x5~|Ki`tVsy=+ScAD26gG>vzmUCj8>Yg&;0#u*iB zA3b@DSyPQrS;52(TPqd=w0J#MmpM4*3N$m|ov2KPiz_gYzXsb3=YQBZPC;ykgx123 z9>!I;Ee>ZOK2rY5f+Wckqo<*t-Qcmt)d5Z+uN*YZH=*h$XJnU}mpY0(FbyQc+xvv!! zfspB~2c7SR-kNGK<$%%)&?Uu!Oihm;HK0;`@!E8ZKSpc5bn-2|=>+L&FzvU}w9~L) zj=TdcHf7Pfmz`zoa?p7?vL~|R&hv?jrOnxFw`-fHhD-W8l)U>_?JarwpCL<8Clf8S zKIKO=J)W-Ot7NbhB*5Mg`!5TFlA=~ z0;bKd`V{f`i4!&(3E*a%)+mwC02KM@7f6#F-GKrc&7$`LWD(JDj84x1UI{v{Q~?P_ z^--S&HG59-|2(RsFaCyy6JC|(r-d7~S-NHPvY)*bDF`#jQyF~4oFiyAQ+IJ$OLA=y z9I2GJ5mz2T%q|Cgdy@HPY~Rk-20JOx3)dOUnR~`Gn`Rdrs5f5Lu6|%YK|Fx6afAtU zYB*>K>oCkWU%6l~7YT37j zl0R*nI`YFdIxVRWxJ%JERBHL*`I;~Pm0Hf-wPGJX|Czn3tC3`W>4?%s*D~GnCBv+s zp&N~Vm3K=J#RFv59w~$%!-4zjS5tS7oa{%$jsiu~0*KMRr+@YpAgnN<) z7cS!U2J-1vu!>(daMK+$B=+goO{uKbcP7&=$_{%G(gq$R8uf}Bdj_NpIgtW?>rW6#k0MX0R(=s_LPOLG*}q8b|QcPqX$b4d%8vv$Ji6&62$A)Vgq5E z(5nn8an8oSU+|4Q+gJ5~y!=ql!A+9ma?f($(=`vBmo$h{4FS_x=h6w$Sr;fA}KoUK@7A@*<>(S~|{`{{5`0*u%IyV5)hcp<*!32faBx+r}plG`5qq!B}XXIBIj%yUTkT^vK)b_=5C5i46g9D zJs)-?`!$OEy7r2PQC`~AtEU~i)D@!-VuYFAML)eB#3%>OLSRW}gygfrNS8P@8VWjX zid;OllT<7g_83kdsZEc@$EzL@zPR(AYrw~c0Q&vm&?Y*xo4KC zAPb}g!5Y;^19RL76cpW^o41GBe%Ve;tuFsGEmSzx*$w%R*bWeNRsT}P@z~0p+3?!{G2yKSDpLwne zZBP7~0$9yIsT69!;y#_uB#Jn{lnRs<2_@gTIA0#HIQN|)s=!?PY5l38zB}@2A#19u z7?lrB$LR{qHAmX>m1^y#|w&*=JJVK0fj6w;IT zM3Fwm`=Ha?!gDCvl?ivv{k_p&7D`>6S~~0F`akbaPY=Yf)_N_sjM;0JDINFL+t~1! z>BlaQA5ZxEy!-ox15=nTWN7fWmqx1w)?XqD+vFD#g;O(?^>mY4fhsNAzpI)Nd0xag z`iZTD%&qoNFVoUy@`q67!b?5XZSTdDzj zPe>g8u6FHJ7k^u9ufL+nsS_rz5?$Y{SVE=2h{M%fD}jlHj;v`V%x(JhnU7_hHmhu0=FYSvE`QH2|-{lJ4nZtp|knhD?YT zi!`}@z#|4w3Ng6K7x{5|chz)^Hpf%6T@P}nlY~Jc%S0t40GpiGyG~E#)She1hwSu= zg@(rHEaTsLQ%XnbrI$BGtwk2f8LM8%<;r>p7mW+AmSx1_Y zq`%Pf=ffYO-=tt%%O+ri6TtKX-6HFbw+juP7(=B|=eX9Q*rG3eFjDz=rw=+$wlV@M z#3}l|*4J4#7CYL`PjqzaRtCvTAw!y?a)P4r!D5ho!H>+rj=sRY^Fddc&XV>}*c^M_s(yN+U9rG$v<({k{vwW8?j+8L@_T|D<7WkAh z6o=p3-bUlYx41>5FD>NIy%=(O-%V5YR_--FvbPqOSN zNL_(tvT(2o4>oma$;)G%%kFEDth7Qyb?sLltuB39zo}r{h1Jx0N~oNn$@p0F0WQqX zIjCu#z?179v}byklcn>6&kOevY*S6>zV3TpMonNL!Yc33vA}b~?BkTH_Vc_`-P;_K zB71`D3Kf>?w&j#c(PzY_FESc=Dq#^Sb`P3|Uukw8);4!WaX#&~?b{NH6eYXiK2=}m zWXuBffrLj`WsBt-juDPTcdic)e{Y#Al#?_oe@!kgeVUXIQ<*G?%E~Cv`*eJG^Y9zP ziy^hmabq&u;L+>;k-Y7{1&P8(W{PZ-sX9ZjWHI>Pt(zb`5BeSMs}-w z$iQSmH-@zQC?$jWVtXBH9%=~L(m43%lzA6J<`0wIWqXqHHhLxx&3?6gwFu0oClLkM z7E(D%;+tvMf_6s7zD1Wj;{C1l<6IZt<5bIQW={Pry|Q3~t%S_4#fgdRXDS@`+q{&D zE*nbEm*?FpE$OnURdB}@&LF3)Lu=*Dp1n!oXk-}UH+27kzflC{7eIbsmHh#s-7~h8 zT!G10Q$l3-CTl9&=<6}RR$f(jI7(Y8@C$f%9?2|_(J}}JM*QfvsWT`IPEM$v`^nYA zf4eygdQz`S0^%Q7X8a3W_S;ls;q?jen*J`f6k%sZKTh!zxowdH3af#otO#e@12ereYU@<{R0dc=W6g z?%Vn8>h^1jnX+mQQ=i@wv37jY(iTv5&}Vz%Tra}(rm{wcW#wm`7<3__;i z*{|BIL#xbJs3kE_|Aw@R?4_$Brs8b8NSgSaw#ZevD!AhrlZ79$Haw_{4vdo@r|UK= zHW(*`_g?h}egu}pd+la~q*u`TTwitnXH<|P8zUZC>|gyCM@fp56%jP~8OR#O$EOrrBAFBQ+<$$AkNO1df=;(udrS|ZM9myksWd} z3k|VZDdp+wE{K~$=prp@YrP?mv>l)EyxIvhyPhhMNY15^P~SzgKP~8_Aa2g}sWl}C z8apX%b1Mb7PmQBx(r{V5fFTf&7wAlQwWF|O`8VzNH<{kuke=KaT^AwQokJ%(iHtDG z2l5c#+qy@Xdao!s$`Sef?5E4A@*Hu2UAkIID}VjF7Ho01O_AQ;>V>|*Jo&uBHhq)X z2)+LYcUrp-`pL?8CXs=FNNzP5U$VBwnuWKUfSl1N7qhW*H5-LFZ16dEDGFmJHP1iN z6d$3~vMxh&Ht4gubFpsk+$K`zuTRKw__*eKS$h#qD-#IruW+>+N|3i z;qXx^m8(f(QQP)7?#fu}^7@|c)>HQj6^mt=Qy^WXleZk|^3b=8Id-#Hu@8kI9+IQR9|CC{eL%| z!iNT0d#;RkFi^;7(j&8uc>B5dJa%zL@04IVpIoix*(_5Ds}=)xP=lt~?PRl07c~ zXpLHaNG}2v{-@DJj*`5iXl|x0N_#G7PaM)} zV@+>T4@axXqwbb^7cqG?{9Y+?cI6e@80EjoRaZw=Prk_hdJ^w6($U%Q)#=)CadN8k zxQZaffDAsS1pjT=VqUA4bqQNhFWcY+&WmWXnC(zf-g zG7gTsr(k}(Fzd%^{n>w`HL_yzwr6Hk);Pxu(j71J7&Xw7$0GNBg!kFE=VAAYqlK3< zjEw{2^Y*5C^9`1bI*g<18iMu*b4`u(&MY_$e+eDE-~#BA6nK1ovfYKRq(!reILB`u zKYegdXzJDA!;d=$?^?LWUpyb*bW~AHzv~`n>5O4BoJgMc ztA1neaC^F8@bAWD{bO=N&m?oRL+BCSegQ5d)6*hqu}||Fr&>E~f2#j*U8w+Dy|-{= z&n??EbDk0 ze*NNki#fQgm>y_s+>x$lw_H7Oj8)Af{_GrV8q+zvDZRPfIXDyeaB%(Z=3&0*6T!>l zXdUC;BaP4awWsyAHwl13%i`A}ukusd?Z{Q}DsO&bI?m)Ru3M>yDr`t1e|a6@jfHzj1awR7{$GgF9v6UQ{}xtojKNI@6&%G6Hzt=U4YT zw;!|o;q<4Iq>mz){=}M{FRk5Pe7t73xsa|ni}NMAB^N%#M@1LmV#^8>!ki?Nfx3cO z%$S0mnK%7*z?&nom%vBAp;wR(ay7~R+T&U;=RDE;vaz>a*C$wo%|gFI{{P3&6Z5O4 z@BD{yD-evR_da-K-b)V|hY}5*j{0-t_~58}g%+Rj(+vSymJAmGEey7nMac?lg8R^-Vw>y~W;>+xR5v zomP+?hbuUswbEC3I+#9k=8@O>Q{QiG^=$w7p%>5+!h$^o-7DdCWvym%D<)cNpC@A2 z>_SaYL`h`0Kq<9<^^k6sYuyAxrYtm5i@(3FhrZmP@RqB%ULfAN$!Zs3B61nU{f_H; zVw6NV0?Xx0AGQUZiJ)&KcWh0qwVrjnL@Jp}s;kE-a_fY_vk>7zOiq`c2sVo-@jP=Y z^>OOegF2yWfYdCyy@P7uHv(wT}FP|ZXAs#7R&24Ro)=$tjef- zGn#aU@g2~Bkqgeb^6WTINsy095_3l$WqD=j5m-y#3Cnh}RDrZTL(= z2_3HKiVt4QCVG9zEHnwl)AIO#MEv1MOHB_AJ?Zo~}Hs4As)2 z(<>LKJNDa=hqJ0i)}8^-Imf~+%4jB_1B=YdE{x-FErzB96yq@VA}=t~lLMaca9S9I z5Qc{PR=y-$eyvx?BRXR{wk7<4YUMEs2J02PW?v*>*D!`k)1ACsdhuteJNKtksrjdp zgqZZ=nlCz86sh69h!C;W*O|mxeh&Dc!>L>hZ7YWo)oQm?M<|V~iXalw z1CICo_AIviwES#KY9jk!3V^}rXvW5lvi>vVvc(9WB`LmSx_wZ?Xg8VX|NUscfshMl z{Lg+N$*pCKsxs;tu_8))j@p`xaK{b&ofrW%J-6upG{I`4b z$m%u3{wLRT|7|mw%ee)|k5+2?#wrGhv%h*CrQYmKt;Ud!d%Ul38;osT>hLTeTt&?4 zK}ua3EE@mdew|h7?AW>#5tX*<>n$0Sb2bdFHO;-xReqjBT=<@Y5Ls;_lc*3>yVc_d z;!gv>qZOGX5A9WiQh5Kgb@MoyZ!L?GS@6gV#3>`gdp4vVC6H79RuUp@jH^D!UA^W^ zN2dgHE5efr!lYe2vhsMoSO1JCUQaaFj5oy{UpXa=SK8hBYSC%hSAC8VkY1 z71K~{e_kCi?S&C#BzUvR<=k0zNp5YC*@+d1>GrIZGW|@Tqo33QNuErrgXcXOu>GGy znN$GYu>8`0_Bz<2A;C6ZxGU}(u3aisaV_dXy+(J1&nem^D_Nwl*t>G(>iYQ|=l0F4 zYNZEzKlZi)8z?GTy)q7385B4qXSRIPeIuyQl0 z5472FqTrBp$jueIY()zjRh%!U&|v~%oda$|Z8Q~*WX53MMbX?7(n}nkg26Z->l)@g zGot$JyG}&qImS2c+Y@H48iS0B!dL?J? zN^?D%Yxa&g1(Wmw3LN&476eMwJ+E*yf=BJaH6egFG6(FUebOS>e9-^D zPb%jZ-WY}djd`8w0}>XlpA=FDeUBhp$^=7Sah!bh7%Jd#Qh-$wYAGCQi2#DGFiCF6 zfGN8MBBzt8d%IHwHMG{9n8S=}UWsn;fFONUu$@6suV68cwcSnIL>%G7{kZEZjZ z1w>PwqLlmDNSW;$(D20iU#;AWybq5E?4_q9Z2f4pzX{!-*Ly{QwAyl-^iuT{?hi|+ zNUnw`!*(gxKB$OuITRBm6?5hcF(Gd^4zs3D#GJ2%PG!K4!E)?p=56NSs`k_rDD7Nk zZ7FMo^^^Mt#oicwI>(m)mtC(=MyWLpUob75VsDMa*h1buAo2(CL@0P{5Re>o9$ffP zN;itULX9g2aVaKpXMmihlTRxZlgfnZbOn+fwDZcywv^=Pc3G3VEU(gIw<}|X4tbjz z6*=heQ%TBKnm5S*$=s7l(4(?TSY<)G@iF#t=7*ce$kU_aR~N$A!_#8yS%Az~_AmL9 ze@F|pX0eCMBwV>fco~e-C^2scRB5@kFi^V{LfAw_G*-IgxQR)K?9So^)4Sxr$#Hqc~d zp%&^#S00VDl(>*N1G1U5FCjTu_4>x@3h}5^%2uIyOppBTO&b+hg;N!@U?>(s+I#Dx zk$2$l_scdgwFQ<=$xo|Zl?bU_=}@AqeW&aT$+6{Yt)X!ch}p}en?VNH20i*XtRg&$ zED+^vGp;$;)mKVY1zcmY6u6Dj@~T$zc)W<|yZc31<2!(6<2_NA_IMh=Np}*MKY&9V zF+2zf@v3)M^vMXZ!u3`W=e3Dd&Wo-MtM!4${;mp8bLm=1UYq2hWGr?b9cA+LWk!N=El;Q4$i6kG%f41bQCKZ%{Yv0v5N5BiNZfS8sc) z>=*Q;rbu33ZV4GL)XRum{W5)UxIS{cBq4D(nhF$wy;djxT>(7hpLcqFDG5SrGpj?0J<>H{-Dz_5P619<9qnt(p zTes-@!7)yty+DVD3%=knTPqo>3V!-;nRU`teb#@N2{c@`{=$B)0isU9t;4oVy!LOn(6wD*_?F4`UQC4rd|+Uh&r z4L=rp42lIa3eSwEN@URGCj>jUgXs8T&{kqY6c;TeDE3hx54tQfflE@x%)j^k!j*+F z@GWfRadmt7NT)0?P%}pH$JJwLMGSW!eYZm|v}r_Ms)J;jB1*Hn(@pT zC9quJ${KVYJl1HJ_v}e)H0|-?@nMFVV zf91)Wo1fmHr<7Ys$pqpQEL6@Vl=1OkzQc}kB_ue?kKZ1&lo<~v-$j%zjjrJ<4mavZ z!L?T{Z2&vfwmdD|<6VjBO>k=!Ofm}|5e6^MXNlXqP*!dQ%w2g-siYV#{ROTQ{m5u~ z2hX+ZIpl~28)zyywhY(4q0pbRnTY-a(jH6wWrxxdgZJB%wx^H3`DAgV-fwJ4NP%oc z-_0-8Y1+LBwtTJfWN$j#_63E7J){aG#f+#DwMx=n@xzdc!1QMagtLQto0mL(LRRlp v18Bkj`}yw-{C5WaI|Kinf&brU;KdPRJ&)N8oBV?#XejqJ^wdl4Scd!$Pe>;- literal 0 HcmV?d00001 diff --git a/docs/src/content/config.ts b/docs/src/content/config.ts new file mode 100644 index 0000000..a4eec59 --- /dev/null +++ b/docs/src/content/config.ts @@ -0,0 +1,6 @@ +import { defineCollection } from "astro:content"; +import { docsSchema } from "@astrojs/starlight/schema"; + +export const collections = { + docs: defineCollection({ schema: docsSchema() }), +}; diff --git a/docs/src/content/docs/contributing.md b/docs/src/content/docs/contributing.md new file mode 100644 index 0000000..c2531c4 --- /dev/null +++ b/docs/src/content/docs/contributing.md @@ -0,0 +1,47 @@ +--- +title: Contributing +description: Contributing to OpenAPI React Query Codegen. +--- + +## Prerequisites + +- Node.js v20.16.0 or later +- pnpm v9 + +## Install dependencies + +```bash +pnpm install +``` + +## Run tests +```bash +pnpm test +``` + +## Run linter +```bash +pnpm lint +``` + +## Run linter and fix +```bash +pnpm lint:fix +``` + +## Update snapshots +```bash +pnpm snapshot +``` + +## Build example and validate generated code + +```bash +npm run build && pnpm --filter @7nohe/react-app generate:api && pnpm --filter @7nohe/react-app test:generated +``` + +## Preview the docs + +```bash +pnpm --filter docs dev +``` diff --git a/docs/src/content/docs/examples/nextjs.md b/docs/src/content/docs/examples/nextjs.md new file mode 100644 index 0000000..9aff978 --- /dev/null +++ b/docs/src/content/docs/examples/nextjs.md @@ -0,0 +1,6 @@ +--- +title: Next.js Example +description: A simple example of using Next.js with OpenAPI React Query Codegen. +--- + +Example of using Next.js can be found in the [`examples/nextjs-app`](https://github.com/7nohe/openapi-react-query-codegen/tree/main/examples/nextjs-app) directory of the repository. diff --git a/docs/src/content/docs/examples/tanstack-router.md b/docs/src/content/docs/examples/tanstack-router.md new file mode 100644 index 0000000..4bbc0c1 --- /dev/null +++ b/docs/src/content/docs/examples/tanstack-router.md @@ -0,0 +1,6 @@ +--- +title: TanStack Router Example +description: A simple example of using TanStack Router with OpenAPI React Query Codegen. +--- + +Example of using Next.js can be found in the [`examples/tanstack-router-app`](https://github.com/7nohe/openapi-react-query-codegen/tree/main/examples/tanstack-router-app) directory of the repository. diff --git a/docs/src/content/docs/examples/vite-react.md b/docs/src/content/docs/examples/vite-react.md new file mode 100644 index 0000000..2188c3c --- /dev/null +++ b/docs/src/content/docs/examples/vite-react.md @@ -0,0 +1,6 @@ +--- +title: Vite + React Example +description: A simple example of using Vite with React. +--- + +Example of using Vite with React can be found in the [`examples/react-app`](https://github.com/7nohe/openapi-react-query-codegen/tree/main/examples/react-app) directory of the repository. diff --git a/docs/src/content/docs/guides/cli-options.mdx b/docs/src/content/docs/guides/cli-options.mdx new file mode 100644 index 0000000..e7e8ce5 --- /dev/null +++ b/docs/src/content/docs/guides/cli-options.mdx @@ -0,0 +1,91 @@ +--- +title: CLI Options +description: CLI options for OpenAPI React Query Codegen. +--- + +## Options + +### -i, --input + +The input file path of the OpenAPI schema file. This is a required option. + +### -o, --output \ + +The output directory path for the generated files. The default value is `openapi`. + +### --pageParam \ + +Name of the query parameter used for pagination (infinite query). The default value is `page`. + +### --nextPageParam \ + +Name of the response parameter used for next page. The default value is `nextPage`. + +## --initialPageParam \ + +Initial page value to infinite query. The default value is `1`. + +## Client Options + +Due to the generated clients (Under the `openapi/requests` directory) being based on Hey API, you can pass some options to the Hey API client generator. + +You can find what options are passed to the Hey API client generator in the [generate](https://github.com/7nohe/openapi-react-query-codegen/blob/main/src/generate.mts) function. + +### -c, --client \ + +The HTTP client to use for the generated hooks. The default value is `@hey-api/client-fetch`. +The available options are: + +- `@hey-api/client-fetch` +- `@hey-api/client-axios` + +More details about the clients can be found in [Hey API Documentation](https://heyapi.vercel.app/openapi-ts/clients.html) + +### --format \ + +Process output folder with formatter? The default value is `false`. +The available options are: + +- `biome` +- `prettier` + +### --lint \ + +Process output folder with linter? The default value is `false`. +The available options are: + +- `biome` +- `eslint` + +### --operationId + +Use operation ID to generate operation names? The default value is `true`. + +### --enums \ + +Generate enum definitions? The default value is `false`. +The available options are: + +- `javascript` +- `typescript` + +### --useDateType + +Use Date type instead of string for date. The default value is `false`. + +### --debug + +Run in debug mode? The default value is `false`. + +### --noSchemas + +Disable generating JSON schemas. The default value is `false`. + +### --schemaTypes \ + +Type of JSON schema. The default value is `json`. +The available options are: + +- `json` +- `form` + diff --git a/docs/src/content/docs/guides/introduction.mdx b/docs/src/content/docs/guides/introduction.mdx new file mode 100644 index 0000000..283df3b --- /dev/null +++ b/docs/src/content/docs/guides/introduction.mdx @@ -0,0 +1,192 @@ +--- +title: Introduction +description: OpenAPI React Query Codegen is a code generator for creating React Query (also known as TanStack Query) hooks based on your OpenAPI schema. +--- +import { Code, Tabs, TabItem, FileTree } from '@astrojs/starlight/components'; + +OpenAPI React Query Codegen is a code generator for creating React Query (also known as TanStack Query) hooks based on your OpenAPI schema. + +## Features + +- Generates custom react hooks that use React Query's `useQuery`, `useSuspenseQuery`, `useMutation` and `useInfiniteQuery` hooks +- Generates custom functions that use React Query's `ensureQueryData` and `prefetchQuery` functions +- Generates query keys and functions for query caching +- Generates pure TypeScript clients generated by [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) + + +## Installation + + + + + + + + + + + + + + +Register the command to the `scripts` property in your package.json file. + +```json +{ + "scripts": { + "codegen": "openapi-rq -i ./petstore.yaml" + } +} +``` + +You can also run the command without installing it in your project using the npx command. + +```bash +$ npx --package @7nohe/openapi-react-query-codegen openapi-rq -i ./petstore.yaml +``` + + +## Usage + +For example, let's generate React Query hooks for [the Petstore API](https://github.com/7nohe/openapi-react-query-codegen/blob/main/examples/petstore.yaml). + + + + + + + + + + + + + + +Then you will see the generated code in the `openapi` directory. + +```bash +$ tree openapi +openapi/ +├── queries +│ ├── common.ts +│ ├── ensureQueryData.ts +│ ├── index.ts +│ ├── infiniteQueries.ts +│ ├── prefetch.ts +│ ├── queries.ts +│ └── suspense.ts +└── requests + ├── index.ts + ├── schemas.gen.ts + ├── services.gen.ts + └── types.gen.ts +``` + +Before using the generated hooks, you need to install the required dependencies. + + + + + + + + + + + + + +Then, add the `QueryClientProvider` to your application's entry point. + +Also, you can set the base URL and interceptors for the client generated by `@hey-api/openapi-ts`. + +```tsx +// src/main.tsx +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; +import { QueryClientProvider, QueryClient } from "@tanstack/react-query"; +import { client } from "../openapi/requests/services.gen"; + +client.setConfig({ + baseUrl: "YOUR_BASE_URL", + throwOnError: true, // If you want to handle errors on `onError` callback of `useQuery` and `useMutation`, set this to `true` +}); + +client.interceptors.request.use((config) => { + // Add your request interceptor logic here + return config; +}); + +client.interceptors.response.use((response) => { + // Add your response interceptor logic here + return response; +}); + +export const queryClient = new QueryClient(); + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + + + +); +``` + +In your React application, you can import the generated hooks and use them like this: + +```tsx +// src/App.tsx +import { useFindPets } from "../openapi/queries"; + +function App() { + const { data, error, refetch } = useFindPets(); + + if (error) + return ( +
      +

      Failed to fetch pets

      + +
      + ); + + return ( + <> +

      Pet List

      +
        {data?.map((pet) =>
      • {pet.name}
      • )}
      + + ); +} + +export default App; + +``` + +## Output directory structure + + + +- openapi + - queries + - index.ts Main file that exports common types, variables, and queries. Does not export suspense or prefetch hooks + - common.ts Common types + - ensureQueryData.ts Generated ensureQueryData functions + - queries.ts Generated query/mutation hooks + - infiniteQueries.ts Generated infinite query hooks + - suspenses.ts Generated suspense hooks + - prefetch.ts Generated prefetch functions + - requests Output code generated by `@hey-api/openapi-ts` + + + +To learn more about `prefetchQuery` and `ensureQueryData` functions, check out the following links: + +- [Prefetching & Router Integration](https://tanstack.com/query/latest/docs/framework/react/guides/prefetching) +- [Server Rendering & Hydration](https://tanstack.com/query/latest/docs/framework/react/guides/ssr) +- [Advanced Server Rendering](https://tanstack.com/query/latest/docs/framework/react/guides/advanced-ssr) + + diff --git a/docs/src/content/docs/guides/usage.mdx b/docs/src/content/docs/guides/usage.mdx new file mode 100644 index 0000000..c6a6735 --- /dev/null +++ b/docs/src/content/docs/guides/usage.mdx @@ -0,0 +1,219 @@ +--- +title: Usage +description: Usage of OpenAPI React Query Codegen. +--- + +After generating the React Query hooks and functions, you can start using them in your React application. + +## Using the generated `useQuery` hooks + +```tsx +import { useFindPets } from "../openapi/queries"; +function App() { + const { data } = useFindPets(); + + return ( +
      +

      Pet List

      +
        {data?.map((pet) =>
      • {pet.name}
      • )}
      +
      + ); +} + +export default App; +``` + +Optionally, you can also use the pure ts client in `openapi/requests/services.gen.ts` to customize your query. + +```tsx +import { useQuery } from "@tanstack/react-query"; +import { findPets } from "../openapi/requests/services.gen"; +import { useFindPetsKey } from "../openapi/queries"; + +function App() { + // You can still use the auto-generated query key + const { data } = useQuery({ + queryKey: [useFindPetsKey], + queryFn: () => { + // Do something here + return findPets(); + }, + }); + + return
      {/* .... */}
      ; +} + +export default App; +``` + +## Using the generated `useQuerySuspense` hooks + +```tsx +import { useFindPetsSuspense } from "../openapi/queries/suspense"; +function ChildComponent() { + const { data } = useFindPetsSuspense({ + query: { tags: [], limit: 10 }, + }); + + return
        {data?.map((pet, index) =>
      • {pet.name}
      • )}
      ; +} + +function ParentComponent() { + return ( + <> + loading...}> + + + + ); +} + +function App() { + return ( +
      +

      Pet List

      + +
      + ); +} + +export default App; +``` + +## Using the generated `useMutation` hooks + +```tsx +import { useAddPet } from "../openapi/queries"; + +function App() { + const { mutate } = useAddPet(); + + const handleAddPet = () => { + mutate({ body: { name: "Fluffy" } }); + }; + + return ( +
      +

      Add Pet

      + +
      + ); +} + +export default App; +``` + +Invalidating queries after a mutation is important to ensure the cache is updated with the new data. This is done by calling the `queryClient.invalidateQueries` function with the query key used by the query hook. + +Learn more about invalidating queries [here](https://tanstack.com/query/latest/docs/framework/react/guides/query-invalidation). + +To ensure the query key is created the same way as the query hook, you can use the query key function exported by the generated query hooks. + +```tsx +import { + useFindPetsByStatus, + useAddPet, + UseFindPetsByStatusKeyFn, +} from "../openapi/queries"; + +function App() { + const [status, setStatus] = React.useState(["available"]); + const { data } = useFindPetsByStatus({ query: { status } }); + const { mutate } = useAddPet({ + onSuccess: () => { + queryClient.invalidateQueries({ + // Call the query key function to get the query key + // This is important to ensure the query key is created the same way as the query hook + // This insures the cache is invalidated correctly and is typed correctly + queryKey: [UseFindPetsByStatusKeyFn({ + status + })], + }); + }, + }); + + return ( +
      +

      Pet List

      +
        {data?.map((pet) =>
      • {pet.name}
      • )}
      + +
      + ); +} + +export default App; +``` + + +## Using the generated `useInfiniteQuery` hooks + +This feature will generate a function in infiniteQueries.ts when the name specified by the `pageParam` option exists in the query parameters and the name specified by the `nextPageParam` option exists in the response. + +The `initialPageParam` option can be specified to set the intial page to load, defaults to 1. The `nextPageParam` supports dot notation for nested values (i.e. `meta.next`). + +Example Schema: + +```yml /name: page|nextPage:/ +paths: + /paginated-pets: + get: + description: | + Returns paginated pets from the system that the user has access to + operationId: findPaginatedPets + parameters: + - name: page + in: query + description: page number + required: false + schema: + type: integer + format: int32 + - name: tags + in: query + description: tags to filter by + required: false + style: form + schema: + type: array + items: + type: string + - name: limit + in: query + description: maximum number of results to return + required: false + schema: + type: integer + format: int32 + responses: + '200': + description: pet response + content: + application/json: + schema: + type: object + properties: + pets: + type: array + items: + $ref: '#/components/schemas/Pet' + nextPage: + type: integer + format: int32 + minimum: 1 +``` + +Usage of Generated Hooks: + +```ts +import { useFindPaginatedPetsInfinite } from "@/openapi/queries/infiniteQueries"; + +const { data, fetchNextPage } = useFindPaginatedPetsInfinite({ + query: { tags: [], limit: 10 } +}); +``` diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx new file mode 100644 index 0000000..f2f8d40 --- /dev/null +++ b/docs/src/content/docs/index.mdx @@ -0,0 +1,32 @@ +--- +title: OpenAPI React Query Codegen +description: Get started building your docs site with Starlight. +template: splash +hero: + tagline: Code generator for creating React Query (also known as TanStack Query) hooks based on your OpenAPI schema. + image: + file: ../../assets/logo.png + actions: + - text: Get Started + link: /guides/introduction/ + icon: right-arrow + - text: View on GitHub + link: https://github.com/7nohe/openapi-react-query-codegen + icon: external + variant: minimal +--- + +import { Card, CardGrid } from '@astrojs/starlight/components'; + + + + + Generates custom react hooks that use React(TanStack) Query's useQuery, useSuspenseQuery, useMutation and useInfiniteQuery hooks. + + + Generates custom functions that use React Query's `ensureQueryData` and `prefetchQuery` functions to integrate into frameworks like Next.js and Remix. + + + Generates pure TypeScript clients generated by [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) in case you still want to do type-safe API calls without React Query. + + diff --git a/docs/src/content/docs/license.md b/docs/src/content/docs/license.md new file mode 100644 index 0000000..3c5a360 --- /dev/null +++ b/docs/src/content/docs/license.md @@ -0,0 +1,9 @@ +--- +title: License +description: License of OpenAPI React Query Codegen. +--- + +Our library uses the MIT license. +However, our library heavily depends on `@hey-api/openapi-ts` which uses the FSL license. +Please be aware of this when using our library. +You can find more information about the license of `@hey-api/openapi-ts` [here](https://heyapi.vercel.app/license.html). \ No newline at end of file diff --git a/docs/src/env.d.ts b/docs/src/env.d.ts new file mode 100644 index 0000000..acef35f --- /dev/null +++ b/docs/src/env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 0000000..bcbf8b5 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "astro/tsconfigs/strict" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31392b2..4dcd313 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.4.0 '@hey-api/openapi-ts': specifier: 0.53.8 - version: 0.53.8(typescript@5.6.2) + version: 0.53.8(magicast@0.3.5)(typescript@5.6.2) cross-spawn: specifier: ^7.0.3 version: 7.0.3 @@ -49,6 +49,24 @@ importers: specifier: ^1.5.0 version: 1.6.0(@types/node@22.7.4)(terser@5.34.1) + docs: + dependencies: + '@astrojs/check': + specifier: ^0.9.4 + version: 0.9.4(prettier@3.3.3)(typescript@5.6.3) + '@astrojs/starlight': + specifier: ^0.28.3 + version: 0.28.3(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3)) + astro: + specifier: ^4.15.3 + version: 4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3) + sharp: + specifier: ^0.32.5 + version: 0.32.6 + typescript: + specifier: ^5.6.3 + version: 5.6.3 + examples/nextjs-app: dependencies: '@tanstack/react-query': @@ -160,7 +178,7 @@ importers: version: 1.62.1(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/start': specifier: ^1.58.7 - version: 1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + version: 1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -204,6 +222,58 @@ packages: resolution: {integrity: sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==} engines: {node: '>= 16'} + '@astrojs/check@0.9.4': + resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + + '@astrojs/internal-helpers@0.4.1': + resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + + '@astrojs/language-server@2.15.0': + resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@5.3.0': + resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + + '@astrojs/mdx@3.1.8': + resolution: {integrity: sha512-4o/+pvgoLFG0eG96cFs4t3NzZAIAOYu57fKAprWHXJrnq/qdBV0av6BYDjoESxvxNILUYoj8sdZVWtlPWVDLog==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.8.0 + + '@astrojs/prism@3.1.0': + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/sitemap@3.2.0': + resolution: {integrity: sha512-SkrOCL3Z6HxdiXreZ1+aPBWgnBMJ31EgPdcscgQeLqI2Gqk/4EKLuw9q0SqKU9MmHpcPXXtcd0odfCk4barPoA==} + + '@astrojs/starlight@0.28.3': + resolution: {integrity: sha512-GXXIPKSu5d50mLVtgI4jf6pb3FPQm8n4MI6ZXuQQqqnA0xg7PJQ76WFSVyrICeqM5fKABSqcBksp/glyEJes/A==} + peerDependencies: + astro: ^4.14.0 + + '@astrojs/telemetry@3.1.0': + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/yaml2ts@0.2.1': + resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} + '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} @@ -236,6 +306,10 @@ packages: resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.24.7': resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} @@ -370,6 +444,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.25.7': + resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} + engines: {node: '>=6.9.0'} + '@babel/template@7.24.7': resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} @@ -458,12 +542,40 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@ctrl/tinycolor@4.1.0': + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} + '@deno/shim-deno-test@0.5.0': resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} '@deno/shim-deno@0.19.2': resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} @@ -884,6 +996,18 @@ packages: cpu: [x64] os: [win32] + '@expressive-code/core@0.35.6': + resolution: {integrity: sha512-xGqCkmfkgT7lr/rvmfnYdDSeTdCSp1otAHgoFS6wNEeO7wGDPpxdosVqYiIcQ8CfWUABh/pGqWG90q+MV3824A==} + + '@expressive-code/plugin-frames@0.35.6': + resolution: {integrity: sha512-CqjSWjDJ3wabMJZfL9ZAzH5UAGKg7KWsf1TBzr4xvUbZvWoBtLA/TboBML0U1Ls8h/4TRCIvR4VEb8dv5+QG3w==} + + '@expressive-code/plugin-shiki@0.35.6': + resolution: {integrity: sha512-xm+hzi9BsmhkDUGuyAWIydOAWer7Cs9cj8FM0t4HXaQ+qCubprT6wJZSKUxuvFJIUsIOqk1xXFaJzGJGnWtKMg==} + + '@expressive-code/plugin-text-markers@0.35.6': + resolution: {integrity: sha512-/k9eWVZSCs+uEKHR++22Uu6eIbHWEciVHbIuD8frT8DlqTtHYaaiwHPncO6KFWnGDz5i/gL7oyl6XmOi/E6GVg==} + '@faker-js/faker@5.5.3': resolution: {integrity: sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw==} @@ -910,6 +1034,111 @@ packages: peerDependencies: typescript: ^5.x + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@ioredis/commands@1.2.0': resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} @@ -959,6 +1188,9 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@mdx-js/mdx@3.0.1': + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} + '@netlify/functions@2.8.2': resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} engines: {node: '>=14.0.0'} @@ -1040,6 +1272,37 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@pagefind/darwin-arm64@1.1.1': + resolution: {integrity: sha512-tZ9tysUmQpFs2EqWG2+E1gc+opDAhSyZSsgKmFzhnWfkK02YHZhvL5XJXEZDqYy3s1FAKhwjTg8XDxneuBlDZQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.1.1': + resolution: {integrity: sha512-ChohLQ39dLwaxQv0jIQB/SavP3TM5K5ENfDTqIdzLkmfs3+JlzSDyQKcJFjTHYcCzQOZVeieeGq8PdqvLJxJxQ==} + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.1.1': + resolution: {integrity: sha512-ZM0zDatWDnac/VGHhQCiM7UgA4ca8jpjA+VfuTJyHJBaxGqZMQnm4WoTz9E0KFcue1Bh9kxpu7uWFZfwpZZk0A==} + + '@pagefind/linux-arm64@1.1.1': + resolution: {integrity: sha512-H5P6wDoCoAbdsWp0Zx0DxnLUrwTGWGLu/VI1rcN2CyFdY2EGSvPQsbGBMrseKRNuIrJDFtxHHHyjZ7UbzaM9EA==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.1.1': + resolution: {integrity: sha512-yJs7tTYbL2MI3HT+ngs9E1BfUbY9M4/YzA0yEM5xBo4Xl8Yu8Qg2xZTOQ1/F6gwvMrjCUFo8EoACs6LRDhtMrQ==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.1.1': + resolution: {integrity: sha512-b7/qPqgIl+lMzkQ8fJt51SfguB396xbIIR+VZ3YrL2tLuyifDJ1wL5mEm+ddmHxJ2Fki340paPcDan9en5OmAw==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -1368,6 +1631,21 @@ packages: cpu: [x64] os: [win32] + '@shikijs/core@1.22.0': + resolution: {integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==} + + '@shikijs/engine-javascript@1.22.0': + resolution: {integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==} + + '@shikijs/engine-oniguruma@1.22.0': + resolution: {integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==} + + '@shikijs/types@1.22.0': + resolution: {integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==} + + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1563,6 +1841,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1578,15 +1859,27 @@ packages: '@types/braces@3.0.4': resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/cross-spawn@6.0.6': resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/http-proxy@1.17.15': resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} @@ -1599,9 +1892,24 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@types/micromatch@4.0.9': resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + '@types/node@20.14.2': resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} @@ -1620,12 +1928,24 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + '@types/swagger-schema-official@2.0.25': resolution: {integrity: sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg==} '@types/type-is@1.6.6': resolution: {integrity: sha512-fs1KHv/f9OvmTMsu4sBNaUu32oyda9Y9uK25naJG8gayxNrfqGIjPQsbLIYyfe7xFkppnPlJB+BuTldOaX9bXw==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} @@ -1687,6 +2007,32 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@volar/kit@2.4.6': + resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} + + '@volar/language-server@2.4.6': + resolution: {integrity: sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==} + + '@volar/language-service@2.4.6': + resolution: {integrity: sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==} + + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} + + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -1815,10 +2161,17 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -1834,6 +2187,16 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true + astro-expressive-code@0.35.6: + resolution: {integrity: sha512-1U4KrvFuodaCV3z4I1bIR16SdhQlPkolGsYTtiANxPZUVv/KitGSCTjzksrkPonn1XuwVqvnwmUUVzTLWngnBA==} + peerDependencies: + astro: ^4.0.0-beta || ^3.3.0 + + astro@4.16.2: + resolution: {integrity: sha512-Dfkpyt6sA+nv6LnOJr+7bt+gQF5Qh02yqVgyes4c4SvcPScteq1bLX22/z/XW+VU0vlciJOMiM8GWtcDiF6gUQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -1854,21 +2217,49 @@ packages: axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} babel-dead-code-elimination@1.0.6: resolution: {integrity: sha512-JxFi9qyRJpN0LjEbbjbN8g0ux71Qppn9R8Qe3k6QzHg2CaKsbUQtbn307LQGiDLGjV6JCtEFqfxzVig9MyDCHQ==} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} bare-events@2.5.0: resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} + + bare-os@2.4.4: + resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} + + bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + + bare-stream@2.3.0: + resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + + bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1876,13 +2267,23 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boxen@7.1.1: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1910,6 +2311,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -1952,6 +2356,10 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + caniuse-lite@1.0.30001632: resolution: {integrity: sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==} @@ -1961,6 +2369,9 @@ packages: caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -1977,6 +2388,18 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + charset@1.0.1: resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==} engines: {node: '>=4.0.0'} @@ -1992,10 +2415,17 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -2003,6 +2433,14 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2028,6 +2466,9 @@ packages: code-block-writer@13.0.1: resolution: {integrity: sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2041,14 +2482,24 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -2060,6 +2511,9 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -2096,6 +2550,10 @@ packages: cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2134,6 +2592,9 @@ packages: uWebSockets.js: optional: true + css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -2188,10 +2649,30 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + deep-eql@4.1.4: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -2226,6 +2707,10 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -2242,6 +2727,16 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -2253,6 +2748,14 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -2264,6 +2767,10 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2279,6 +2786,12 @@ packages: electron-to-chromium@1.5.32: resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2293,6 +2806,13 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2362,6 +2882,21 @@ packages: engines: {node: '>=4'} hasBin: true + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -2379,6 +2914,9 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -2387,6 +2925,20 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + expressive-code@0.35.6: + resolution: {integrity: sha512-+mx+TPTbMqgo0mL92Xh9QgjW0kSQIsEivMgEcOnaqKqL7qCw8Vkqc5Rg/di7ZYw4aMUSr74VTc+w8GQWu05j1g==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2429,13 +2981,28 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + flatstr@1.0.12: resolution: {integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==} + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + fnv-plus@1.3.1: resolution: {integrity: sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw==} @@ -2472,6 +3039,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -2511,6 +3081,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -2536,6 +3110,12 @@ packages: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2584,6 +3164,10 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + gzip-size@7.0.0: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2635,22 +3219,97 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hast-util-format@1.1.0: + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + + hast-util-is-body-ok-link@3.0.1: + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-minify-whitespace@1.0.1: + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + + hast-util-select@6.0.3: + resolution: {integrity: sha512-OVRQlQ1XuuLP8aFVLYmC2atrfWHS5UD3shonxpnyrjcCkwtvmt/+N6kYJdcY4mkMJhxp4kj2EFIxQ9kvkkt/eQ==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-to-jsx-runtime@2.3.1: + resolution: {integrity: sha512-Rbemi1rzrkysSin0FDHZfsxYPoqLGHFfxFm28aOBHPibT7aqjy7kUgY636se9xbuCWUsFpWAYlmtGHQakiqtEA==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + html-whitespace-sensitive-tag-names@3.0.1: + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} @@ -2674,6 +3333,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + i18next@23.15.2: + resolution: {integrity: sha512-zcPSWzCvw6uKnuYHIqs4W7hTuB9e3AFcSdZgvCWoPXIZsBjBd4djN2/2uOHIB+1DFFkQnMBXvhNg7J3WyCuywQ==} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -2695,6 +3357,15 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -2711,6 +3382,12 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -2718,6 +3395,9 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -2744,6 +3424,9 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -2754,6 +3437,10 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2766,11 +3453,18 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -2786,9 +3480,16 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -2817,6 +3518,14 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -2935,6 +3644,12 @@ packages: jsonc-parser@2.2.1: resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -2942,6 +3657,18 @@ packages: resolution: {integrity: sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==} engines: {node: '>=12.0.0'} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -3020,6 +3747,10 @@ packages: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} @@ -3028,6 +3759,10 @@ packages: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -3040,6 +3775,13 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3073,6 +3815,9 @@ packages: magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -3084,6 +3829,67 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -3103,10 +3909,122 @@ packages: resolution: {integrity: sha512-AtvnSBGFglNr+iqs5gufpHT9xRXUabgu9vYEnQYPXSBs+nLSBvmUS5Mzg+3LJ9eQBrNA1o5M49WeqiX1f+d2sg==} engines: {node: '>= 12.0.0'} + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-directive@3.0.2: + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -3137,6 +4055,14 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3170,6 +4096,9 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -3191,6 +4120,10 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -3200,6 +4133,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -3208,6 +4144,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -3215,6 +4154,10 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + next@14.2.4: resolution: {integrity: sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==} engines: {node: '>=18.17.0'} @@ -3246,9 +4189,19 @@ packages: xml2js: optional: true + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-abi@3.68.0: + resolution: {integrity: sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==} + engines: {node: '>=10'} + node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -3303,6 +4256,9 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nypm@0.3.8: resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} engines: {node: ^14.16.0 || >=16.10.0} @@ -3347,6 +4303,13 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + ono@4.0.11: resolution: {integrity: sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==} @@ -3361,32 +4324,73 @@ packages: openapi3-ts@2.0.2: resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} + ora@8.1.0: + resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} + engines: {node: '>=18'} + p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@5.0.0: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} + p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pagefind@1.1.1: + resolution: {integrity: sha512-U2YR0dQN5B2fbIXrLtt/UXNS0yWSSYfePaad1KcBPTi0p+zRtsVjwmoPaMQgTks5DnHNbmDxyJUL5TGaLljK3A==} + hasBin: true + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + parse-multipart-data@1.5.0: resolution: {integrity: sha512-ck5zaMF0ydjGfejNMnlo5YU2oJ+pT+80Jb1y4ybanT27j+zbVP/jkYmCrUGsEln0Ox/hZmuvgy8Ra7AxbXP2Mw==} parse-prefer-header@1.0.0: resolution: {integrity: sha512-+WJ3ncCrKOExuxF06XyKWS8bLkLttnlm6YPMZIFIUXNd09Xy0N2JISudxCaY+luDm43yTnHMHVU3zte4G2gN4g==} + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -3398,6 +4402,10 @@ packages: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -3441,6 +4449,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -3464,6 +4475,10 @@ packages: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pino-std-serializers@3.2.0: resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==} @@ -3479,6 +4494,10 @@ packages: resolution: {integrity: sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==} engines: {node: '>=4'} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} @@ -3546,6 +4565,20 @@ packages: resolution: {integrity: sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==} engines: {node: '>=10'} + prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@3.3.3: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} @@ -3562,6 +4595,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -3572,9 +4609,19 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -3601,6 +4648,10 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -3658,10 +4709,62 @@ packages: resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} engines: {node: '>=4'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} + rehype-expressive-code@0.35.6: + resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} + + rehype-format@5.0.1: + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3684,6 +4787,22 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3741,12 +4860,19 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -3765,6 +4891,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -3793,6 +4924,14 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -3812,6 +4951,9 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shiki@1.22.0: + resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -3830,6 +4972,23 @@ packages: resolution: {integrity: sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==} engines: {node: '>=6'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -3859,6 +5018,9 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -3890,6 +5052,13 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -3905,6 +5074,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.padend@3.1.6: resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} engines: {node: '>= 0.4'} @@ -3926,6 +5099,9 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3934,6 +5110,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -3942,12 +5122,22 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + styled-jsx@5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -3991,6 +5181,16 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -4026,6 +5226,9 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} @@ -4049,6 +5252,12 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -4087,6 +5296,9 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -4099,6 +5311,10 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -4119,6 +5335,12 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -4129,6 +5351,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} @@ -4166,9 +5393,42 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unimport@3.13.1: resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -4297,6 +5557,15 @@ packages: validate.io-number@1.0.3: resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vinxi@0.4.3: resolution: {integrity: sha512-RgJz7RWftML5h/qfPsp3QKVc2FSlvV4+HevpE0yEY2j+PS/I2ULjoSsZDXaR8Ks2WYuFFDzQr8yrox7v8aqkng==} hasBin: true @@ -4373,6 +5642,14 @@ packages: terser: optional: true + vitefu@1.0.2: + resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + vitest@1.6.0: resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4398,6 +5675,118 @@ packages: jsdom: optional: true + volar-service-css@0.0.61: + resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.61: + resolution: {integrity: sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.61: + resolution: {integrity: sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.61: + resolution: {integrity: sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.61: + resolution: {integrity: sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.61: + resolution: {integrity: sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.61: + resolution: {integrity: sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -4417,6 +5806,14 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} @@ -4447,6 +5844,10 @@ packages: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -4458,9 +5859,16 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -4471,15 +5879,28 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -4504,13 +5925,31 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} + zod-to-json-schema@3.23.3: + resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} + peerDependencies: + zod: ^3.23.3 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -4526,6 +5965,143 @@ snapshots: '@types/json-schema': 7.0.15 js-yaml: 4.1.0 + '@astrojs/check@0.9.4(prettier@3.3.3)(typescript@5.6.3)': + dependencies: + '@astrojs/language-server': 2.15.0(prettier@3.3.3)(typescript@5.6.3) + chokidar: 4.0.1 + kleur: 4.1.5 + typescript: 5.6.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + + '@astrojs/compiler@2.10.3': {} + + '@astrojs/internal-helpers@0.4.1': {} + + '@astrojs/language-server@2.15.0(prettier@3.3.3)(typescript@5.6.3)': + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/yaml2ts': 0.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@volar/kit': 2.4.6(typescript@5.6.3) + '@volar/language-core': 2.4.6 + '@volar/language-server': 2.4.6 + '@volar/language-service': 2.4.6 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + volar-service-css: 0.0.61(@volar/language-service@2.4.6) + volar-service-emmet: 0.0.61(@volar/language-service@2.4.6) + volar-service-html: 0.0.61(@volar/language-service@2.4.6) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3) + volar-service-typescript: 0.0.61(@volar/language-service@2.4.6) + volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.6) + volar-service-yaml: 0.0.61(@volar/language-service@2.4.6) + vscode-html-languageservice: 5.3.1 + vscode-uri: 3.0.8 + optionalDependencies: + prettier: 3.3.3 + transitivePeerDependencies: + - typescript + + '@astrojs/markdown-remark@5.3.0': + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.22.0 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@3.1.8(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3))': + dependencies: + '@astrojs/markdown-remark': 5.3.0 + '@mdx-js/mdx': 3.0.1 + acorn: 8.12.1 + astro: 4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3) + es-module-lexer: 1.5.4 + estree-util-visit: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.3 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.1.0': + dependencies: + prismjs: 1.29.0 + + '@astrojs/sitemap@3.2.0': + dependencies: + sitemap: 8.0.0 + stream-replace-string: 2.0.0 + zod: 3.23.8 + + '@astrojs/starlight@0.28.3(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3))': + dependencies: + '@astrojs/mdx': 3.1.8(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3)) + '@astrojs/sitemap': 3.2.0 + '@pagefind/default-ui': 1.1.1 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + astro: 4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3) + astro-expressive-code: 0.35.6(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3)) + bcp-47: 2.1.0 + hast-util-from-html: 2.0.3 + hast-util-select: 6.0.3 + hast-util-to-string: 3.0.1 + hastscript: 9.0.0 + i18next: 23.15.2 + mdast-util-directive: 3.0.0 + mdast-util-to-markdown: 2.1.0 + mdast-util-to-string: 4.0.0 + pagefind: 1.1.1 + rehype: 13.0.2 + rehype-format: 5.0.1 + remark-directive: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/telemetry@3.1.0': + dependencies: + ci-info: 4.0.0 + debug: 4.3.7 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@astrojs/yaml2ts@0.2.1': + dependencies: + yaml: 2.5.1 + '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 @@ -4594,6 +6170,10 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.25.7': + dependencies: + '@babel/types': 7.25.7 + '@babel/helper-compilation-targets@7.24.7': dependencies: '@babel/compat-data': 7.24.7 @@ -4754,6 +6334,21 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.25.7': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 @@ -4851,6 +6446,8 @@ snapshots: '@jridgewell/trace-mapping': 0.3.9 optional: true + '@ctrl/tinycolor@4.1.0': {} + '@deno/shim-deno-test@0.5.0': {} '@deno/shim-deno@0.19.2': @@ -4858,6 +6455,34 @@ snapshots: '@deno/shim-deno-test': 0.5.0 which: 4.0.0 + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.6.3 + optional: true + '@esbuild/aix-ppc64@0.20.2': optional: true @@ -5068,6 +6693,31 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true + '@expressive-code/core@0.35.6': + dependencies: + '@ctrl/tinycolor': 4.1.0 + hast-util-select: 6.0.3 + hast-util-to-html: 9.0.3 + hast-util-to-text: 4.0.2 + hastscript: 9.0.0 + postcss: 8.4.47 + postcss-nested: 6.0.1(postcss@8.4.47) + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + + '@expressive-code/plugin-frames@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + + '@expressive-code/plugin-shiki@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + shiki: 1.22.0 + + '@expressive-code/plugin-text-markers@0.35.6': + dependencies: + '@expressive-code/core': 0.35.6 + '@faker-js/faker@5.5.3': {} '@faker-js/faker@6.3.1': {} @@ -5080,16 +6730,91 @@ snapshots: '@hey-api/client-fetch@0.4.0': {} - '@hey-api/openapi-ts@0.53.8(typescript@5.6.2)': + '@hey-api/openapi-ts@0.53.8(magicast@0.3.5)(typescript@5.6.2)': dependencies: '@apidevtools/json-schema-ref-parser': 11.7.0 - c12: 2.0.1 + c12: 2.0.1(magicast@0.3.5) commander: 12.1.0 handlebars: 4.7.8 typescript: 5.6.2 transitivePeerDependencies: - magicast + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + '@ioredis/commands@1.2.0': {} '@isaacs/cliui@8.0.2': @@ -5134,7 +6859,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 optional: true '@jsdevtools/ono@7.1.3': {} @@ -5154,6 +6879,34 @@ snapshots: - encoding - supports-color + '@mdx-js/mdx@3.0.1': + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-build-jsx: 3.0.1 + estree-util-is-identifier-name: 3.0.0 + estree-util-to-js: 2.0.0 + estree-walker: 3.0.3 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.1 + markdown-extensions: 2.0.0 + periscopic: 3.1.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + '@netlify/functions@2.8.2': dependencies: '@netlify/serverless-functions-api': 1.26.1 @@ -5206,6 +6959,25 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.1.1': + optional: true + + '@pagefind/darwin-x64@1.1.1': + optional: true + + '@pagefind/default-ui@1.1.1': {} + + '@pagefind/linux-arm64@1.1.1': + optional: true + + '@pagefind/linux-x64@1.1.1': + optional: true + + '@pagefind/windows-x64@1.1.1': + optional: true + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -5342,6 +7114,14 @@ snapshots: optionalDependencies: rollup: 4.18.0 + '@rollup/pluginutils@5.1.2(rollup@4.24.0)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.24.0 + '@rollup/rollup-android-arm-eabi@4.18.0': optional: true @@ -5438,13 +7218,40 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@sinclair/typebox@0.27.8': {} + '@shikijs/core@1.22.0': + dependencies: + '@shikijs/engine-javascript': 1.22.0 + '@shikijs/engine-oniguruma': 1.22.0 + '@shikijs/types': 1.22.0 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 - '@sindresorhus/merge-streams@2.3.0': {} + '@shikijs/engine-javascript@1.22.0': + dependencies: + '@shikijs/types': 1.22.0 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 - '@stoplight/http-spec@7.0.3': + '@shikijs/engine-oniguruma@1.22.0': dependencies: - '@stoplight/json': 3.21.0 + '@shikijs/types': 1.22.0 + '@shikijs/vscode-textmate': 9.3.0 + + '@shikijs/types@1.22.0': + dependencies: + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@9.3.0': {} + + '@sinclair/typebox@0.27.8': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@stoplight/http-spec@7.0.3': + dependencies: + '@stoplight/json': 3.21.0 '@stoplight/json-schema-generator': 1.0.2 '@stoplight/types': 14.1.0 '@types/json-schema': 7.0.11 @@ -5727,7 +7534,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/start@1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': + '@tanstack/start@1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: '@tanstack/react-cross-context': 1.60.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -5737,16 +7544,16 @@ snapshots: '@types/jsesc': 3.0.3 '@vinxi/react': 0.2.5 '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) - '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) - '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) + '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) import-meta-resolve: 4.1.0 isbot: 5.1.17 jsesc: 3.0.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) - vite-tsconfig-paths: 5.0.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) + vite-tsconfig-paths: 5.0.1(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -5810,6 +7617,10 @@ snapshots: '@tsconfig/node16@1.0.4': optional: true + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.6 + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.25.7 @@ -5833,14 +7644,28 @@ snapshots: '@types/braces@3.0.4': {} + '@types/cookie@0.6.0': {} + '@types/cross-spawn@6.0.6': dependencies: '@types/node': 20.14.2 + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.6 + '@types/estree@1.0.5': {} '@types/estree@1.0.6': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/http-proxy@1.17.15': dependencies: '@types/node': 20.14.2 @@ -5851,10 +7676,24 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + '@types/micromatch@4.0.9': dependencies: '@types/braces': 3.0.4 + '@types/ms@0.7.34': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node@17.0.45': {} + '@types/node@20.14.2': dependencies: undici-types: 5.26.5 @@ -5876,12 +7715,22 @@ snapshots: '@types/resolve@1.20.2': {} + '@types/sax@1.2.7': + dependencies: + '@types/node': 22.7.4 + '@types/swagger-schema-official@2.0.25': {} '@types/type-is@1.6.6': dependencies: '@types/node': 20.14.2 + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@ungap/structured-clone@1.2.0': {} + '@vercel/nft@0.26.5': dependencies: '@mapbox/node-pre-gyp': 1.0.11 @@ -5922,7 +7771,7 @@ snapshots: transitivePeerDependencies: - uWebSockets.js - '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': + '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': dependencies: '@babel/parser': 7.24.7 acorn: 8.11.3 @@ -5933,7 +7782,7 @@ snapshots: magicast: 0.2.11 recast: 0.23.9 tslib: 2.6.3 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': dependencies: @@ -5944,27 +7793,27 @@ snapshots: '@vinxi/react@0.2.5': {} - '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': + '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) acorn: 8.11.3 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.11.3) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) - '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1))': + '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1)) + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) acorn: 8.11.3 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.11.3) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1) + vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) '@vitejs/plugin-react@4.3.1(vite@5.2.13(@types/node@22.7.4)(terser@5.34.1))': dependencies: @@ -6036,6 +7885,56 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 + '@volar/kit@2.4.6(typescript@5.6.3)': + dependencies: + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + typesafe-path: 0.2.2 + typescript: 5.6.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-core@2.4.6': + dependencies: + '@volar/source-map': 2.4.6 + + '@volar/language-server@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/source-map@2.4.6': {} + + '@volar/typescript@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.18': {} + abbrev@1.1.1: {} abort-controller@3.0.0: @@ -6057,6 +7956,10 @@ snapshots: dependencies: acorn: 8.11.3 + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + acorn-loose@8.4.0: dependencies: acorn: 8.11.3 @@ -6155,11 +8058,15 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.2: {} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 + array-iterate@2.0.1: {} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -6179,6 +8086,90 @@ snapshots: astring@1.9.0: {} + astro-expressive-code@0.35.6(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3)): + dependencies: + astro: 4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3) + rehype-expressive-code: 0.35.6 + + astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/markdown-remark': 5.3.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.7) + '@babel/types': 7.25.7 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.2(rollup@4.24.0) + '@types/babel__core': 7.20.5 + '@types/cookie': 0.6.0 + acorn: 8.12.1 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.0.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.3.7 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.11 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + ora: 8.1.0 + p-limit: 6.1.0 + p-queue: 8.0.1 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.22.0 + tinyexec: 0.3.0 + tsconfck: 3.1.3(typescript@5.6.3) + unist-util-visit: 5.0.0 + vfile: 6.0.3 + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vitefu: 1.0.2(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) + which-pm: 3.0.0 + xxhash-wasm: 1.0.2 + yargs-parser: 21.1.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.3(zod@3.23.8) + zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8) + optionalDependencies: + sharp: 0.33.5 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - typescript + async-sema@3.1.1: {} async@3.2.6: {} @@ -6199,6 +8190,8 @@ snapshots: transitivePeerDependencies: - debug + axobject-query@4.1.0: {} + b4a@1.6.7: {} babel-dead-code-elimination@1.0.6: @@ -6210,21 +8203,62 @@ snapshots: transitivePeerDependencies: - supports-color + bail@2.0.2: {} + balanced-match@1.0.2: {} bare-events@2.5.0: optional: true + bare-fs@2.3.5: + dependencies: + bare-events: 2.5.0 + bare-path: 2.1.3 + bare-stream: 2.3.0 + optional: true + + bare-os@2.4.4: + optional: true + + bare-path@2.1.3: + dependencies: + bare-os: 2.4.4 + optional: true + + bare-stream@2.3.0: + dependencies: + b4a: 1.6.7 + streamx: 2.20.1 + optional: true + + base-64@1.0.0: {} + base64-js@1.5.1: {} + bcp-47-match@2.0.3: {} + + bcp-47@2.1.0: + dependencies: + is-alphabetical: 2.0.1 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + binary-extensions@2.3.0: {} bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + bluebird@3.7.2: {} + boolbase@1.0.0: {} + boxen@7.1.1: dependencies: ansi-align: 3.0.1 @@ -6236,6 +8270,17 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -6267,6 +8312,11 @@ snapshots: buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -6276,7 +8326,7 @@ snapshots: dependencies: streamsearch: 1.1.0 - c12@1.11.1(magicast@0.3.4): + c12@1.11.1(magicast@0.3.5): dependencies: chokidar: 3.6.0 confbox: 0.1.7 @@ -6291,9 +8341,9 @@ snapshots: pkg-types: 1.1.1 rc9: 2.1.2 optionalDependencies: - magicast: 0.3.4 + magicast: 0.3.5 - c12@2.0.1: + c12@2.0.1(magicast@0.3.5): dependencies: chokidar: 4.0.1 confbox: 0.1.7 @@ -6307,6 +8357,8 @@ snapshots: perfect-debounce: 1.0.0 pkg-types: 1.2.0 rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 cac@6.7.14: {} @@ -6324,12 +8376,16 @@ snapshots: camelcase@7.0.1: {} + camelcase@8.0.0: {} + caniuse-lite@1.0.30001632: {} caniuse-lite@1.0.30001667: {} caseless@0.12.0: {} + ccount@2.0.1: {} + chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -6353,6 +8409,14 @@ snapshots: chalk@5.3.0: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + charset@1.0.1: {} check-error@1.0.3: @@ -6375,14 +8439,24 @@ snapshots: dependencies: readdirp: 4.0.2 + chownr@1.1.4: {} + chownr@2.0.0: {} + ci-info@4.0.0: {} + citty@0.1.6: dependencies: consola: 3.2.3 cli-boxes@3.0.0: {} + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + client-only@0.0.1: {} clipboardy@4.0.0: @@ -6409,6 +8483,8 @@ snapshots: code-block-writer@13.0.1: {} + collapse-white-space@2.1.0: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -6421,18 +8497,32 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + color-support@1.1.3: {} + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} + commander@12.1.0: {} commander@2.20.3: {} commander@4.1.1: {} + common-ancestor-path@1.0.1: {} + commondir@1.0.1: {} compress-commons@6.0.2: @@ -6470,6 +8560,8 @@ snapshots: cookie-es@1.2.2: {} + cookie@0.7.2: {} + core-util-is@1.0.3: {} crc-32@1.2.2: {} @@ -6506,6 +8598,8 @@ snapshots: crossws@0.2.4: {} + css-selector-parser@3.0.5: {} + cssesc@3.0.0: {} csstype@3.1.3: {} @@ -6543,10 +8637,24 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + deep-eql@4.1.4: dependencies: type-detect: 4.0.8 + deep-extend@0.6.0: {} + deepmerge@4.3.1: {} define-data-property@1.1.4: @@ -6573,6 +8681,8 @@ snapshots: depd@2.0.0: {} + dequal@2.0.3: {} + destr@2.0.3: {} destroy@1.2.0: {} @@ -6581,6 +8691,16 @@ snapshots: detect-libc@2.0.3: {} + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.1.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} diff-sequences@29.6.3: {} @@ -6588,6 +8708,10 @@ snapshots: diff@4.0.2: optional: true + diff@5.2.0: {} + + direction@2.0.1: {} + dlv@1.1.3: {} dot-prop@8.0.2: @@ -6596,6 +8720,8 @@ snapshots: dotenv@16.4.5: {} + dset@3.1.4: {} + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -6606,6 +8732,13 @@ snapshots: electron-to-chromium@1.5.32: {} + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -6614,6 +8747,12 @@ snapshots: encodeurl@2.0.0: {} + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + entities@4.5.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -6782,6 +8921,30 @@ snapshots: esprima@4.0.1: {} + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -6794,6 +8957,8 @@ snapshots: eventemitter3@4.0.7: {} + eventemitter3@5.0.1: {} + events@3.3.0: {} execa@8.0.1: @@ -6808,6 +8973,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + expand-template@2.0.3: {} + + expressive-code@0.35.6: + dependencies: + '@expressive-code/core': 0.35.6 + '@expressive-code/plugin-frames': 0.35.6 + '@expressive-code/plugin-shiki': 0.35.6 + '@expressive-code/plugin-text-markers': 0.35.6 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -6846,12 +9026,26 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-up-simple@1.0.0: {} + find-up@2.1.0: dependencies: locate-path: 2.0.0 + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.8 + pkg-dir: 4.2.0 + flatstr@1.0.12: {} + flattie@1.1.1: {} + fnv-plus@1.3.1: {} follow-redirects@1.15.6: {} @@ -6879,6 +9073,8 @@ snapshots: fresh@0.5.2: {} + fs-constants@1.0.0: {} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -6921,6 +9117,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.2.0: {} + get-func-name@2.0.2: {} get-intrinsic@1.2.4: @@ -6956,6 +9154,10 @@ snapshots: pathe: 1.1.2 tar: 6.2.1 + github-from-package@0.0.0: {} + + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -7017,6 +9219,13 @@ snapshots: graceful-fs@4.2.11: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + gzip-size@7.0.0: dependencies: duplexer: 0.1.2 @@ -7086,68 +9295,283 @@ snapshots: dependencies: function-bind: 1.1.2 - hookable@5.5.3: {} - - hosted-git-info@2.8.9: {} - - html-escaper@2.0.2: {} + hast-util-embedded@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-is-element: 3.0.0 - http-errors@2.0.0: + hast-util-format@1.1.0: dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-minify-whitespace: 1.0.1 + hast-util-phrasing: 3.0.1 + hast-util-whitespace: 3.0.0 + html-whitespace-sensitive-tag-names: 3.0.1 + unist-util-visit-parents: 6.0.1 - http-proxy-agent@5.0.0: + hast-util-from-html@2.0.3: dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.5 - transitivePeerDependencies: - - supports-color + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.2.0 + vfile: 6.0.3 + vfile-message: 4.0.2 - http-proxy@1.18.1: + hast-util-from-parse5@8.0.1: dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.6 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 - http-reasons@0.1.0: {} + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 - http-shutdown@1.2.2: {} + hast-util-is-body-ok-link@3.0.1: + dependencies: + '@types/hast': 3.0.4 - https-proxy-agent@5.0.1: + hast-util-is-element@3.0.0: dependencies: - agent-base: 6.0.2 - debug: 4.3.5 - transitivePeerDependencies: - - supports-color + '@types/hast': 3.0.4 - httpxy@0.1.5: {} + hast-util-minify-whitespace@1.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-is-element: 3.0.0 + hast-util-whitespace: 3.0.0 + unist-util-is: 6.0.0 - human-signals@5.0.0: {} + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 - iconv-lite@0.6.3: + hast-util-phrasing@3.0.1: dependencies: - safer-buffer: 2.1.2 + '@types/hast': 3.0.4 + hast-util-embedded: 3.0.0 + hast-util-has-property: 3.0.0 + hast-util-is-body-ok-link: 3.0.1 + hast-util-is-element: 3.0.0 - ieee754@1.2.1: {} + hast-util-raw@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.2.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 - ignore@5.3.2: {} + hast-util-select@6.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.0.5 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.1 + hast-util-whitespace: 3.0.0 + nth-check: 2.1.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 - import-meta-resolve@4.1.0: {} + hast-util-to-estree@3.1.0: + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color - inflight@1.0.6: + hast-util-to-html@9.0.3: dependencies: - once: 1.4.0 - wrappy: 1.0.2 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.1: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + hookable@5.5.3: {} + + hosted-git-info@2.8.9: {} + + html-escaper@2.0.2: {} + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + html-whitespace-sensitive-tag-names@3.0.1: {} + + http-cache-semantics@4.1.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.6 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-reasons@0.1.0: {} + + http-shutdown@1.2.2: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + + httpxy@0.1.5: {} + + human-signals@5.0.0: {} + + i18next@23.15.2: + dependencies: + '@babel/runtime': 7.25.7 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-meta-resolve@4.1.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 inherits@2.0.4: {} + ini@1.3.8: {} + + inline-style-parser@0.1.1: {} + + inline-style-parser@0.2.4: {} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 @@ -7174,6 +9598,13 @@ snapshots: iron-webcrypto@1.2.1: {} + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -7181,6 +9612,8 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -7208,10 +9641,14 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-decimal@2.0.1: {} + is-docker@2.2.1: {} is-docker@3.0.0: {} + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -7220,10 +9657,14 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hexadecimal@2.0.1: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 + is-interactive@2.0.0: {} + is-module@1.0.0: {} is-negative-zero@2.0.3: {} @@ -7234,10 +9675,16 @@ snapshots: is-number@7.0.0: {} + is-plain-obj@4.1.0: {} + is-reference@1.2.1: dependencies: '@types/estree': 1.0.5 + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.6 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -7263,6 +9710,10 @@ snapshots: dependencies: which-typed-array: 1.1.15 + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -7375,6 +9826,10 @@ snapshots: jsonc-parser@2.2.1: {} + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -7383,6 +9838,12 @@ snapshots: jsonpath-plus@7.2.0: {} + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + kleur@4.1.5: {} + klona@2.0.6: {} knitwork@1.1.0: {} @@ -7464,6 +9925,13 @@ snapshots: pify: 3.0.0 strip-bom: 3.0.0 + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + local-pkg@0.5.0: dependencies: mlly: 1.7.1 @@ -7474,6 +9942,10 @@ snapshots: p-locate: 2.0.0 path-exists: 3.0.0 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + lodash.camelcase@4.3.0: {} lodash.defaults@4.2.0: {} @@ -7482,6 +9954,13 @@ snapshots: lodash@4.17.21: {} + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + + longest-streak@3.1.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -7522,6 +10001,12 @@ snapshots: '@babel/types': 7.24.7 source-map-js: 1.2.0 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 + source-map-js: 1.2.1 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -7533,6 +10018,191 @@ snapshots: make-error@1.3.6: optional: true + markdown-extensions@2.0.0: {} + + markdown-table@3.0.3: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.1.3: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + media-typer@0.3.0: {} memorystream@0.3.1: {} @@ -7545,11 +10215,292 @@ snapshots: dependencies: handler-agent: 0.2.0 + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-directive@3.0.2: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + parse-entities: 4.0.1 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.5 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + micromatch@4.0.7: dependencies: braces: 3.0.3 picomatch: 2.3.1 + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-format@2.0.1: @@ -7568,6 +10519,10 @@ snapshots: mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + + mimic-response@3.1.0: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -7597,6 +10552,8 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + mkdirp-classic@0.5.3: {} + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -7614,12 +10571,16 @@ snapshots: mri@1.2.0: {} + mrmime@2.0.0: {} + ms@2.0.0: {} ms@2.1.2: {} ms@2.1.3: {} + muggle-string@0.4.1: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -7628,10 +10589,14 @@ snapshots: nanoid@3.3.7: {} + napi-build-utils@1.0.2: {} + negotiator@0.6.3: {} neo-async@2.6.2: {} + neotraverse@0.6.18: {} + next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.4 @@ -7659,7 +10624,7 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.9.7(magicast@0.3.4): + nitropack@2.9.7(magicast@0.3.5): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@netlify/functions': 2.8.2 @@ -7674,7 +10639,7 @@ snapshots: '@types/http-proxy': 1.17.15 '@vercel/nft': 0.26.5 archiver: 7.0.1 - c12: 1.11.1(magicast@0.3.4) + c12: 1.11.1(magicast@0.3.5) chalk: 5.3.0 chokidar: 3.6.0 citty: 0.1.6 @@ -7749,8 +10714,18 @@ snapshots: - uWebSockets.js - webpack-sources + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-abi@3.68.0: + dependencies: + semver: 7.6.2 + node-abort-controller@3.1.1: {} + node-addon-api@6.1.0: {} + node-addon-api@7.1.1: {} node-fetch-native@1.6.4: {} @@ -7803,6 +10778,10 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + nypm@0.3.8: dependencies: citty: 0.1.6 @@ -7848,6 +10827,14 @@ snapshots: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.3.3 + ono@4.0.11: dependencies: format-util: 1.0.5 @@ -7871,37 +10858,104 @@ snapshots: dependencies: yaml: 1.10.2 + ora@8.1.0: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + p-limit@1.3.0: dependencies: p-try: 1.0.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@5.0.0: dependencies: yocto-queue: 1.0.0 - p-locate@2.0.0: + p-limit@6.1.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-queue@8.0.1: dependencies: - p-limit: 1.3.0 + eventemitter3: 5.0.1 + p-timeout: 6.1.2 + + p-timeout@6.1.2: {} p-try@1.0.0: {} + p-try@2.2.0: {} + + pagefind@1.1.1: + optionalDependencies: + '@pagefind/darwin-arm64': 1.1.1 + '@pagefind/darwin-x64': 1.1.1 + '@pagefind/linux-arm64': 1.1.1 + '@pagefind/linux-x64': 1.1.1 + '@pagefind/windows-x64': 1.1.1 + + parse-entities@4.0.1: + dependencies: + '@types/unist': 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + parse-json@4.0.0: dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + parse-multipart-data@1.5.0: {} parse-prefer-header@1.0.0: dependencies: lodash.camelcase: 4.3.0 + parse5@7.2.0: + dependencies: + entities: 4.5.0 + parseurl@1.3.3: {} path-browserify@1.0.1: {} path-exists@3.0.0: {} + path-exists@4.0.0: {} + path-is-absolute@1.0.1: {} path-key@2.0.1: {} @@ -7931,6 +10985,12 @@ snapshots: perfect-debounce@1.0.0: {} + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.6 + estree-walker: 3.0.3 + is-reference: 3.0.2 + picocolors@1.0.1: {} picocolors@1.1.0: {} @@ -7943,6 +11003,8 @@ snapshots: pify@3.0.0: {} + pify@4.0.1: {} + pino-std-serializers@3.2.0: {} pino@6.14.0: @@ -7962,6 +11024,10 @@ snapshots: find-up: 2.1.0 load-json-file: 4.0.0 + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + pkg-types@1.1.1: dependencies: confbox: 0.1.7 @@ -8001,6 +11067,11 @@ snapshots: postcss: 8.4.38 postcss-selector-parser: 6.1.0 + postcss-nested@6.0.1(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.0 + postcss-selector-parser@6.1.0: dependencies: cssesc: 3.0.0 @@ -8044,6 +11115,30 @@ snapshots: dependencies: punycode: 2.3.1 + prebuild-install@7.1.2: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.68.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + + prettier@2.8.7: + optional: true + prettier@3.3.3: {} pretty-bytes@6.1.1: {} @@ -8056,14 +11151,28 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + prismjs@1.29.0: {} + process-nextick-args@2.0.1: {} process-warning@1.0.0: {} process@0.11.10: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@6.5.0: {} + proxy-from-env@1.1.0: {} + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -8085,6 +11194,13 @@ snapshots: defu: 6.1.4 destr: 2.0.3 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -8157,6 +11273,10 @@ snapshots: dependencies: redis-errors: 1.2.0 + regenerator-runtime@0.14.1: {} + + regex@4.3.3: {} + regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -8164,6 +11284,101 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 + rehype-expressive-code@0.35.6: + dependencies: + expressive-code: 0.35.6 + + rehype-format@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-format: 1.1.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.3 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-directive@3.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-directive: 3.0.0 + micromark-extension-directive: 3.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.0.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + request-light@0.5.8: {} + + request-light@0.7.0: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -8180,6 +11395,36 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + reusify@1.0.4: {} rimraf@3.0.2: @@ -8268,12 +11513,19 @@ snapshots: safer-buffer@2.1.2: {} + sax@1.4.1: {} + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 scule@1.3.0: {} + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + semver@5.7.2: {} semver@6.3.1: {} @@ -8284,6 +11536,8 @@ snapshots: semver@7.6.2: {} + semver@7.6.3: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -8339,6 +11593,44 @@ snapshots: setprototypeof@1.2.0: {} + sharp@0.32.6: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + node-addon-api: 6.1.0 + prebuild-install: 7.1.2 + semver: 7.6.2 + simple-get: 4.0.1 + tar-fs: 3.0.6 + tunnel-agent: 0.6.0 + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -8353,6 +11645,15 @@ snapshots: shell-quote@1.8.1: {} + shiki@1.22.0: + dependencies: + '@shikijs/core': 1.22.0 + '@shikijs/engine-javascript': 1.22.0 + '@shikijs/engine-oniguruma': 1.22.0 + '@shikijs/types': 1.22.0 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -8372,6 +11673,27 @@ snapshots: figures: 2.0.0 pkg-conf: 2.1.0 + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sisteransi@1.0.5: {} + + sitemap@8.0.0: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + slash@5.1.0: {} smob@1.5.0: {} @@ -8394,6 +11716,8 @@ snapshots: source-map@0.7.4: {} + space-separated-tokens@2.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -8422,6 +11746,10 @@ snapshots: std-env@3.7.0: {} + stdin-discarder@0.2.2: {} + + stream-replace-string@2.0.0: {} + streamsearch@1.1.0: {} streamx@2.20.1: @@ -8444,6 +11772,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + string.prototype.padend@3.1.6: dependencies: call-bind: 1.0.7 @@ -8478,6 +11812,11 @@ snapshots: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -8486,16 +11825,28 @@ snapshots: dependencies: ansi-regex: 6.0.1 + strip-bom-string@1.0.0: {} + strip-bom@3.0.0: {} strip-final-newline@3.0.0: {} + strip-json-comments@2.0.1: {} + strip-literal@2.1.0: dependencies: js-tokens: 9.0.0 strnum@1.0.5: {} + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + styled-jsx@5.1.1(react@18.3.1): dependencies: client-only: 0.0.1 @@ -8552,6 +11903,29 @@ snapshots: transitivePeerDependencies: - ts-node + tar-fs@2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-fs@3.0.6: + dependencies: + pump: 3.0.2 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.5 + bare-path: 2.1.3 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + tar-stream@3.1.7: dependencies: b4a: 1.6.7 @@ -8598,6 +11972,8 @@ snapshots: tinybench@2.8.0: {} + tinyexec@0.3.0: {} + tinypool@0.8.4: {} tinyspy@2.2.1: {} @@ -8612,6 +11988,10 @@ snapshots: tr46@0.0.3: {} + trim-lines@3.0.1: {} + + trough@2.2.0: {} + ts-interface-checker@0.1.13: {} ts-morph@23.0.0: @@ -8627,7 +12007,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 20.14.2 - acorn: 8.11.3 + acorn: 8.12.1 acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 @@ -8638,9 +12018,9 @@ snapshots: yn: 3.1.1 optional: true - tsconfck@3.1.3(typescript@5.6.2): + tsconfck@3.1.3(typescript@5.6.3): optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 tslib@2.6.3: {} @@ -8651,12 +12031,18 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + type-detect@4.0.8: {} type-fest@2.19.0: {} type-fest@3.13.1: {} + type-fest@4.26.1: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -8694,10 +12080,18 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.3: + dependencies: + semver: 7.6.2 + typescript@5.4.5: {} typescript@5.6.2: {} + typescript@5.6.3: {} + ufo@1.5.3: {} ufo@1.5.4: {} @@ -8741,6 +12135,16 @@ snapshots: unicorn-magic@0.1.0: {} + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + unimport@3.13.1(rollup@4.18.0): dependencies: '@rollup/pluginutils': 5.1.2(rollup@4.18.0) @@ -8760,6 +12164,52 @@ snapshots: - rollup - webpack-sources + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universalify@2.0.1: {} unplugin@1.14.1: @@ -8858,7 +12308,22 @@ snapshots: validate.io-number@1.0.3: {} - vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.4)(terser@5.34.1): + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1): dependencies: '@babel/core': 7.24.7 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.24.7) @@ -8880,7 +12345,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.7 - nitropack: 2.9.7(magicast@0.3.4) + nitropack: 2.9.7(magicast@0.3.5) node-fetch-native: 1.6.4 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -8945,11 +12410,11 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): + vite-tsconfig-paths@5.0.1(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): dependencies: debug: 4.3.5 globrex: 0.1.2 - tsconfck: 3.1.3(typescript@5.6.2) + tsconfck: 3.1.3(typescript@5.6.3) optionalDependencies: vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) transitivePeerDependencies: @@ -8976,6 +12441,10 @@ snapshots: fsevents: 2.3.3 terser: 5.34.1 + vitefu@1.0.2(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): + optionalDependencies: + vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) + vitest@1.6.0(@types/node@22.7.4)(terser@5.34.1): dependencies: '@vitest/expect': 1.6.0 @@ -9010,6 +12479,120 @@ snapshots: - supports-color - terser + volar-service-css@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-emmet@0.0.61(@volar/language-service@2.4.6): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-html@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-prettier@0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + prettier: 3.3.3 + + volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-typescript@0.0.61(@volar/language-service@2.4.6): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.2 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-yaml@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.6 + + vscode-css-languageservice@6.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} webpack-virtual-modules@0.6.2: {} @@ -9031,6 +12614,12 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 + which-pm-runs@1.1.0: {} + + which-pm@3.0.0: + dependencies: + load-yaml-file: 0.2.0 + which-typed-array@1.1.15: dependencies: available-typed-arrays: 1.0.7 @@ -9064,6 +12653,10 @@ snapshots: dependencies: string-width: 5.1.2 + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + wordwrap@1.0.0: {} wrap-ansi@7.0.0: @@ -9078,18 +12671,45 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} + xxhash-wasm@1.0.2: {} + y18n@5.0.8: {} yallist@3.1.1: {} yallist@4.0.0: {} + yaml-language-server@1.15.0: + dependencies: + ajv: 8.16.0 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + yaml@1.10.2: {} + yaml@2.2.2: {} + yaml@2.4.5: {} + yaml@2.5.1: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -9119,10 +12739,23 @@ snapshots: yocto-queue@1.0.0: {} + yocto-queue@1.1.1: {} + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.5.2 + zod-to-json-schema@3.23.3(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.23.8): + dependencies: + typescript: 5.6.3 + zod: 3.23.8 + zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/src/cli.mts b/src/cli.mts index fc587e5..8106534 100644 --- a/src/cli.mts +++ b/src/cli.mts @@ -15,7 +15,6 @@ export type LimitedUserConfig = { format?: "biome" | "prettier"; lint?: "biome" | "eslint"; operationId?: boolean; - serviceResponse?: "body" | "response"; enums?: "javascript" | "typescript" | false; useDateType?: boolean; debug?: boolean; @@ -60,14 +59,6 @@ async function setupProgram() { ).choices(["biome", "eslint"]), ) .option("--operationId", "Use operation ID to generate operation names?") - .addOption( - new Option( - "--serviceResponse ", - "Define shape of returned value from service calls", - ) - .choices(["body", "response"]) - .default("body"), - ) .addOption( new Option( "--enums ", diff --git a/src/generate.mts b/src/generate.mts index 34a1fbb..068354c 100644 --- a/src/generate.mts +++ b/src/generate.mts @@ -30,7 +30,6 @@ export async function generate(options: LimitedUserConfig, version: string) { }, services: { export: true, - response: formattedOptions.serviceResponse, asClass: false, operationId: formattedOptions.operationId !== undefined diff --git a/vitest.config.ts b/vitest.config.ts index 77a1e7e..b8bbb46 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -4,7 +4,7 @@ export default defineConfig({ test: { coverage: { reporter: ["text", "json-summary", "json", "html"], - exclude: ["src/cli.mts", "examples/**", "tests/**"], + exclude: ["src/cli.mts", "examples/**", "tests/**", "docs/**"], reportOnFailure: true, thresholds: { lines: 95, From eb861b6e17d0bb6f9305ce4541eedd47c1bc8f53 Mon Sep 17 00:00:00 2001 From: Urata Daiki <7nohe@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:25:55 +0900 Subject: [PATCH 6/6] chore: Upgrade biome --- biome.json | 5 +- examples/nextjs-app/package.json | 2 +- examples/react-app/package.json | 2 +- examples/react-app/src/index.css | 2 +- examples/tanstack-router-app/package.json | 3 +- package.json | 2 +- pnpm-lock.yaml | 2300 ++------------------- src/cli.mts | 26 +- 8 files changed, 138 insertions(+), 2204 deletions(-) diff --git a/biome.json b/biome.json index b970cbf..499fcc3 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/1.7.2/schema.json", + "$schema": "https://biomejs.dev/schemas/1.9.3/schema.json", "organizeImports": { "enabled": true }, @@ -12,8 +12,7 @@ "examples/nextjs-app/openapi", "examples/nextjs-app/.next", "examples/tanstack-router-app/openapi", - "examples/tanstack-router-app/src/routeTree.gen.ts", - ".vscode" + "examples/tanstack-router-app/src/routeTree.gen.ts" ] }, "linter": { diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 366d0d5..fdd1b26 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -13,7 +13,7 @@ "test:generated": "tsc -p ./tsconfig.json --noEmit" }, "dependencies": { - "@tanstack/react-query": "^5.32.1", + "@tanstack/react-query": "^5.59.13", "@tanstack/react-query-devtools": "^5.32.1", "next": "^14.2.3", "react": "^18", diff --git a/examples/react-app/package.json b/examples/react-app/package.json index ecb6452..db1d4c7 100644 --- a/examples/react-app/package.json +++ b/examples/react-app/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@hey-api/client-axios": "^0.2.7", - "@tanstack/react-query": "^5.32.1", + "@tanstack/react-query": "^5.59.13", "@tanstack/react-query-devtools": "^5.32.1", "axios": "^1.7.7", "form-data": "~4.0.0", diff --git a/examples/react-app/src/index.css b/examples/react-app/src/index.css index c5239e6..fe79a7d 100644 --- a/examples/react-app/src/index.css +++ b/examples/react-app/src/index.css @@ -84,4 +84,4 @@ input { input:focus { border-color: #646cff; outline: none; -} \ No newline at end of file +} diff --git a/examples/tanstack-router-app/package.json b/examples/tanstack-router-app/package.json index 2d6f2a8..6b976f4 100644 --- a/examples/tanstack-router-app/package.json +++ b/examples/tanstack-router-app/package.json @@ -24,12 +24,11 @@ "vite": "^5.4.4" }, "dependencies": { - "@tanstack/react-query": "^5.32.1", + "@tanstack/react-query": "^5.59.13", "@tanstack/react-query-devtools": "^5.32.1", "@tanstack/react-router": "^1.58.7", "@tanstack/react-router-with-query": "^1.58.7", "@tanstack/router-devtools": "^1.58.7", - "@tanstack/start": "^1.58.7", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/package.json b/package.json index e4e1fc3..c89bb46 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "cross-spawn": "^7.0.3" }, "devDependencies": { - "@biomejs/biome": "^1.7.2", + "@biomejs/biome": "^1.9.3", "@types/cross-spawn": "^6.0.6", "@types/node": "^22.7.4", "@vitest/coverage-v8": "^1.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4dcd313..599638b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: version: 7.0.3 devDependencies: '@biomejs/biome': - specifier: ^1.7.2 - version: 1.8.1 + specifier: ^1.9.3 + version: 1.9.3 '@types/cross-spawn': specifier: ^6.0.6 version: 6.0.6 @@ -70,11 +70,11 @@ importers: examples/nextjs-app: dependencies: '@tanstack/react-query': - specifier: ^5.32.1 - version: 5.45.0(react@18.3.1) + specifier: ^5.59.13 + version: 5.59.13(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.32.1 - version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) + version: 5.45.0(@tanstack/react-query@5.59.13(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.3 version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -116,11 +116,11 @@ importers: specifier: ^0.2.7 version: 0.2.7(axios@1.7.7) '@tanstack/react-query': - specifier: ^5.32.1 - version: 5.45.0(react@18.3.1) + specifier: ^5.59.13 + version: 5.59.13(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.32.1 - version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) + version: 5.45.0(@tanstack/react-query@5.59.13(react@18.3.1))(react@18.3.1) axios: specifier: ^1.7.7 version: 1.7.7 @@ -162,23 +162,20 @@ importers: examples/tanstack-router-app: dependencies: '@tanstack/react-query': - specifier: ^5.32.1 - version: 5.45.0(react@18.3.1) + specifier: ^5.59.13 + version: 5.59.13(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.32.1 - version: 5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1) + version: 5.45.0(@tanstack/react-query@5.59.13(react@18.3.1))(react@18.3.1) '@tanstack/react-router': specifier: ^1.58.7 version: 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-router-with-query': specifier: ^1.58.7 - version: 1.62.1(@tanstack/react-query@5.45.0(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.62.1(@tanstack/react-query@5.59.13(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-devtools': specifier: ^1.58.7 version: 1.62.1(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/start': - specifier: ^1.58.7 - version: 1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) react: specifier: ^18.3.1 version: 18.3.1 @@ -486,57 +483,106 @@ packages: engines: {node: '>=14.21.3'} hasBin: true + '@biomejs/biome@1.9.3': + resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==} + engines: {node: '>=14.21.3'} + hasBin: true + '@biomejs/cli-darwin-arm64@1.8.1': resolution: {integrity: sha512-XLiB7Uu6GALIOBWzQ2aMD0ru4Ly5/qSeQF7kk3AabzJ/kwsEWSe33iVySBP/SS2qv25cgqNiLksjGcw2bHT3mw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] + '@biomejs/cli-darwin-arm64@1.9.3': + resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + '@biomejs/cli-darwin-x64@1.8.1': resolution: {integrity: sha512-uMTSxVLMfqkBVqyc25hSn83jBbp+wtWjzM/pHFlKXt3htJuw7FErVGW0nmQ9Sxa9vJ7GcqoltLMl28VQRIMYzg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] + '@biomejs/cli-darwin-x64@1.9.3': + resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + '@biomejs/cli-linux-arm64-musl@1.8.1': resolution: {integrity: sha512-UQ8Wc01J0wQL+5AYOc7qkJn20B4PZmQL1KrmDZh7ot0DvD6aX4+8mmfd/dG5b6Zjo/44QvCKcvkFGCMRYuhWZA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + '@biomejs/cli-linux-arm64-musl@1.9.3': + resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + '@biomejs/cli-linux-arm64@1.8.1': resolution: {integrity: sha512-3SzZRuC/9Oi2P2IBNPsEj0KXxSXUEYRR2kfRF/Ve8QAfGgrt4qnwuWd6QQKKN5R+oYH691qjm+cXBKEcrP1v/Q==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] + '@biomejs/cli-linux-arm64@1.9.3': + resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + '@biomejs/cli-linux-x64-musl@1.8.1': resolution: {integrity: sha512-fYbP/kNu/rtZ4kKzWVocIdqZOtBSUEg9qUhZaao3dy3CRzafR6u6KDtBeSCnt47O+iLnks1eOR1TUxzr5+QuqA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + '@biomejs/cli-linux-x64-musl@1.9.3': + resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + '@biomejs/cli-linux-x64@1.8.1': resolution: {integrity: sha512-AeBycVdNrTzsyYKEOtR2R0Ph0hCD0sCshcp2aOnfGP0hCZbtFg09D0SdKLbyzKntisY41HxKVrydYiaApp+2uw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] + '@biomejs/cli-linux-x64@1.9.3': + resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + '@biomejs/cli-win32-arm64@1.8.1': resolution: {integrity: sha512-6tEd1H/iFKpgpE3OIB7oNgW5XkjiVMzMRPL8zYoZ036YfuJ5nMYm9eB9H/y81+8Z76vL48fiYzMPotJwukGPqQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] + '@biomejs/cli-win32-arm64@1.9.3': + resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + '@biomejs/cli-win32-x64@1.8.1': resolution: {integrity: sha512-g2H31jJzYmS4jkvl6TiyEjEX+Nv79a5km/xn+5DARTp5MBFzC9gwceusSSB2AkJKqZzY131AiACAWjKrVt5Ijw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] - '@cloudflare/kv-asset-handler@0.3.4': - resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} - engines: {node: '>=16.13'} + '@biomejs/cli-win32-x64@1.9.3': + resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} @@ -546,12 +592,6 @@ packages: resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} engines: {node: '>=14'} - '@deno/shim-deno-test@0.5.0': - resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} - - '@deno/shim-deno@0.19.2': - resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} - '@emmetio/abbreviation@2.3.3': resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} @@ -1015,10 +1055,6 @@ packages: resolution: {integrity: sha512-8YXBE2ZcU/pImVOHX7MWrSR/X5up7t6rPWZlk34RwZEcdr3ua6X+32pSd6XuOQRN+vbuvYNfA6iey8NbrjuMFQ==} engines: {node: '>=14.0.0', npm: '>=6.0.0'} - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} - '@hey-api/client-axios@0.2.7': resolution: {integrity: sha512-3691It5Bt87/kS1K5+vPt6RdSk/gCnkiaEgjrasgRWKHktJ727f+7QWs+KfmCTSGeXf5ODTu7zNOBwzVkLzGkA==} peerDependencies: @@ -1139,9 +1175,6 @@ packages: cpu: [x64] os: [win32] - '@ioredis/commands@1.2.0': - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1184,25 +1217,9 @@ packages: '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@mapbox/node-pre-gyp@1.0.11': - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true - '@mdx-js/mdx@3.0.1': resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} - '@netlify/functions@2.8.2': - resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} - engines: {node: '>=14.0.0'} - - '@netlify/node-cookies@0.1.0': - resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} - engines: {node: ^14.16.0 || >=16.0.0} - - '@netlify/serverless-functions-api@1.26.1': - resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} - engines: {node: '>=18.0.0'} - '@next/env@14.2.4': resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} @@ -1303,165 +1320,10 @@ packages: cpu: [x64] os: [win32] - '@parcel/watcher-android-arm64@2.4.1': - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.4.1': - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.4.1': - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.4.1': - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.4.1': - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.4.1': - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.4.1': - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.4.1': - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.4.1': - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-wasm@2.3.0': - resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-wasm@2.4.1': - resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-win32-arm64@2.4.1': - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.4.1': - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.4.1': - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.4.1': - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-commonjs@25.0.8': - resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - '@rollup/pluginutils@5.1.2': resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} engines: {node: '>=14.0.0'} @@ -1649,10 +1511,6 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - '@stoplight/http-spec@7.0.3': resolution: {integrity: sha512-r9Y8rT4RbqY7NWqSXjiqtBq0Nme2K5cArSX9gDPeuud8F4CwbizP7xkUwLdwDdHgoJkyIQ3vkFJpHzUVCQeOOA==} engines: {node: '>=14.13'} @@ -1728,28 +1586,22 @@ packages: resolution: {integrity: sha512-2CqERleeqO3hkhJmyJm37tiL3LYgeOpmo8szqdjgtnnG0z7ZpvzkZz6HkfOr9Ca/ha7mhAiouSvLYuLkM37AMg==} engines: {node: '>=12'} - '@tanstack/query-core@5.45.0': - resolution: {integrity: sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==} + '@tanstack/query-core@5.59.13': + resolution: {integrity: sha512-Oou0bBu/P8+oYjXsJQ11j+gcpLAMpqW42UlokQYEz4dE7+hOtVO9rVuolJKgEccqzvyFzqX4/zZWY+R/v1wVsQ==} '@tanstack/query-devtools@5.37.1': resolution: {integrity: sha512-XcG4IIHIv0YQKrexTqo2zogQWR1Sz672tX2KsfE9kzB+9zhx44vRKH5si4WDILE1PIWQpStFs/NnrDQrBAUQpg==} - '@tanstack/react-cross-context@1.60.0': - resolution: {integrity: sha512-UZXc0ggrZLvNN3j1qQLtnhPp0gAcxeKS+d+hjGiJuIHSKt5fCbb/88C5uWrq4R4jsw5PnzUaKn8VqyUi/cXsXA==} - peerDependencies: - react: '>=18' - react-dom: '>=18' - '@tanstack/react-query-devtools@5.45.0': resolution: {integrity: sha512-bYHKCBQxRYQgQPPt+OdxJxoGag8SyPYxFxUsTHXERPnhD99I8iUV39XGYePyxKv5b3oME4fM1e8AgQ1aPxTQ6w==} peerDependencies: '@tanstack/react-query': ^5.45.0 react: ^18 || ^19 - '@tanstack/react-query@5.45.0': - resolution: {integrity: sha512-y272cKRJp1BvehrWG4ashOBuqBj1Qm2O6fgYJ9LYSHrLdsCXl74GbSVjUQTReUdHuRIl9cEOoyPa6HYag400lw==} + '@tanstack/react-query@5.59.13': + resolution: {integrity: sha512-GB2ELtiH8tL0rcFiM4sWvnXhazt1xRXX/LolMEV12kfEKu58aNA4lQoieslP61PO4vZO9JJMwm+6lqyS0E1HOA==} peerDependencies: - react: ^18.0.0 + react: ^18 || ^19 '@tanstack/react-router-with-query@1.62.1': resolution: {integrity: sha512-S6+BfVTkKdbKudPUrEHccn78tXCq5hlEFuV0x+LvXNDdLo9H62N/0uiZ1HZdCgyeLyU+YNbR0QXJlLQVrRKXkQ==} @@ -1804,17 +1656,6 @@ packages: webpack: optional: true - '@tanstack/start-vite-plugin@1.60.0': - resolution: {integrity: sha512-ap9NFBRyWJo7Xdklad0Bg3LOZ+n9nwWTDOU5ix/ZzZfifNWp5OoHRSVveHqPm2UAHUVp2BCzUK6xbAxtaSjjnw==} - engines: {node: '>=12'} - - '@tanstack/start@1.62.1': - resolution: {integrity: sha512-y8K/musbAxhm1T65p9M5yBukyrVdHulASCmg4FfYJBjJCSaTIrrE9EnN2J3u5Msy9x/1Ujce5hj9DfmTNTwcZg==} - engines: {node: '>=12'} - peerDependencies: - react: '>=18.0.0 || >=19.0.0' - react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/store@0.5.5': resolution: {integrity: sha512-EOSrgdDAJExbvRZEQ/Xhh9iZchXpMN+ga1Bnk8Nmygzs8TfiE6hbzThF+Pr2G19uHL6+DTDTHhJ8VQiOd7l4tA==} @@ -1856,9 +1697,6 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/braces@3.0.4': - resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} @@ -1880,12 +1718,6 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/http-proxy@1.17.15': - resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} - - '@types/jsesc@3.0.3': - resolution: {integrity: sha512-YZZ9ZOAiiSVC6KApWd/fTCDTdTOOMiRU4Lq3/VSmXNPse8IvCVOn5kYRRLu900Ub1lTPurVZFI5unEqLDJR7wg==} - '@types/json-schema@7.0.11': resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} @@ -1898,9 +1730,6 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/micromatch@4.0.9': - resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} - '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -1925,9 +1754,6 @@ packages: '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -1946,41 +1772,6 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vercel/nft@0.26.5': - resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} - engines: {node: '>=16'} - hasBin: true - - '@vinxi/listhen@1.5.6': - resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} - hasBin: true - - '@vinxi/plugin-directives@0.4.3': - resolution: {integrity: sha512-Ey+TRIwyk8871PKhQel8NyZ9B6N0Tvhjo1QIttTyrV0d7BfUpri5GyGygmBY7fHClSE/vqaNCCZIKpTL3NJAEg==} - peerDependencies: - vinxi: ^0.4.3 - - '@vinxi/react-server-dom@0.0.3': - resolution: {integrity: sha512-ZJJZtuw1TbGFOBuDZBHmM3w40yzFpNFWoPCoC2QtZBkYEQXYF9sOHHxkjTfNvk4rSn/zaUAs6KNUbVRvebq/1Q==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: 0.0.0-experimental-035a41c4e-20230704 - react-dom: 0.0.0-experimental-035a41c4e-20230704 - vite: ^4.3.9 - - '@vinxi/react@0.2.5': - resolution: {integrity: sha512-Ubjv/JfYWTxFbuaHxKOeq6hQMuSuIH6eZXRf27wb82YWM82z3VY1nwZzTHgyveHg/EPSOK0p8LUmbw9758xTlw==} - - '@vinxi/server-components@0.4.3': - resolution: {integrity: sha512-KVEnQtb+ZlXIEKaUw4r4WZl/rqFeZqSyIRklY1wFiPw7GCJUxbXzISpsJ+HwDhYi9k4n8uZJyQyLHGkoiEiolg==} - peerDependencies: - vinxi: ^0.4.3 - - '@vinxi/server-functions@0.4.3': - resolution: {integrity: sha512-kVYrOrCMHwGvHRwpaeW2/PE7URcGtz4Rk/hIHa2xjt5PGopzzB/Y5GC8YgZjtqSRqo0ElAKsEik7UE6CXH3HXA==} - peerDependencies: - vinxi: ^0.4.3 - '@vitejs/plugin-react@4.3.1': resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2033,13 +1824,6 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - abstract-logging@2.0.1: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} @@ -2047,25 +1831,11 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} - - acorn-typescript@1.4.13: - resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} - peerDependencies: - acorn: '>=8.9.0' - acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} @@ -2098,10 +1868,6 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2133,22 +1899,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} - - archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -2179,10 +1929,6 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -2197,12 +1943,6 @@ packages: engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -2264,9 +2004,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -2276,10 +2013,6 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} @@ -2304,31 +2037,16 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - c12@1.11.1: - resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} - peerDependencies: - magicast: ^0.3.4 - peerDependenciesMeta: - magicast: - optional: true - c12@2.0.1: resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} peerDependencies: @@ -2352,10 +2070,6 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -2444,10 +2158,6 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -2459,10 +2169,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - code-block-writer@13.0.1: resolution: {integrity: sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==} @@ -2485,10 +2191,6 @@ packages: color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} @@ -2514,13 +2216,6 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} - compute-gcd@1.2.1: resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} @@ -2537,9 +2232,6 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} @@ -2547,32 +2239,13 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - croner@8.1.2: - resolution: {integrity: sha512-ypfPFcAXHuAZRCzo3vJL6ltENzniTjwe/qsLleH1V2/7SRDjgvRQyrLmumFTLmjFax4IuSxfGXEn79fozXcJog==} - engines: {node: '>=18.0'} - cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} @@ -2584,14 +2257,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crossws@0.2.4: - resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} - peerDependencies: - uWebSockets.js: '*' - peerDependenciesMeta: - uWebSockets.js: - optional: true - css-selector-parser@3.0.5: resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} @@ -2615,31 +2280,6 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - dax-sh@0.39.2: - resolution: {integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==} - - db0@0.1.4: - resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} - peerDependencies: - '@libsql/client': ^0.5.2 - better-sqlite3: ^9.4.3 - drizzle-orm: ^0.29.4 - peerDependenciesMeta: - '@libsql/client': - optional: true - better-sqlite3: - optional: true - drizzle-orm: - optional: true - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -2673,18 +2313,10 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2696,17 +2328,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2714,15 +2335,6 @@ packages: destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2759,10 +2371,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dot-prop@8.0.2: - resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} - engines: {node: '>=16'} - dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -2771,15 +2379,9 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.799: resolution: {integrity: sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==} @@ -2798,14 +2400,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2866,9 +2460,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2903,24 +2494,9 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -2974,9 +2550,6 @@ packages: resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} engines: {node: '>=0.10.0'} - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -3035,17 +2608,9 @@ packages: fp-ts@2.16.6: resolution: {integrity: sha512-v7w209VPj4L6pPn/ftFRJu31Oa8QagwcVw7BZmLCUWU4AQoc954rX9ogSIahDf67Pg+GjPbkW/Kn9XWnlWJG0g==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -3068,11 +2633,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3092,9 +2652,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -3133,11 +2690,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3146,13 +2698,6 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} - engines: {node: '>=18'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - goober@2.1.14: resolution: {integrity: sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==} peerDependencies: @@ -3168,16 +2713,6 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} - gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - h3@1.11.1: - resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} - - h3@1.13.0: - resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -3212,9 +2747,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -3282,9 +2814,6 @@ packages: hastscript@9.0.0: resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3303,32 +2832,17 @@ packages: http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - http-reasons@0.1.0: resolution: {integrity: sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==} - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - httpxy@0.1.5: - resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} - human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -3343,10 +2857,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -3375,13 +2885,6 @@ packages: peerDependencies: fp-ts: ^2.5.0 - ioredis@5.4.1: - resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} - engines: {node: '>=12.22.0'} - - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -3427,11 +2930,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3465,9 +2963,6 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -3484,9 +2979,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -3498,10 +2990,6 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3529,35 +3017,16 @@ packages: is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbot@5.1.17: - resolution: {integrity: sha512-/wch8pRKZE+aoVhRX/hYPY1C7dMCeeMyhkQLNLNlYAbGQn9bkvMB8fOUXNnk5I0m4vDYbBJ9ciVtkr9zfBJ7qA==} - engines: {node: '>=18'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - isomorphic-fetch@3.0.0: resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} @@ -3650,9 +3119,6 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsonpath-plus@7.2.0: resolution: {integrity: sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==} engines: {node: '>=12.0.0'} @@ -3669,17 +3135,6 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - - knitwork@1.1.0: - resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} - - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - lefthook-darwin-arm64@1.6.15: resolution: {integrity: sha512-PQKFipNueV2i/W3XI+fDDwzV3YdnJ1AqwIP2BwDpzlSJtQQarsAG7lRvFdjkPGplVLqWoohTQa1/ooBmg+g3dw==} cpu: [arm64] @@ -3739,10 +3194,6 @@ packages: resolution: {integrity: sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==} engines: {node: '>=4'} - listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} - hasBin: true - load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} @@ -3766,12 +3217,6 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -3793,9 +3238,6 @@ packages: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3809,19 +3251,12 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - magicast@0.2.11: - resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} - magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -4036,21 +3471,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mime@4.0.4: - resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} - engines: {node: '>=16'} - hasBin: true - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -4066,10 +3486,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.4: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} @@ -4116,17 +3532,10 @@ packages: mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -4179,16 +3588,6 @@ packages: nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - nitropack@2.9.7: - resolution: {integrity: sha512-aKXvtNrWkOCMsQbsk4A0qQdBjrJ1ZcvwlTQevI/LAgLWLYc5L7Q/YiYxGLal4ITyNSlzir1Cm1D2ZxnYhmpMEw==} - engines: {node: ^16.11.0 || >=17.0.0} - hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} @@ -4202,9 +3601,6 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} @@ -4217,25 +3613,12 @@ packages: encoding: optional: true - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp-build@4.8.2: - resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} - hasBin: true - node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -4252,10 +3635,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -4283,19 +3662,12 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - ofetch@1.4.0: - resolution: {integrity: sha512-MuHgsEhU6zGeX+EMh+8mSMrYTnsqJQQrpM00Q6QHMKNqQ0bKy0B43tk8tL1wg+CnsSTy1kg4Ir2T5Ig6rD+dfQ==} - ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -4313,14 +3685,6 @@ packages: ono@4.0.11: resolution: {integrity: sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - openapi-typescript@6.7.6: - resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} - hasBin: true - openapi3-ts@2.0.2: resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} @@ -4391,10 +3755,6 @@ packages: parse5@7.2.0: resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -4429,17 +3789,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -4584,10 +3937,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} - pretty-data@0.40.0: resolution: {integrity: sha512-YFLnEdDEDnkt/GEhet5CYZHCvALw6+Elyb/tp8kQG03ZSIuzeaDWpZYndCXwgqu4NAjh1PI534dhDS1mHarRnQ==} @@ -4599,16 +3948,9 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@1.0.0: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4635,16 +3977,6 @@ packages: quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} @@ -4675,20 +4007,10 @@ packages: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -4697,18 +4019,6 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} - - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4773,13 +4083,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -4807,26 +4110,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@5.0.7: resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} engines: {node: '>=14.18'} hasBin: true - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - rollup@4.18.0: resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4844,9 +4132,6 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -4866,9 +4151,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -4896,23 +4178,6 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-placeholder@2.0.2: - resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -4921,9 +4186,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.32.6: resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} engines: {node: '>=14.15.0'} @@ -4961,9 +4223,6 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -4989,13 +4248,6 @@ packages: engines: {node: '>=14.0.0', npm: '>=6.0.0'} hasBin: true - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - sonic-boom@1.4.1: resolution: {integrity: sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==} @@ -5042,13 +4294,6 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} @@ -5093,9 +4338,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -5164,18 +4406,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - tailwindcss@3.4.4: resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} engines: {node: '>=14.0.0'} @@ -5245,10 +4479,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -5303,14 +4533,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.26.1: resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} @@ -5359,9 +4581,6 @@ packages: ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uglify-js@3.18.0: resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} @@ -5370,35 +4589,15 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - unctx@2.3.1: - resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} - undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - - unenv@1.10.0: - resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unimport@3.13.1: - resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} - unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -5429,10 +4628,6 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - unplugin@1.14.1: resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} engines: {node: '>=14.0.0'} @@ -5442,57 +4637,6 @@ packages: webpack-sources: optional: true - unstorage@1.12.0: - resolution: {integrity: sha512-ARZYTXiC+e8z3lRM7/qY9oyaOkaozCeNd2xoz7sYK9fv7OLGhVsf+BZbmASqiK/HTZ7T6eAlnVq9JynZppyk3w==} - peerDependencies: - '@azure/app-configuration': ^1.7.0 - '@azure/cosmos': ^4.1.1 - '@azure/data-tables': ^13.2.2 - '@azure/identity': ^4.4.1 - '@azure/keyvault-secrets': ^4.8.0 - '@azure/storage-blob': ^12.24.0 - '@capacitor/preferences': ^6.0.2 - '@netlify/blobs': ^6.5.0 || ^7.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.0 - '@vercel/kv': ^1.0.1 - idb-keyval: ^6.2.1 - ioredis: ^5.4.1 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/kv': - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - unwasm@0.3.9: - resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} - update-browserslist-db@1.0.16: resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true @@ -5505,9 +4649,6 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5517,9 +4658,6 @@ packages: urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} - urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - use-sync-external-store@1.2.2: resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} peerDependencies: @@ -5566,23 +4704,11 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vinxi@0.4.3: - resolution: {integrity: sha512-RgJz7RWftML5h/qfPsp3QKVc2FSlvV4+HevpE0yEY2j+PS/I2ULjoSsZDXaR8Ks2WYuFFDzQr8yrox7v8aqkng==} - hasBin: true - vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-tsconfig-paths@5.0.1: - resolution: {integrity: sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite@5.2.13: resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5827,23 +4953,11 @@ packages: engines: {node: '>= 8'} hasBin: true - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - why-is-node-running@2.2.2: resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - widest-line@5.0.0: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} @@ -5929,10 +5043,6 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} - zod-to-json-schema@3.23.3: resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: @@ -6304,21 +5414,11 @@ snapshots: dependencies: '@babel/types': 7.25.7 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -6413,33 +5513,64 @@ snapshots: '@biomejs/cli-win32-arm64': 1.8.1 '@biomejs/cli-win32-x64': 1.8.1 + '@biomejs/biome@1.9.3': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.3 + '@biomejs/cli-darwin-x64': 1.9.3 + '@biomejs/cli-linux-arm64': 1.9.3 + '@biomejs/cli-linux-arm64-musl': 1.9.3 + '@biomejs/cli-linux-x64': 1.9.3 + '@biomejs/cli-linux-x64-musl': 1.9.3 + '@biomejs/cli-win32-arm64': 1.9.3 + '@biomejs/cli-win32-x64': 1.9.3 + '@biomejs/cli-darwin-arm64@1.8.1': optional: true + '@biomejs/cli-darwin-arm64@1.9.3': + optional: true + '@biomejs/cli-darwin-x64@1.8.1': optional: true + '@biomejs/cli-darwin-x64@1.9.3': + optional: true + '@biomejs/cli-linux-arm64-musl@1.8.1': optional: true + '@biomejs/cli-linux-arm64-musl@1.9.3': + optional: true + '@biomejs/cli-linux-arm64@1.8.1': optional: true + '@biomejs/cli-linux-arm64@1.9.3': + optional: true + '@biomejs/cli-linux-x64-musl@1.8.1': optional: true + '@biomejs/cli-linux-x64-musl@1.9.3': + optional: true + '@biomejs/cli-linux-x64@1.8.1': optional: true + '@biomejs/cli-linux-x64@1.9.3': + optional: true + '@biomejs/cli-win32-arm64@1.8.1': optional: true + '@biomejs/cli-win32-arm64@1.9.3': + optional: true + '@biomejs/cli-win32-x64@1.8.1': optional: true - '@cloudflare/kv-asset-handler@0.3.4': - dependencies: - mime: 3.0.0 + '@biomejs/cli-win32-x64@1.9.3': + optional: true '@cspotcode/source-map-support@0.8.1': dependencies: @@ -6448,13 +5579,6 @@ snapshots: '@ctrl/tinycolor@4.1.0': {} - '@deno/shim-deno-test@0.5.0': {} - - '@deno/shim-deno@0.19.2': - dependencies: - '@deno/shim-deno-test': 0.5.0 - which: 4.0.0 - '@emmetio/abbreviation@2.3.3': dependencies: '@emmetio/scanner': 1.0.4 @@ -6722,8 +5846,6 @@ snapshots: '@faker-js/faker@6.3.1': {} - '@fastify/busboy@2.1.1': {} - '@hey-api/client-axios@0.2.7(axios@1.7.7)': dependencies: axios: 1.7.7 @@ -6815,8 +5937,6 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@ioredis/commands@1.2.0': {} - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6846,6 +5966,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + optional: true '@jridgewell/sourcemap-codec@1.4.15': {} @@ -6864,21 +5985,6 @@ snapshots: '@jsdevtools/ono@7.1.3': {} - '@mapbox/node-pre-gyp@1.0.11': - dependencies: - detect-libc: 2.0.3 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 - node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 - semver: 7.6.2 - tar: 6.2.1 - transitivePeerDependencies: - - encoding - - supports-color - '@mdx-js/mdx@3.0.1': dependencies: '@types/estree': 1.0.6 @@ -6907,17 +6013,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@netlify/functions@2.8.2': - dependencies: - '@netlify/serverless-functions-api': 1.26.1 - - '@netlify/node-cookies@0.1.0': {} - - '@netlify/serverless-functions-api@1.26.1': - dependencies: - '@netlify/node-cookies': 0.1.0 - urlpattern-polyfill: 8.0.2 - '@next/env@14.2.4': {} '@next/swc-darwin-arm64@14.2.4': @@ -6978,142 +6073,9 @@ snapshots: '@pagefind/windows-x64@1.1.1': optional: true - '@parcel/watcher-android-arm64@2.4.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.4.1': - optional: true - - '@parcel/watcher-darwin-x64@2.4.1': + '@pkgjs/parseargs@0.11.0': optional: true - '@parcel/watcher-freebsd-x64@2.4.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.4.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.4.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.4.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.4.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.4.1': - optional: true - - '@parcel/watcher-wasm@2.3.0': - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.7 - - '@parcel/watcher-wasm@2.4.1': - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.7 - - '@parcel/watcher-win32-arm64@2.4.1': - optional: true - - '@parcel/watcher-win32-ia32@2.4.1': - optional: true - - '@parcel/watcher-win32-x64@2.4.1': - optional: true - - '@parcel/watcher@2.4.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.7 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rollup/plugin-alias@5.1.1(rollup@4.18.0)': - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-commonjs@25.0.8(rollup@4.18.0)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.10 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-inject@5.0.5(rollup@4.18.0)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - estree-walker: 2.0.2 - magic-string: 0.30.10 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-json@6.1.0(rollup@4.18.0)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-node-resolve@15.3.0(rollup@4.18.0)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-replace@5.0.7(rollup@4.18.0)': - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - magic-string: 0.30.10 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/plugin-terser@0.4.4(rollup@4.18.0)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.34.1 - optionalDependencies: - rollup: 4.18.0 - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/pluginutils@5.1.2(rollup@4.18.0)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.18.0 - '@rollup/pluginutils@5.1.2(rollup@4.24.0)': dependencies: '@types/estree': 1.0.5 @@ -7247,8 +6209,6 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@sindresorhus/merge-streams@2.3.0': {} - '@stoplight/http-spec@7.0.3': dependencies: '@stoplight/json': 3.21.0 @@ -7429,29 +6389,24 @@ snapshots: '@tanstack/history@1.61.1': {} - '@tanstack/query-core@5.45.0': {} + '@tanstack/query-core@5.59.13': {} '@tanstack/query-devtools@5.37.1': {} - '@tanstack/react-cross-context@1.60.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@tanstack/react-query-devtools@5.45.0(@tanstack/react-query@5.45.0(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@5.45.0(@tanstack/react-query@5.59.13(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/query-devtools': 5.37.1 - '@tanstack/react-query': 5.45.0(react@18.3.1) + '@tanstack/react-query': 5.59.13(react@18.3.1) react: 18.3.1 - '@tanstack/react-query@5.45.0(react@18.3.1)': + '@tanstack/react-query@5.59.13(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.45.0 + '@tanstack/query-core': 5.59.13 react: 18.3.1 - '@tanstack/react-router-with-query@1.62.1(@tanstack/react-query@5.45.0(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-router-with-query@1.62.1(@tanstack/react-query@5.59.13(react@18.3.1))(@tanstack/react-router@1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-query': 5.45.0(react@18.3.1) + '@tanstack/react-query': 5.59.13(react@18.3.1) '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -7517,81 +6472,6 @@ snapshots: - supports-color - webpack-sources - '@tanstack/start-vite-plugin@1.60.0': - dependencies: - '@babel/core': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) - '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - '@types/babel__core': 7.20.5 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - transitivePeerDependencies: - - supports-color - - '@tanstack/start@1.62.1(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.34.1)(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': - dependencies: - '@tanstack/react-cross-context': 1.60.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-router': 1.62.1(@tanstack/router-generator@1.58.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/router-generator': 1.58.12 - '@tanstack/router-plugin': 1.62.0(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) - '@tanstack/start-vite-plugin': 1.60.0 - '@types/jsesc': 3.0.3 - '@vinxi/react': 0.2.5 - '@vinxi/react-server-dom': 0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) - '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) - '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) - import-meta-resolve: 4.1.0 - isbot: 5.1.17 - jsesc: 3.0.2 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - tiny-invariant: 1.3.3 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) - vite-tsconfig-paths: 5.0.1(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)) - zod: 3.23.8 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@rsbuild/core' - - '@types/node' - - '@upstash/redis' - - '@vercel/kv' - - better-sqlite3 - - debug - - drizzle-orm - - encoding - - idb-keyval - - ioredis - - less - - lightningcss - - magicast - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - typescript - - uWebSockets.js - - vite - - webpack - - webpack-sources - - xml2js - '@tanstack/store@0.5.5': {} '@tanstack/virtual-file-routes@1.56.0': {} @@ -7642,8 +6522,6 @@ snapshots: dependencies: '@babel/types': 7.25.7 - '@types/braces@3.0.4': {} - '@types/cookie@0.6.0': {} '@types/cross-spawn@6.0.6': @@ -7666,12 +6544,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/http-proxy@1.17.15': - dependencies: - '@types/node': 20.14.2 - - '@types/jsesc@3.0.3': {} - '@types/json-schema@7.0.11': {} '@types/json-schema@7.0.15': {} @@ -7682,10 +6554,6 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/micromatch@4.0.9': - dependencies: - '@types/braces': 3.0.4 - '@types/ms@0.7.34': {} '@types/nlcst@2.0.3': @@ -7713,8 +6581,6 @@ snapshots: '@types/prop-types': 15.7.12 csstype: 3.1.3 - '@types/resolve@1.20.2': {} - '@types/sax@1.2.7': dependencies: '@types/node': 22.7.4 @@ -7731,90 +6597,6 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vercel/nft@0.26.5': - dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 4.2.1 - acorn: 8.11.3 - acorn-import-attributes: 1.9.5(acorn@8.11.3) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - node-gyp-build: 4.8.2 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@vinxi/listhen@1.5.6': - dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.3.0 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.11.1 - http-shutdown: 1.2.2 - jiti: 1.21.6 - mlly: 1.7.1 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.5.3 - untun: 0.1.3 - uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js - - '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': - dependencies: - '@babel/parser': 7.24.7 - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.9.0 - magicast: 0.2.11 - recast: 0.23.9 - tslib: 2.6.3 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) - - '@vinxi/react-server-dom@0.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))': - dependencies: - acorn-loose: 8.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - - '@vinxi/react@0.2.5': {} - - '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': - dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.9.0 - magicast: 0.2.11 - recast: 0.23.9 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) - - '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1))': - dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1)) - acorn: 8.11.3 - acorn-loose: 8.4.0 - acorn-typescript: 1.4.13(acorn@8.11.3) - astring: 1.9.0 - magicast: 0.2.11 - recast: 0.23.9 - vinxi: 0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1) - '@vitejs/plugin-react@4.3.1(vite@5.2.13(@types/node@22.7.4)(terser@5.34.1))': dependencies: '@babel/core': 7.24.7 @@ -7935,12 +6717,6 @@ snapshots: '@vscode/l10n@0.0.18': {} - abbrev@1.1.1: {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - abstract-logging@2.0.1: {} accepts@1.3.8: @@ -7948,26 +6724,10 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 - acorn-loose@8.4.0: - dependencies: - acorn: 8.11.3 - - acorn-typescript@1.4.13(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - acorn-walk@8.3.2: {} acorn@8.11.3: {} @@ -7995,8 +6755,6 @@ snapshots: dependencies: string-width: 4.2.3 - ansi-colors@4.1.3: {} - ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} @@ -8020,33 +6778,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - aproba@2.0.0: {} - - archiver-utils@5.0.2: - dependencies: - glob: 10.4.1 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 4.5.2 - - archiver@7.0.1: - dependencies: - archiver-utils: 5.0.2 - async: 3.2.6 - buffer-crc32: 1.0.0 - readable-stream: 4.5.2 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 6.0.1 - - are-we-there-yet@2.0.0: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - arg@4.1.3: optional: true @@ -8080,10 +6811,6 @@ snapshots: assertion-error@1.1.0: {} - ast-types@0.16.1: - dependencies: - tslib: 2.6.3 - astring@1.9.0: {} astro-expressive-code@0.35.6(astro@4.16.2(@types/node@22.7.4)(rollup@4.24.0)(terser@5.34.1)(typescript@5.6.3)): @@ -8170,10 +6897,6 @@ snapshots: - terser - typescript - async-sema@3.1.1: {} - - async@3.2.6: {} - asynckit@0.4.0: {} atomic-sleep@1.0.0: {} @@ -8245,10 +6968,6 @@ snapshots: binary-extensions@2.3.0: {} - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - bl@4.1.0: dependencies: buffer: 5.7.1 @@ -8259,17 +6978,6 @@ snapshots: boolbase@1.0.0: {} - boxen@7.1.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -8308,41 +7016,18 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) - buffer-crc32@1.0.0: {} - - buffer-from@1.1.2: {} + buffer-from@1.1.2: + optional: true buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - busboy@1.6.0: dependencies: streamsearch: 1.1.0 - c12@1.11.1(magicast@0.3.5): - dependencies: - chokidar: 3.6.0 - confbox: 0.1.7 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.3 - jiti: 1.21.6 - mlly: 1.7.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - rc9: 2.1.2 - optionalDependencies: - magicast: 0.3.5 - c12@2.0.1(magicast@0.3.5): dependencies: chokidar: 4.0.1 @@ -8374,8 +7059,6 @@ snapshots: camelcase-css@2.0.1: {} - camelcase@7.0.1: {} - camelcase@8.0.0: {} caniuse-lite@1.0.30001632: {} @@ -8459,12 +7142,6 @@ snapshots: client-only@0.0.1: {} - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -8479,8 +7156,6 @@ snapshots: clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} - code-block-writer@13.0.1: {} collapse-white-space@2.1.0: {} @@ -8502,8 +7177,6 @@ snapshots: color-name: 1.1.4 simple-swizzle: 0.2.2 - color-support@1.1.3: {} - color@4.2.3: dependencies: color-convert: 2.0.1 @@ -8517,22 +7190,13 @@ snapshots: commander@12.1.0: {} - commander@2.20.3: {} + commander@2.20.3: + optional: true commander@4.1.1: {} common-ancestor-path@1.0.1: {} - commondir@1.0.1: {} - - compress-commons@6.0.2: - dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.5.2 - compute-gcd@1.2.1: dependencies: validate.io-array: 1.0.6 @@ -8552,30 +7216,15 @@ snapshots: consola@3.2.3: {} - console-control-strings@1.1.0: {} - content-type@1.0.5: {} convert-source-map@2.0.0: {} - cookie-es@1.2.2: {} - cookie@0.7.2: {} - core-util-is@1.0.3: {} - - crc-32@1.2.2: {} - - crc32-stream@6.0.0: - dependencies: - crc-32: 1.2.2 - readable-stream: 4.5.2 - create-require@1.1.1: optional: true - croner@8.1.2: {} - cross-fetch@3.1.8: dependencies: node-fetch: 2.7.0 @@ -8596,8 +7245,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.2.4: {} - css-selector-parser@3.0.5: {} cssesc@3.0.0: {} @@ -8622,17 +7269,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - dax-sh@0.39.2: - dependencies: - '@deno/shim-deno': 0.19.2 - undici-types: 5.26.5 - - db0@0.1.4: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@4.3.5: dependencies: ms: 2.1.2 @@ -8655,16 +7291,12 @@ snapshots: deep-extend@0.6.0: {} - deepmerge@4.3.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} - define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -8675,20 +7307,10 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: {} - - denque@2.1.0: {} - - depd@2.0.0: {} - dequal@2.0.3: {} destr@2.0.3: {} - destroy@1.2.0: {} - - detect-libc@1.0.3: {} - detect-libc@2.0.3: {} deterministic-object-hash@2.0.2: @@ -8714,20 +7336,12 @@ snapshots: dlv@1.1.3: {} - dot-prop@8.0.2: - dependencies: - type-fest: 3.13.1 - dotenv@16.4.5: {} dset@3.1.4: {} - duplexer@0.1.2: {} - eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.4.799: {} electron-to-chromium@1.5.32: {} @@ -8743,10 +7357,6 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -8913,8 +7523,6 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@5.0.0: {} @@ -8951,16 +7559,8 @@ snapshots: dependencies: '@types/estree': 1.0.5 - etag@1.8.1: {} - - event-target-shim@5.0.1: {} - - eventemitter3@4.0.7: {} - eventemitter3@5.0.1: {} - events@3.3.0: {} - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -9020,8 +7620,6 @@ snapshots: file-type@3.9.0: {} - file-uri-to-path@1.0.0: {} - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -9071,16 +7669,8 @@ snapshots: fp-ts@2.16.6: {} - fresh@0.5.2: {} - fs-constants@1.0.0: {} - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -9101,18 +7691,6 @@ snapshots: functions-have-names@1.2.3: {} - gauge@3.0.2: - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9129,8 +7707,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-port-please@3.1.2: {} - get-stream@8.0.1: {} get-symbol-description@1.0.2: @@ -9183,14 +7759,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globals@11.12.0: {} globalthis@1.0.4: @@ -9198,17 +7766,6 @@ snapshots: define-properties: 1.2.1 gopd: 1.0.1 - globby@14.0.2: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.2 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - - globrex@0.1.2: {} - goober@2.1.14(csstype@3.1.3): dependencies: csstype: 3.1.3 @@ -9226,40 +7783,6 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - gzip-size@7.0.0: - dependencies: - duplexer: 0.1.2 - - h3@1.11.1: - dependencies: - cookie-es: 1.2.2 - crossws: 0.2.4 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.2.1 - ohash: 1.1.3 - radix3: 1.1.2 - ufo: 1.5.3 - uncrypto: 0.1.3 - unenv: 1.10.0 - transitivePeerDependencies: - - uWebSockets.js - - h3@1.13.0: - dependencies: - cookie-es: 1.2.2 - crossws: 0.2.4 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.2.1 - ohash: 1.1.4 - radix3: 1.1.2 - ufo: 1.5.4 - uncrypto: 0.1.3 - unenv: 1.10.0 - transitivePeerDependencies: - - uWebSockets.js - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -9289,8 +7812,6 @@ snapshots: dependencies: has-symbols: 1.0.3 - has-unicode@2.0.1: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -9492,8 +8013,6 @@ snapshots: property-information: 6.5.0 space-separated-tokens: 2.0.2 - hookable@5.5.3: {} - hosted-git-info@2.8.9: {} html-escaper@2.0.2: {} @@ -9506,14 +8025,6 @@ snapshots: http-cache-semantics@4.1.1: {} - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -9522,18 +8033,8 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy@1.18.1: - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.6 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - http-reasons@0.1.0: {} - http-shutdown@1.2.2: {} - https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 @@ -9541,8 +8042,6 @@ snapshots: transitivePeerDependencies: - supports-color - httpxy@0.1.5: {} - human-signals@5.0.0: {} i18next@23.15.2: @@ -9555,8 +8054,6 @@ snapshots: ieee754@1.2.1: {} - ignore@5.3.2: {} - import-meta-resolve@4.1.0: {} inflight@1.0.6: @@ -9582,22 +8079,6 @@ snapshots: dependencies: fp-ts: 2.16.6 - ioredis@5.4.1: - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.3.5 - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - - iron-webcrypto@1.2.1: {} - is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -9643,8 +8124,6 @@ snapshots: is-decimal@2.0.1: {} - is-docker@2.2.1: {} - is-docker@3.0.0: {} is-extendable@0.1.1: {} @@ -9665,8 +8144,6 @@ snapshots: is-interactive@2.0.0: {} - is-module@1.0.0: {} - is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -9677,10 +8154,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.5 - is-reference@3.0.2: dependencies: '@types/estree': 1.0.6 @@ -9694,8 +8167,6 @@ snapshots: dependencies: call-bind: 1.0.7 - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-string@1.0.7: @@ -9718,28 +8189,14 @@ snapshots: dependencies: call-bind: 1.0.7 - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - - isarray@1.0.0: {} - isarray@2.0.5: {} - isbot@5.1.17: {} - isexe@2.0.0: {} - isexe@3.1.1: {} - isomorphic-fetch@3.0.0: dependencies: node-fetch: 2.7.0 @@ -9830,12 +8287,6 @@ snapshots: jsonc-parser@3.3.1: {} - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - jsonpath-plus@7.2.0: {} kind-of@6.0.3: {} @@ -9844,14 +8295,6 @@ snapshots: kleur@4.1.5: {} - klona@2.0.6: {} - - knitwork@1.1.0: {} - - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - lefthook-darwin-arm64@1.6.15: optional: true @@ -9895,29 +8338,6 @@ snapshots: liquid-json@0.3.1: {} - listhen@1.9.0: - dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.4.1 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - crossws: 0.2.4 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.13.0 - http-shutdown: 1.2.2 - jiti: 2.3.1 - mlly: 1.7.1 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.5.4 - untun: 0.1.3 - uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js - load-json-file@4.0.0: dependencies: graceful-fs: 4.2.11 @@ -9948,10 +8368,6 @@ snapshots: lodash.camelcase@4.3.0: {} - lodash.defaults@4.2.0: {} - - lodash.isarguments@3.1.0: {} - lodash@4.17.21: {} log-symbols@6.0.0: @@ -9971,8 +8387,6 @@ snapshots: lru-cache@10.2.2: {} - lru-cache@10.4.3: {} - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -9989,12 +8403,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magicast@0.2.11: - dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - recast: 0.23.9 - magicast@0.3.4: dependencies: '@babel/parser': 7.24.7 @@ -10007,10 +8415,6 @@ snapshots: '@babel/types': 7.25.7 source-map-js: 1.2.1 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - make-dir@4.0.0: dependencies: semver: 7.6.2 @@ -10511,12 +8915,6 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - - mime@3.0.0: {} - - mime@4.0.4: {} - mimic-fn@4.0.0: {} mimic-function@5.0.1: {} @@ -10527,10 +8925,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 @@ -10569,12 +8963,8 @@ snapshots: pkg-types: 1.1.1 ufo: 1.5.3 - mri@1.2.0: {} - mrmime@2.0.0: {} - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -10624,96 +9014,6 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.9.7(magicast@0.3.5): - dependencies: - '@cloudflare/kv-asset-handler': 0.3.4 - '@netlify/functions': 2.8.2 - '@rollup/plugin-alias': 5.1.1(rollup@4.18.0) - '@rollup/plugin-commonjs': 25.0.8(rollup@4.18.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.18.0) - '@rollup/plugin-json': 6.1.0(rollup@4.18.0) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.18.0) - '@rollup/plugin-replace': 5.0.7(rollup@4.18.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.18.0) - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - '@types/http-proxy': 1.17.15 - '@vercel/nft': 0.26.5 - archiver: 7.0.1 - c12: 1.11.1(magicast@0.3.5) - chalk: 5.3.0 - chokidar: 3.6.0 - citty: 0.1.6 - consola: 3.2.3 - cookie-es: 1.2.2 - croner: 8.1.2 - crossws: 0.2.4 - db0: 0.1.4 - defu: 6.1.4 - destr: 2.0.3 - dot-prop: 8.0.2 - esbuild: 0.20.2 - escape-string-regexp: 5.0.0 - etag: 1.8.1 - fs-extra: 11.2.0 - globby: 14.0.2 - gzip-size: 7.0.0 - h3: 1.13.0 - hookable: 5.5.3 - httpxy: 0.1.5 - ioredis: 5.4.1 - jiti: 1.21.6 - klona: 2.0.6 - knitwork: 1.1.0 - listhen: 1.9.0 - magic-string: 0.30.10 - mime: 4.0.4 - mlly: 1.7.1 - mri: 1.2.0 - node-fetch-native: 1.6.4 - ofetch: 1.4.0 - ohash: 1.1.3 - openapi-typescript: 6.7.6 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - pretty-bytes: 6.1.1 - radix3: 1.1.2 - rollup: 4.18.0 - rollup-plugin-visualizer: 5.12.0(rollup@4.18.0) - scule: 1.3.0 - semver: 7.6.2 - serve-placeholder: 2.0.2 - serve-static: 1.16.2 - std-env: 3.7.0 - ufo: 1.5.3 - uncrypto: 0.1.3 - unctx: 2.3.1 - unenv: 1.10.0 - unimport: 3.13.1(rollup@4.18.0) - unstorage: 1.12.0(ioredis@5.4.1) - unwasm: 0.3.9 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - magicast - - supports-color - - uWebSockets.js - - webpack-sources - nlcst-to-string@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -10726,26 +9026,16 @@ snapshots: node-addon-api@6.1.0: {} - node-addon-api@7.1.1: {} - node-fetch-native@1.6.4: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-forge@1.3.1: {} - - node-gyp-build@4.8.2: {} - node-releases@2.0.14: {} node-releases@2.0.18: {} - nopt@5.0.0: - dependencies: - abbrev: 1.1.1 - normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -10771,13 +9061,6 @@ snapshots: dependencies: path-key: 4.0.0 - npmlog@5.0.1: - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -10805,20 +9088,10 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - ofetch@1.4.0: - dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.4 - ufo: 1.5.4 - ohash@1.1.3: {} ohash@1.1.4: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -10839,21 +9112,6 @@ snapshots: dependencies: format-util: 1.0.5 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - openapi-typescript@6.7.6: - dependencies: - ansi-colors: 4.1.3 - fast-glob: 3.3.2 - js-yaml: 4.1.0 - supports-color: 9.4.0 - undici: 5.28.4 - yargs-parser: 21.1.1 - openapi3-ts@2.0.2: dependencies: yaml: 1.10.2 @@ -10948,8 +9206,6 @@ snapshots: dependencies: entities: 4.5.0 - parseurl@1.3.3: {} - path-browserify@1.0.1: {} path-exists@3.0.0: {} @@ -10971,14 +9227,10 @@ snapshots: lru-cache: 10.2.2 minipass: 7.1.2 - path-to-regexp@6.3.0: {} - path-type@3.0.0: dependencies: pify: 3.0.0 - path-type@5.0.0: {} - pathe@1.1.2: {} pathval@1.1.1: {} @@ -11141,8 +9393,6 @@ snapshots: prettier@3.3.3: {} - pretty-bytes@6.1.1: {} - pretty-data@0.40.0: {} pretty-format@29.7.0: @@ -11153,12 +9403,8 @@ snapshots: prismjs@1.29.0: {} - process-nextick-args@2.0.1: {} - process-warning@1.0.0: {} - process@0.11.10: {} - prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -11181,14 +9427,6 @@ snapshots: quick-format-unescaped@4.0.4: {} - radix3@1.1.2: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - rc9@2.1.2: dependencies: defu: 6.1.4 @@ -11225,54 +9463,18 @@ snapshots: normalize-package-data: 2.5.0 path-type: 3.0.0 - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 readdirp@4.0.2: {} - recast@0.23.9: - dependencies: - ast-types: 0.16.1 - esprima: 4.0.1 - source-map: 0.6.1 - tiny-invariant: 1.3.3 - tslib: 2.6.3 - - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - regenerator-runtime@0.14.1: {} regex@4.3.3: {} @@ -11383,10 +9585,6 @@ snapshots: require-from-string@2.0.2: {} - requires-port@1.0.0: {} - - resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: {} resolve@1.22.8: @@ -11427,23 +9625,10 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@5.0.7: dependencies: glob: 10.4.1 - rollup-plugin-visualizer@5.12.0(rollup@4.18.0): - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.18.0 - rollup@4.18.0: dependencies: '@types/estree': 1.0.5 @@ -11499,8 +9684,6 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} safe-regex-test@1.0.3: @@ -11519,8 +9702,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - scule@1.3.0: {} - section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -11538,43 +9719,6 @@ snapshots: semver@7.6.3: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - serve-placeholder@2.0.2: - dependencies: - defu: 6.1.4 - - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - - set-blocking@2.0.0: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -11591,8 +9735,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - sharp@0.32.6: dependencies: color: 4.2.3 @@ -11663,8 +9805,6 @@ snapshots: siginfo@2.0.0: {} - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} signale@1.4.0: @@ -11694,10 +9834,6 @@ snapshots: arg: 5.0.2 sax: 1.4.1 - slash@5.1.0: {} - - smob@1.5.0: {} - sonic-boom@1.4.1: dependencies: atomic-sleep: 1.0.0 @@ -11711,6 +9847,7 @@ snapshots: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + optional: true source-map@0.6.1: {} @@ -11740,10 +9877,6 @@ snapshots: stackback@0.0.2: {} - standard-as-callback@2.1.0: {} - - statuses@2.0.1: {} - std-env@3.7.0: {} stdin-discarder@0.2.2: {} @@ -11804,10 +9937,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -11870,12 +9999,8 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-color@9.4.0: {} - supports-preserve-symlinks-flag@1.0.0: {} - system-architecture@0.1.0: {} - tailwindcss@3.4.4(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5)): dependencies: '@alloc/quick-lru': 5.2.0 @@ -11947,6 +10072,7 @@ snapshots: acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 + optional: true test-exclude@6.0.0: dependencies: @@ -11984,8 +10110,6 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - tr46@0.0.3: {} trim-lines@3.0.1: {} @@ -12037,10 +10161,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@2.19.0: {} - - type-fest@3.13.1: {} - type-fest@4.26.1: {} type-is@1.6.18: @@ -12094,8 +10214,6 @@ snapshots: ufo@1.5.3: {} - ufo@1.5.4: {} - uglify-js@3.18.0: optional: true @@ -12106,35 +10224,10 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - uncrypto@0.1.3: {} - - unctx@2.3.1: - dependencies: - acorn: 8.11.3 - estree-walker: 3.0.3 - magic-string: 0.30.10 - unplugin: 1.14.1 - transitivePeerDependencies: - - webpack-sources - undici-types@5.26.5: {} undici-types@6.19.8: {} - undici@5.28.4: - dependencies: - '@fastify/busboy': 2.1.1 - - unenv@1.10.0: - dependencies: - consola: 3.2.3 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.4 - pathe: 1.1.2 - - unicorn-magic@0.1.0: {} - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -12145,25 +10238,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unimport@3.13.1(rollup@4.18.0): - dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.18.0) - acorn: 8.12.1 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - fast-glob: 3.3.2 - local-pkg: 0.5.0 - magic-string: 0.30.11 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.2.0 - scule: 1.3.0 - strip-literal: 2.1.0 - unplugin: 1.14.1 - transitivePeerDependencies: - - rollup - - webpack-sources - unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -12210,47 +10284,11 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universalify@2.0.1: {} - unplugin@1.14.1: dependencies: acorn: 8.12.1 webpack-virtual-modules: 0.6.2 - unstorage@1.12.0(ioredis@5.4.1): - dependencies: - anymatch: 3.1.3 - chokidar: 3.6.0 - destr: 2.0.3 - h3: 1.13.0 - listhen: 1.9.0 - lru-cache: 10.4.3 - mri: 1.2.0 - node-fetch-native: 1.6.4 - ofetch: 1.4.0 - ufo: 1.5.4 - optionalDependencies: - ioredis: 5.4.1 - transitivePeerDependencies: - - uWebSockets.js - - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - pathe: 1.1.2 - - unwasm@0.3.9: - dependencies: - knitwork: 1.1.0 - magic-string: 0.30.10 - mlly: 1.7.1 - pathe: 1.1.2 - pkg-types: 1.1.1 - unplugin: 1.14.1 - transitivePeerDependencies: - - webpack-sources - update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: browserslist: 4.23.1 @@ -12263,8 +10301,6 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.0 - uqr@0.1.2: {} - uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -12273,8 +10309,6 @@ snapshots: urijs@1.19.11: {} - urlpattern-polyfill@8.0.2: {} - use-sync-external-store@1.2.2(react@18.3.1): dependencies: react: 18.3.1 @@ -12323,75 +10357,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.4.3(@types/node@22.7.4)(ioredis@5.4.1)(magicast@0.3.5)(terser@5.34.1): - dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.24.7) - '@types/micromatch': 4.0.9 - '@vinxi/listhen': 1.5.6 - boxen: 7.1.1 - chokidar: 3.6.0 - citty: 0.1.6 - consola: 3.2.3 - crossws: 0.2.4 - dax-sh: 0.39.2 - defu: 6.1.4 - es-module-lexer: 1.5.4 - esbuild: 0.20.2 - fast-glob: 3.3.2 - get-port-please: 3.1.2 - h3: 1.11.1 - hookable: 5.5.3 - http-proxy: 1.18.1 - micromatch: 4.0.7 - nitropack: 2.9.7(magicast@0.3.5) - node-fetch-native: 1.6.4 - path-to-regexp: 6.3.0 - pathe: 1.1.2 - radix3: 1.1.2 - resolve: 1.22.8 - serve-placeholder: 2.0.2 - serve-static: 1.16.2 - ufo: 1.5.3 - unctx: 2.3.1 - unenv: 1.10.0 - unstorage: 1.12.0(ioredis@5.4.1) - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - zod: 3.23.8 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/kv' - - better-sqlite3 - - debug - - drizzle-orm - - encoding - - idb-keyval - - ioredis - - less - - lightningcss - - magicast - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - uWebSockets.js - - webpack-sources - - xml2js - vite-node@1.6.0(@types/node@22.7.4)(terser@5.34.1): dependencies: cac: 6.7.14 @@ -12410,17 +10375,6 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.6.3)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1)): - dependencies: - debug: 4.3.5 - globrex: 0.1.2 - tsconfck: 3.1.3(typescript@5.6.3) - optionalDependencies: - vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1) - transitivePeerDependencies: - - supports-color - - typescript - vite@5.2.13(@types/node@22.7.4)(terser@5.34.1): dependencies: esbuild: 0.20.2 @@ -12636,23 +10590,11 @@ snapshots: dependencies: isexe: 2.0.0 - which@4.0.0: - dependencies: - isexe: 3.1.1 - why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - widest-line@5.0.0: dependencies: string-width: 7.2.0 @@ -12741,12 +10683,6 @@ snapshots: yocto-queue@1.1.1: {} - zip-stream@6.0.1: - dependencies: - archiver-utils: 5.0.2 - compress-commons: 6.0.2 - readable-stream: 4.5.2 - zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/src/cli.mts b/src/cli.mts index 79aced2..8106534 100644 --- a/src/cli.mts +++ b/src/cli.mts @@ -38,54 +38,54 @@ async function setupProgram() { .description("Generate React Query code based on OpenAPI") .requiredOption( "-i, --input ", - "OpenAPI specification, can be a path, url or string content (required)" + "OpenAPI specification, can be a path, url or string content (required)", ) .option("-o, --output ", "Output directory", defaultOutputPath) .addOption( new Option("-c, --client ", "HTTP client to generate") .choices(["@hey-api/client-fetch", "@hey-api/client-axios"]) - .default("@hey-api/client-fetch") + .default("@hey-api/client-fetch"), ) .addOption( new Option( "--format ", - "Process output folder with formatter?" - ).choices(["biome", "prettier"]) + "Process output folder with formatter?", + ).choices(["biome", "prettier"]), ) .addOption( new Option( "--lint ", - "Process output folder with linter?" - ).choices(["biome", "eslint"]) + "Process output folder with linter?", + ).choices(["biome", "eslint"]), ) .option("--operationId", "Use operation ID to generate operation names?") .addOption( new Option( "--enums ", - "Generate JavaScript objects from enum definitions?" - ).choices(["javascript", "typescript"]) + "Generate JavaScript objects from enum definitions?", + ).choices(["javascript", "typescript"]), ) .option( "--useDateType", - "Use Date type instead of string for date types for models, this will not convert the data to a Date object" + "Use Date type instead of string for date types for models, this will not convert the data to a Date object", ) .option("--debug", "Run in debug mode?") .option("--noSchemas", "Disable generating JSON schemas") .addOption( new Option( "--schemaType ", - "Type of JSON schema [Default: 'json']" - ).choices(["form", "json"]) + "Type of JSON schema [Default: 'json']", + ).choices(["form", "json"]), ) .option( "--pageParam ", "Name of the query parameter used for pagination", - "page" + "page", ) .option( "--nextPageParam ", "Name of the response parameter used for next page", - "nextPage" + "nextPage", ) .option("--initialPageParam ", "Initial page value to query", "1") .parse();