diff --git a/.changepacks/changepack_log_XguILLsu4POI-o73d3Thd.json b/.changepacks/changepack_log_XguILLsu4POI-o73d3Thd.json new file mode 100644 index 0000000..f6634a1 --- /dev/null +++ b/.changepacks/changepack_log_XguILLsu4POI-o73d3Thd.json @@ -0,0 +1 @@ +{"changes":{"packages/next-plugin/package.json":"Patch","packages/react-query/package.json":"Patch","packages/fetch/package.json":"Patch","packages/generator/package.json":"Patch","packages/core/package.json":"Patch","packages/utils/package.json":"Patch","packages/rsbuild-plugin/package.json":"Patch","packages/vite-plugin/package.json":"Patch","packages/webpack-plugin/package.json":"Patch"},"note":"Add DevupObject for typing","date":"2025-12-18T10:26:39.561791300Z"} \ No newline at end of file diff --git a/.changepacks/changepack_log_a3GPxwlaj0mikZBFNbEBC.json b/.changepacks/changepack_log_a3GPxwlaj0mikZBFNbEBC.json new file mode 100644 index 0000000..43021f8 --- /dev/null +++ b/.changepacks/changepack_log_a3GPxwlaj0mikZBFNbEBC.json @@ -0,0 +1 @@ +{"changes":{"packages/vite-plugin/package.json":"Patch","packages/next-plugin/package.json":"Patch","packages/rsbuild-plugin/package.json":"Patch","packages/webpack-plugin/package.json":"Patch","packages/react-query/package.json":"Patch","packages/utils/package.json":"Patch","packages/generator/package.json":"Patch","packages/fetch/package.json":"Patch","packages/core/package.json":"Patch"},"note":"Update lib","date":"2025-12-18T10:01:52.928637600Z"} \ No newline at end of file diff --git a/.changepacks/changepack_log_dMMF8UdE2s43x7QZwbIr6.json b/.changepacks/changepack_log_dMMF8UdE2s43x7QZwbIr6.json new file mode 100644 index 0000000..3079319 --- /dev/null +++ b/.changepacks/changepack_log_dMMF8UdE2s43x7QZwbIr6.json @@ -0,0 +1 @@ +{"changes":{"packages/next-plugin/package.json":"Patch","packages/rsbuild-plugin/package.json":"Patch","packages/core/package.json":"Patch","packages/vite-plugin/package.json":"Patch","packages/webpack-plugin/package.json":"Patch","packages/fetch/package.json":"Patch","packages/utils/package.json":"Patch","packages/generator/package.json":"Patch","packages/react-query/package.json":"Patch"},"note":"Fix interface indent struct","date":"2025-12-18T10:02:43.863144900Z"} \ No newline at end of file diff --git a/.gitignore b/.gitignore index a14702c..6a4f18e 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json # Finder (MacOS) folder config .DS_Store + +.claude diff --git a/README.md b/README.md index b2fdca5..af185a0 100644 --- a/README.md +++ b/README.md @@ -220,6 +220,7 @@ This is a monorepo containing multiple packages: - **`@devup-api/utils`** - Utility functions for OpenAPI processing - **`@devup-api/generator`** - TypeScript interface generator from OpenAPI schemas - **`@devup-api/fetch`** - Type-safe API client +- **`@devup-api/react-query`** - TanStack React Query integration - **`@devup-api/vite-plugin`** - Vite plugin - **`@devup-api/next-plugin`** - Next.js plugin - **`@devup-api/webpack-plugin`** - Webpack plugin @@ -276,6 +277,151 @@ if (result.data) { } ``` +### **Using DevupObject for Type References** + +`DevupObject` allows you to reference generated schema types directly, which is useful for typing variables, function parameters, or component props. + +```ts +import { createApi, type DevupObject } from '@devup-api/fetch' + +// Access response types from the default OpenAPI schema +type User = DevupObject['User'] +type Product = DevupObject['Product'] + +// Use in your code +const user: User = { + id: '123', + name: 'John Doe', + email: 'john@example.com' +} + +// For request/error types, specify the type category +type CreateUserRequest = DevupObject<'request'>['CreateUserBody'] +type ApiError = DevupObject<'error'>['ErrorResponse'] +``` + +--- + +## 🌐 Multiple API Servers + +devup-api supports multiple OpenAPI schemas for working with different API servers. + +### **Configuration** + +Place multiple OpenAPI files in your project (e.g., `openapi.json`, `openapi2.json`) and the plugin will generate types for each. + +### **Usage** + +```ts +import { createApi, type DevupObject } from '@devup-api/fetch' + +// Default server (uses openapi.json) +const api = createApi({ + baseUrl: 'https://api.example.com', +}) + +// Second server (uses openapi2.json) +const api2 = createApi({ + baseUrl: 'https://api.another-service.com', + serverName: 'openapi2.json', +}) + +// Make requests to different servers +const users = await api.get('getUsers', {}) +const products = await api2.get('getProducts', {}) + +// Access types from different schemas +type User = DevupObject['User'] // From openapi.json +type Product = DevupObject<'response', 'openapi2.json'>['Product'] // From openapi2.json +``` + +--- + +## 🔄 React Query Integration + +devup-api provides first-class support for TanStack React Query through the `@devup-api/react-query` package. + +### **Installation** + +```bash +npm install @devup-api/react-query @tanstack/react-query +``` + +### **Setup** + +```ts +import { createApi } from '@devup-api/fetch' +import { createQueryClient } from '@devup-api/react-query' + +const api = createApi('https://api.example.com') +const queryClient = createQueryClient(api) +``` + +### **useQuery** + +```ts +function UserProfile({ userId }: { userId: string }) { + const { data, isLoading, error } = queryClient.useQuery( + 'get', + '/users/{id}', + { params: { id: userId } } + ) + + if (isLoading) return
Loading...
+ if (error) return
Error: {error.message}
+ return
{data.name}
+} +``` + +### **useMutation** + +```ts +function CreateUser() { + const mutation = queryClient.useMutation('post', 'createUser') + + return ( + + ) +} +``` + +### **useSuspenseQuery** + +```ts +function UserList() { + const { data } = queryClient.useSuspenseQuery('get', 'getUsers', {}) + return +} +``` + +### **useInfiniteQuery** + +```ts +function InfiniteUserList() { + const { data, fetchNextPage, hasNextPage } = queryClient.useInfiniteQuery( + 'get', + 'getUsers', + { + initialPageParam: 1, + getNextPageParam: (lastPage) => lastPage.nextPage, + } + ) + + return ( + <> + {data?.pages.map(page => + page.users.map(user =>
{user.name}
) + )} + {hasNextPage && } + + ) +} +``` + --- ## ⚙️ Configuration Options diff --git a/SKILL.md b/SKILL.md index 987a342..a253e1d 100644 --- a/SKILL.md +++ b/SKILL.md @@ -13,6 +13,8 @@ This skill helps you invoke the `devup-api` library to generate and use fully ty - **Fetch-compatible:** Ergonomic API similar to standard `fetch`. - **Zero Generics:** No complex generic types to manage manually. - **Build Tool Integration:** Plugins for Vite, Next.js, Webpack, and Rsbuild. +- **React Query Integration:** First-class support for TanStack React Query with `@devup-api/react-query`. +- **Multiple API Servers:** Support for multiple OpenAPI schemas with `serverName` and `DevupObject` type access. - **Two-phase Typing:** "Cold Typing" (relaxed types for initial setup) and "Bold Typing" (strict types after generation). ## Usage Instructions @@ -98,6 +100,76 @@ if (response.data) { } ``` +## Using DevupObject for Type References + +`DevupObject` provides direct access to generated schema types: + +```ts +import { createApi, type DevupObject } from '@devup-api/fetch' + +// Access response types +type User = DevupObject['User'] + +// Access request/error types +type CreateUserRequest = DevupObject<'request'>['CreateUserBody'] +type ApiError = DevupObject<'error'>['ErrorResponse'] + +// For multiple OpenAPI schemas, specify the server name +type Product = DevupObject<'response', 'openapi2.json'>['Product'] +``` + +## Multiple API Servers + +Support multiple OpenAPI schemas with `serverName`: + +```ts +import { createApi, type DevupObject } from '@devup-api/fetch' + +// Default server +const api = createApi({ baseUrl: 'https://api.example.com' }) + +// Second server +const api2 = createApi({ + baseUrl: 'https://api.another-service.com', + serverName: 'openapi2.json', +}) + +// Types from different schemas +type User = DevupObject['User'] // openapi.json +type Product = DevupObject<'response', 'openapi2.json'>['Product'] // openapi2.json +``` + +## React Query Integration + +For React applications using TanStack React Query, use `@devup-api/react-query`: + +```bash +npm install @devup-api/react-query @tanstack/react-query +``` + +```ts +import { createApi } from '@devup-api/fetch' +import { createQueryClient } from '@devup-api/react-query' + +const api = createApi('https://api.example.com') +const queryClient = createQueryClient(api) + +// useQuery +const { data } = queryClient.useQuery('get', '/users/{id}', { params: { id: '123' } }) + +// useMutation +const mutation = queryClient.useMutation('post', 'createUser') + +// useSuspenseQuery +const { data } = queryClient.useSuspenseQuery('get', 'getUsers', {}) + +// useInfiniteQuery +const { data, fetchNextPage } = queryClient.useInfiniteQuery('get', 'getUsers', { + initialPageParam: 1, + getNextPageParam: (lastPage) => lastPage.nextPage, +}) +``` + ## Guidelines - **"Cold" vs "Bold" Typing:** When you first start, types might be `any` (Cold Typing). Run your build command (`dev` or `build`) to generate the types and enable strict checking (Bold Typing). diff --git a/bun.lock b/bun.lock index 9168fb5..b0aeef9 100644 --- a/bun.lock +++ b/bun.lock @@ -6,12 +6,12 @@ "name": "devup-api", "devDependencies": { "@biomejs/biome": "^2.3", - "@testing-library/react": "^16.3.0", + "@testing-library/react": "^16.3.1", "@testing-library/react-hooks": "^8.0.1", "@types/bun": "latest", "husky": "^9", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", }, }, "examples/next": { @@ -22,13 +22,13 @@ "@devup-api/next-plugin": "workspace:*", "@devup-api/react-query": "workspace:*", "@devup-ui/react": "^1", - "next": "^16.0.4", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "next": "^16.0.10", + "react": "^19.2.3", + "react-dom": "^19.2.3", }, "devDependencies": { "@devup-ui/next-plugin": "^1", - "@types/node": "^24", + "@types/node": "^25", "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5", @@ -41,13 +41,13 @@ "@devup-api/fetch": "workspace:*", "@devup-api/next-plugin": "workspace:*", "@devup-ui/react": "^1", - "next": "^16.0.4", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "next": "^16.0.10", + "react": "^19.2.3", + "react-dom": "^19.2.3", }, "devDependencies": { "@devup-ui/next-plugin": "^1", - "@types/node": "^24", + "@types/node": "^25", "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5", @@ -58,8 +58,8 @@ "version": "0.1.0", "dependencies": { "@devup-api/fetch": "workspace:*", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", }, "devDependencies": { "@devup-api/rsbuild-plugin": "workspace:*", @@ -75,46 +75,46 @@ "version": "0.1.0", "dependencies": { "@devup-api/fetch": "workspace:*", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", }, "devDependencies": { "@devup-api/vite-plugin": "workspace:*", "@types/react": "^19", "@types/react-dom": "^19", - "@vitejs/plugin-react": "^5.1.1", + "@vitejs/plugin-react": "^5.1.2", "typescript": "^5", - "vite": "^7.2.4", + "vite": "^7.3.0", }, }, "packages/core": { "name": "@devup-api/core", - "version": "0.1.6", + "version": "0.1.9", "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", }, }, "packages/fetch": { "name": "@devup-api/fetch", - "version": "0.1.7", + "version": "0.1.10", "dependencies": { "@devup-api/core": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", }, }, "packages/generator": { "name": "@devup-api/generator", - "version": "0.1.5", + "version": "0.1.8", "dependencies": { "@devup-api/core": "workspace:*", "@devup-api/utils": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "openapi-types": "^12.1", "typescript": "^5.9", }, @@ -129,7 +129,7 @@ "@devup-api/webpack-plugin": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/webpack": "^5.28", "typescript": "^5.9", }, @@ -140,14 +140,14 @@ }, "packages/react-query": { "name": "@devup-api/react-query", - "version": "0.1.0", + "version": "0.1.2", "dependencies": { "@devup-api/fetch": "workspace:*", "@tanstack/react-query": ">=5.90", }, "devDependencies": { "@testing-library/react-hooks": "^8.0.1", - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/react": "^19.2", "happy-dom": "^20.0.11", "typescript": "^5.9", @@ -166,7 +166,7 @@ "@devup-api/utils": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", }, "peerDependencies": { @@ -178,7 +178,7 @@ "name": "@devup-api/utils", "version": "0.1.5", "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "openapi-types": "^12.1", "typescript": "^5.9", }, @@ -192,7 +192,7 @@ "@devup-api/utils": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", }, "peerDependencies": { @@ -209,7 +209,7 @@ "@devup-api/utils": "workspace:*", }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/webpack": "^5.28", "typescript": "^5.9", }, @@ -259,23 +259,23 @@ "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], - "@biomejs/biome": ["@biomejs/biome@2.3.7", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.7", "@biomejs/cli-darwin-x64": "2.3.7", "@biomejs/cli-linux-arm64": "2.3.7", "@biomejs/cli-linux-arm64-musl": "2.3.7", "@biomejs/cli-linux-x64": "2.3.7", "@biomejs/cli-linux-x64-musl": "2.3.7", "@biomejs/cli-win32-arm64": "2.3.7", "@biomejs/cli-win32-x64": "2.3.7" }, "bin": { "biome": "bin/biome" } }, "sha512-CTbAS/jNAiUc6rcq94BrTB8z83O9+BsgWj2sBCQg9rD6Wkh2gjfR87usjx0Ncx0zGXP1NKgT7JNglay5Zfs9jw=="], + "@biomejs/biome": ["@biomejs/biome@2.3.10", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.10", "@biomejs/cli-darwin-x64": "2.3.10", "@biomejs/cli-linux-arm64": "2.3.10", "@biomejs/cli-linux-arm64-musl": "2.3.10", "@biomejs/cli-linux-x64": "2.3.10", "@biomejs/cli-linux-x64-musl": "2.3.10", "@biomejs/cli-win32-arm64": "2.3.10", "@biomejs/cli-win32-x64": "2.3.10" }, "bin": { "biome": "bin/biome" } }, "sha512-/uWSUd1MHX2fjqNLHNL6zLYWBbrJeG412/8H7ESuK8ewoRoMPUgHDebqKrPTx/5n6f17Xzqc9hdg3MEqA5hXnQ=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-LirkamEwzIUULhXcf2D5b+NatXKeqhOwilM+5eRkbrnr6daKz9rsBL0kNZ16Hcy4b8RFq22SG4tcLwM+yx/wFA=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-M6xUjtCVnNGFfK7HMNKa593nb7fwNm43fq1Mt71kpLpb+4mE7odO8W/oWVDyBVO4ackhresy1ZYO7OJcVo/B7w=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-Q4TO633kvrMQkKIV7wmf8HXwF0dhdTD9S458LGE24TYgBjSRbuhvio4D5eOQzirEYg6eqxfs53ga/rbdd8nBKg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-Vae7+V6t/Avr8tVbFNjnFSTKZogZHFYl7MMH62P/J1kZtr0tyRQ9Fe0onjqjS2Ek9lmNLmZc/VR5uSekh+p1fg=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-inHOTdlstUBzgjDcx0ge71U4SVTbwAljmkfi3MC5WzsYCRhancqfeL+sa4Ke6v2ND53WIwCFD5hGsYExoI3EZQ=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-hhPw2V3/EpHKsileVOFynuWiKRgFEV48cLe0eA+G2wO4SzlwEhLEB9LhlSrVeu2mtSn205W283LkX7Fh48CaxA=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-/afy8lto4CB8scWfMdt+NoCZtatBUF62Tk3ilWH2w8ENd5spLhM77zKlFZEvsKJv9AFNHknMl03zO67CiklL2Q=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-B9DszIHkuKtOH2IFeeVkQmSMVUjss9KtHaNXquYYWCjH8IstNgXgx5B0aSBQNr6mn4RcKKRQZXn9Zu1rM3O0/A=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.7", "", { "os": "linux", "cpu": "x64" }, "sha512-fJMc3ZEuo/NaMYo5rvoWjdSS5/uVSW+HPRQujucpZqm2ZCq71b8MKJ9U4th9yrv2L5+5NjPF0nqqILCl8HY/fg=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.10", "", { "os": "linux", "cpu": "x64" }, "sha512-wwAkWD1MR95u+J4LkWP74/vGz+tRrIQvr8kfMMJY8KOQ8+HMVleREOcPYsQX82S7uueco60L58Wc6M1I9WA9Dw=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.7", "", { "os": "linux", "cpu": "x64" }, "sha512-CQUtgH1tIN6e5wiYSJqzSwJumHYolNtaj1dwZGCnZXm2PZU1jOJof9TsyiP3bXNDb+VOR7oo7ZvY01If0W3iFQ=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.10", "", { "os": "linux", "cpu": "x64" }, "sha512-QTfHZQh62SDFdYc2nfmZFuTm5yYb4eO1zwfB+90YxUumRCR171tS1GoTX5OD0wrv4UsziMPmrePMtkTnNyYG3g=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-aJAE8eCNyRpcfx2JJAtsPtISnELJ0H4xVVSwnxm13bzI8RwbXMyVtxy2r5DV1xT3WiSP+7LxORcApWw0LM8HiA=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-o7lYc9n+CfRbHvkjPhm8s9FgbKdYZu5HCcGVMItLjz93EhgJ8AM44W+QckDqLA9MKDNFrR8nPbO4b73VC5kGGQ=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.7", "", { "os": "win32", "cpu": "x64" }, "sha512-pulzUshqv9Ed//MiE8MOUeeEkbkSHVDVY5Cz5wVAnH1DUqliCQG3j6s1POaITTFqFfo7AVIx2sWdKpx/GS+Nqw=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.10", "", { "os": "win32", "cpu": "x64" }, "sha512-pHEFgq7dUEsKnqG9mx9bXihxGI49X+ar+UBrEIj3Wqj3UCZp1rNgV+OoyjFgcXsjCWpuEAF4VJdkZr3TrWdCbQ=="], "@devup-api/core": ["@devup-api/core@workspace:packages/core"], @@ -295,11 +295,11 @@ "@devup-api/webpack-plugin": ["@devup-api/webpack-plugin@workspace:packages/webpack-plugin"], - "@devup-ui/next-plugin": ["@devup-ui/next-plugin@1.0.57", "", { "dependencies": { "@devup-ui/wasm": "1.0.48", "@devup-ui/webpack-plugin": "1.0.49", "glob": "^12.0", "next": "^16.0" } }, "sha512-oDXH0cuv/Rg7yNeTHTMiz6QHf99P0SAr2herBm1CKjAv+F5UsOKQF/Wct3/Qdt4Tg16zn+mHJw9WzUTmYcrV4g=="], + "@devup-ui/next-plugin": ["@devup-ui/next-plugin@1.0.59", "", { "dependencies": { "@devup-ui/wasm": "1.0.51", "@devup-ui/webpack-plugin": "1.0.49", "glob": "^13.0", "next": "^16.0" } }, "sha512-u44tjZZROuWkny/b5ZRvmiNSRvpgvrs+91npGejTx3w7dp+9y17B3GajrNkEytglT5c/45ItAaOR3fwRYwWnbA=="], - "@devup-ui/react": ["@devup-ui/react@1.0.28", "", { "dependencies": { "csstype-extra": "latest", "react": "^19.2" } }, "sha512-Fvm0ETOv7L4+wYCfuObkzH0LFgqE0KulLes+fKZOF3nMV3ytYVf48a9eqKS1Q+R5E/CZ5qRBrl/P7etKrDnsKw=="], + "@devup-ui/react": ["@devup-ui/react@1.0.29", "", { "dependencies": { "csstype-extra": "latest", "react": "^19.2" } }, "sha512-RGmnTOMsksV/IOiqU9yCQZW+hQ/WAgo4qVyh+gsbzZQc4tM3fDUKctOF72Wm2Be7n2sn+JVHhocEaAWNkPeIig=="], - "@devup-ui/wasm": ["@devup-ui/wasm@1.0.48", "", {}, "sha512-PTnNXl5UIzlATG52D/3Xg2jjn8/A5Ry67uIdG9KdtTaFiGDVIr2nlBGidBi2Haw5Yqu+y7yLUlyk2S/aEUzzug=="], + "@devup-ui/wasm": ["@devup-ui/wasm@1.0.51", "", {}, "sha512-BYhdsf42OxGxe3VWxNrSC2uRfpTY5vqGRwWLSYHyOWbozuop4W04L/hGX0M2hkdz3jI9Q3DISSInMH2cIiT6CA=="], "@devup-ui/webpack-plugin": ["@devup-ui/webpack-plugin@1.0.49", "", { "dependencies": { "@devup-ui/wasm": "1.0.47" } }, "sha512-jvdmBvOPuwvdpqr/OvAQF6vw1jLyWfJ9PCytybLflMfudRq4AKd5wmB9IBLmQhAvdCo8itrn7uiWl+f4nwwl3g=="], @@ -309,57 +309,57 @@ "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], "@img/colour": ["@img/colour@1.0.0", "", {}, "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw=="], @@ -415,8 +415,6 @@ "@isaacs/brace-expansion": ["@isaacs/brace-expansion@5.0.0", "", { "dependencies": { "@isaacs/balanced-match": "^4.0.1" } }, "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA=="], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], @@ -429,111 +427,111 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@module-federation/error-codes": ["@module-federation/error-codes@0.21.4", "", {}, "sha512-ClpL5MereWNXh+EgDjz7w4RrC1JlisQTvXDa1gLxpviHafzNDfdViVmuhi9xXVuj+EYo8KU70Y999KHhk9424Q=="], + "@module-federation/error-codes": ["@module-federation/error-codes@0.21.6", "", {}, "sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ=="], - "@module-federation/runtime": ["@module-federation/runtime@0.21.4", "", { "dependencies": { "@module-federation/error-codes": "0.21.4", "@module-federation/runtime-core": "0.21.4", "@module-federation/sdk": "0.21.4" } }, "sha512-wgvGqryurVEvkicufJmTG0ZehynCeNLklv8kIk5BLIsWYSddZAE+xe4xov1kgH5fIJQAoQNkRauFFjVNlHoAkA=="], + "@module-federation/runtime": ["@module-federation/runtime@0.21.6", "", { "dependencies": { "@module-federation/error-codes": "0.21.6", "@module-federation/runtime-core": "0.21.6", "@module-federation/sdk": "0.21.6" } }, "sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ=="], - "@module-federation/runtime-core": ["@module-federation/runtime-core@0.21.4", "", { "dependencies": { "@module-federation/error-codes": "0.21.4", "@module-federation/sdk": "0.21.4" } }, "sha512-SGpmoOLGNxZofpTOk6Lxb2ewaoz5wMi93AFYuuJB04HTVcngEK+baNeUZ2D/xewrqNIJoMY6f5maUjVfIIBPUA=="], + "@module-federation/runtime-core": ["@module-federation/runtime-core@0.21.6", "", { "dependencies": { "@module-federation/error-codes": "0.21.6", "@module-federation/sdk": "0.21.6" } }, "sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw=="], - "@module-federation/runtime-tools": ["@module-federation/runtime-tools@0.21.4", "", { "dependencies": { "@module-federation/runtime": "0.21.4", "@module-federation/webpack-bundler-runtime": "0.21.4" } }, "sha512-RzFKaL0DIjSmkn76KZRfzfB6dD07cvID84950jlNQgdyoQFUGkqD80L6rIpVCJTY/R7LzR3aQjHnoqmq4JPo3w=="], + "@module-federation/runtime-tools": ["@module-federation/runtime-tools@0.21.6", "", { "dependencies": { "@module-federation/runtime": "0.21.6", "@module-federation/webpack-bundler-runtime": "0.21.6" } }, "sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q=="], - "@module-federation/sdk": ["@module-federation/sdk@0.21.4", "", {}, "sha512-tzvhOh/oAfX++6zCDDxuvioHY4Jurf8vcfoCbKFxusjmyKr32GPbwFDazUP+OPhYCc3dvaa9oWU6X/qpUBLfJw=="], + "@module-federation/sdk": ["@module-federation/sdk@0.21.6", "", {}, "sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw=="], - "@module-federation/webpack-bundler-runtime": ["@module-federation/webpack-bundler-runtime@0.21.4", "", { "dependencies": { "@module-federation/runtime": "0.21.4", "@module-federation/sdk": "0.21.4" } }, "sha512-dusmR3uPnQh9u9ChQo3M+GLOuGFthfvnh7WitF/a1eoeTfRmXqnMFsXtZCUK+f/uXf+64874Zj/bhAgbBcVHZA=="], + "@module-federation/webpack-bundler-runtime": ["@module-federation/webpack-bundler-runtime@0.21.6", "", { "dependencies": { "@module-federation/runtime": "0.21.6", "@module-federation/sdk": "0.21.6" } }, "sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ=="], "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], - "@next/env": ["@next/env@16.0.4", "", {}, "sha512-FDPaVoB1kYhtOz6Le0Jn2QV7RZJ3Ngxzqri7YX4yu3Ini+l5lciR7nA9eNDpKTmDm7LWZtxSju+/CQnwRBn2pA=="], + "@next/env": ["@next/env@16.0.10", "", {}, "sha512-8tuaQkyDVgeONQ1MeT9Mkk8pQmZapMKFh5B+OrFUlG3rVmYTXcXlBetBgTurKXGaIZvkoqRT9JL5K3phXcgang=="], - "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TN0cfB4HT2YyEio9fLwZY33J+s+vMIgC84gQCOLZOYusW7ptgjIn8RwxQt0BUpoo9XRRVVWEHLld0uhyux1ZcA=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.0.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4XgdKtdVsaflErz+B5XeG0T5PeXKDdruDf3CRpnhN+8UebNa5N2H58+3GDgpn/9GBurrQ1uWW768FfscwYkJRg=="], - "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-XsfI23jvimCaA7e+9f3yMCoVjrny2D11G6H8NCcgv+Ina/TQhKPXB9P4q0WjTuEoyZmcNvPdrZ+XtTh3uPfH7Q=="], + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.0.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-spbEObMvRKkQ3CkYVOME+ocPDFo5UqHb8EMTS78/0mQ+O1nqE8toHJVioZo4TvebATxgA8XMTHHrScPrn68OGw=="], - "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-uo8X7qHDy4YdJUhaoJDMAbL8VT5Ed3lijip2DdBHIB4tfKAvB1XBih6INH2L4qIi4jA0Qq1J0ErxcOocBmUSwg=="], + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.0.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-uQtWE3X0iGB8apTIskOMi2w/MKONrPOUCi5yLO+v3O8Mb5c7K4Q5KD1jvTpTF5gJKa3VH/ijKjKUq9O9UhwOYw=="], - "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-pvR/AjNIAxsIz0PCNcZYpH+WmNIKNLcL4XYEfo+ArDi7GsxKWFO5BvVBLXbhti8Coyv3DE983NsitzUsGH5yTw=="], + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.0.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-llA+hiDTrYvyWI21Z0L1GiXwjQaanPVQQwru5peOgtooeJ8qx3tlqRV2P7uH2pKQaUfHxI/WVarvI5oYgGxaTw=="], - "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-2hebpsd5MRRtgqmT7Jj/Wze+wG+ZEXUK2KFFL4IlZ0amEEFADo4ywsifJNeFTQGsamH3/aXkKWymDvgEi+pc2Q=="], + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.0.10", "", { "os": "linux", "cpu": "x64" }, "sha512-AK2q5H0+a9nsXbeZ3FZdMtbtu9jxW4R/NgzZ6+lrTm3d6Zb7jYrWcgjcpM1k8uuqlSy4xIyPR2YiuUr+wXsavA=="], - "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-pzRXf0LZZ8zMljH78j8SeLncg9ifIOp3ugAFka+Bq8qMzw6hPXOc7wydY7ardIELlczzzreahyTpwsim/WL3Sg=="], + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.0.10", "", { "os": "linux", "cpu": "x64" }, "sha512-1TDG9PDKivNw5550S111gsO4RGennLVl9cipPhtkXIFVwo31YZ73nEbLjNC8qG3SgTz/QZyYyaFYMeY4BKZR/g=="], - "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-7G/yJVzum52B5HOqqbQYX9bJHkN+c4YyZ2AIvEssMHQlbAWOn3iIJjD4sM6ihWsBxuljiTKJovEYlD1K8lCUHw=="], + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.0.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-aEZIS4Hh32xdJQbHz121pyuVZniSNoqDVx1yIr2hy+ZwJGipeqnMZBJHyMxv2tiuAXGx6/xpTcQJ6btIiBjgmg=="], - "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-0Vy4g8SSeVkuU89g2OFHqGKM4rxsQtihGfenjx2tRckPrge5+gtFnRWGAAwvGXr0ty3twQvcnYjEyOrLHJ4JWA=="], + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.0.10", "", { "os": "win32", "cpu": "x64" }, "sha512-E+njfCoFLb01RAFEnGZn6ERoOqhK1Gl3Lfz1Kjnj0Ulfu7oJbuMyvBKNj/bw8XZnenHDASlygTjZICQW+rYW1Q=="], - "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.47", "", {}, "sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.53", "", {}, "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.5", "", { "os": "android", "cpu": "arm" }, "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.5", "", { "os": "android", "cpu": "arm64" }, "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.5", "", { "os": "linux", "cpu": "arm" }, "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.5", "", { "os": "linux", "cpu": "arm" }, "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.5", "", { "os": "linux", "cpu": "none" }, "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.5", "", { "os": "linux", "cpu": "none" }, "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.5", "", { "os": "linux", "cpu": "none" }, "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.5", "", { "os": "linux", "cpu": "x64" }, "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.5", "", { "os": "linux", "cpu": "x64" }, "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.5", "", { "os": "none", "cpu": "arm64" }, "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.5", "", { "os": "win32", "cpu": "x64" }, "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.5", "", { "os": "win32", "cpu": "x64" }, "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ=="], - "@rsbuild/core": ["@rsbuild/core@1.6.9", "", { "dependencies": { "@rspack/core": "1.6.5", "@rspack/lite-tapable": "~1.1.0", "@swc/helpers": "^0.5.17", "core-js": "~3.47.0", "jiti": "^2.6.1" }, "bin": { "rsbuild": "bin/rsbuild.js" } }, "sha512-wf41bbFIzqQsGkrDal2eVC4cxN6II1k4bUo1g7OFuvWeEOJzjoeK4R5xxKM9g5hRjbGAJs6OiQaGpASvUnDrsw=="], + "@rsbuild/core": ["@rsbuild/core@1.6.15", "", { "dependencies": { "@rspack/core": "1.6.8", "@rspack/lite-tapable": "~1.1.0", "@swc/helpers": "^0.5.17", "core-js": "~3.47.0", "jiti": "^2.6.1" }, "bin": { "rsbuild": "bin/rsbuild.js" } }, "sha512-LvoOF53PL6zXgdzEhgnnP51S4FseDFH1bHrobK4EK6zZX/tN8qgf5tdlmN7h4OkMv/Qs1oUfvj0QcLWSstnnvA=="], "@rsbuild/plugin-react": ["@rsbuild/plugin-react@1.4.2", "", { "dependencies": { "@rspack/plugin-react-refresh": "^1.5.2", "react-refresh": "^0.18.0" }, "peerDependencies": { "@rsbuild/core": "1.x" } }, "sha512-2rJb5mOuqVof2aDq4SbB1E65+0n1vjhAADipC88jvZRNuTOulg79fh7R4tsCiBMI4VWq46gSpwekiK8G5bq6jg=="], - "@rspack/binding": ["@rspack/binding@1.6.5", "", { "optionalDependencies": { "@rspack/binding-darwin-arm64": "1.6.5", "@rspack/binding-darwin-x64": "1.6.5", "@rspack/binding-linux-arm64-gnu": "1.6.5", "@rspack/binding-linux-arm64-musl": "1.6.5", "@rspack/binding-linux-x64-gnu": "1.6.5", "@rspack/binding-linux-x64-musl": "1.6.5", "@rspack/binding-wasm32-wasi": "1.6.5", "@rspack/binding-win32-arm64-msvc": "1.6.5", "@rspack/binding-win32-ia32-msvc": "1.6.5", "@rspack/binding-win32-x64-msvc": "1.6.5" } }, "sha512-FzYsr5vdjaVQIlDTxZFlISOQGxl/4grpF2BeiNy60Fpw9eeADeXk55DVacbXPqpiz7Doj6cyhEyMszQOvihrqQ=="], + "@rspack/binding": ["@rspack/binding@1.6.8", "", { "optionalDependencies": { "@rspack/binding-darwin-arm64": "1.6.8", "@rspack/binding-darwin-x64": "1.6.8", "@rspack/binding-linux-arm64-gnu": "1.6.8", "@rspack/binding-linux-arm64-musl": "1.6.8", "@rspack/binding-linux-x64-gnu": "1.6.8", "@rspack/binding-linux-x64-musl": "1.6.8", "@rspack/binding-wasm32-wasi": "1.6.8", "@rspack/binding-win32-arm64-msvc": "1.6.8", "@rspack/binding-win32-ia32-msvc": "1.6.8", "@rspack/binding-win32-x64-msvc": "1.6.8" } }, "sha512-lUeL4mbwGo+nqRKqFDCm9vH2jv9FNMVt1X8jqayWRcOCPlj/2UVMEFgqjR7Pp2vlvnTKq//31KbDBJmDZq31RQ=="], - "@rspack/binding-darwin-arm64": ["@rspack/binding-darwin-arm64@1.6.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DaAJTlaenqZIqFqIYcitn0SzjJ7WpC9234JpiSDZdRyXii9qJJiToVwxSPY/CmkrP0201+aC4pzN4tI9T0Ummw=="], + "@rspack/binding-darwin-arm64": ["@rspack/binding-darwin-arm64@1.6.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-e8CTQtzaeGnf+BIzR7wRMUwKfIg0jd/sxMRc1Vd0bCMHBhSN9EsGoMuJJaKeRrSmy2nwMCNWHIG+TvT1CEKg+A=="], - "@rspack/binding-darwin-x64": ["@rspack/binding-darwin-x64@1.6.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-fPVfp7W/GMbHayb5hbefiMI30JxlsqPexOItHGtufHmTCrNne1aHmApspyUZIUUxG36oDRHuGPnfh+IQbHR6+g=="], + "@rspack/binding-darwin-x64": ["@rspack/binding-darwin-x64@1.6.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-ku1XpTEPt6Za11zhpFWhfwrTQogcgi9RJrOUVC4FESiPO9aKyd4hJ+JiPgLY0MZOqsptK6vEAgOip+uDVXrCpg=="], - "@rspack/binding-linux-arm64-gnu": ["@rspack/binding-linux-arm64-gnu@1.6.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-K68YDoV2e4s+nlrKZxgF0HehiiRwOAGgZFUwJNRMZ7MUrTGMNlPTJlM+bNdaCjDb6GFxBVFcNwIa1sU+0tF1zg=="], + "@rspack/binding-linux-arm64-gnu": ["@rspack/binding-linux-arm64-gnu@1.6.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-fvZX6xZPvBT8qipSpvkKMX5M7yd2BSpZNCZXcefw6gA3uC7LI3gu+er0LrDXY1PtPzVuHTyDx+abwWpagV3PiQ=="], - "@rspack/binding-linux-arm64-musl": ["@rspack/binding-linux-arm64-musl@1.6.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-JPtxFBOq7RRmBIwpdGIStf8iyCILehDsjQtEB0Kkhtm7TsAkVGwtC41GLcNuPxcQBKqNDmD8cy3yLYhXadH2CQ=="], + "@rspack/binding-linux-arm64-musl": ["@rspack/binding-linux-arm64-musl@1.6.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-++XMKcMNrt59HcFBLnRaJcn70k3X0GwkAegZBVpel8xYIAgvoXT5+L8P1ExId/yTFxqedaz8DbcxQnNmMozviw=="], - "@rspack/binding-linux-x64-gnu": ["@rspack/binding-linux-x64-gnu@1.6.5", "", { "os": "linux", "cpu": "x64" }, "sha512-oh4ZNo2HtizZ/E6UK3BEONu20h8VVBw9GAXuWmo1u22cJSihzg+WfRNCMjRDil82LqSsyAgBwnU+dEjEYGKyAA=="], + "@rspack/binding-linux-x64-gnu": ["@rspack/binding-linux-x64-gnu@1.6.8", "", { "os": "linux", "cpu": "x64" }, "sha512-tv3BWkTE1TndfX+DsE1rSTg8fBevCxujNZ3MlfZ22Wfy9x1FMXTJlWG8VIOXmaaJ1wUHzv8S7cE2YUUJ2LuiCg=="], - "@rspack/binding-linux-x64-musl": ["@rspack/binding-linux-x64-musl@1.6.5", "", { "os": "linux", "cpu": "x64" }, "sha512-8Xebp5bvPJqjifpkFEAX5nUvoU2JvbMU3gwAkEovRRuvooCXnVT2tqkUBjkR3AhivAGgAxAr9hRzUUz/6QWt3Q=="], + "@rspack/binding-linux-x64-musl": ["@rspack/binding-linux-x64-musl@1.6.8", "", { "os": "linux", "cpu": "x64" }, "sha512-DCGgZ5/in1O3FjHWqXnDsncRy+48cMhfuUAAUyl0yDj1NpsZu9pP+xfGLvGcQTiYrVl7IH9Aojf1eShP/77WGA=="], - "@rspack/binding-wasm32-wasi": ["@rspack/binding-wasm32-wasi@1.6.5", "", { "dependencies": { "@napi-rs/wasm-runtime": "1.0.7" }, "cpu": "none" }, "sha512-oINZNqzTxM+9dSUOjAORodHXYoJYzXvpaHI2U6ecEmoWaBCs+x3V3Po8DhpNFBwotB+jGlcoVhEHjpg5uaO6pw=="], + "@rspack/binding-wasm32-wasi": ["@rspack/binding-wasm32-wasi@1.6.8", "", { "dependencies": { "@napi-rs/wasm-runtime": "1.0.7" }, "cpu": "none" }, "sha512-VUwdhl/lI4m6o1OGCZ9JwtMjTV/yLY5VZTQdEPKb40JMTlmZ5MBlr5xk7ByaXXYHr6I+qnqEm73iMKQvg6iknw=="], - "@rspack/binding-win32-arm64-msvc": ["@rspack/binding-win32-arm64-msvc@1.6.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-UUmep2ayuZxWPdrzkrzAFxVgYUWTB82pa9bkAGyeDO9SNkz8vTpdtbDaTvAzjFb8Pn+ErktDEDBKT57FLjxwxQ=="], + "@rspack/binding-win32-arm64-msvc": ["@rspack/binding-win32-arm64-msvc@1.6.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-23YX7zlOZlub+nPGDBUzktb4D5D6ETUAluKjXEeHIZ9m7fSlEYBnGL66YE+3t1DHXGd0OqsdwlvrNGcyo6EXDQ=="], - "@rspack/binding-win32-ia32-msvc": ["@rspack/binding-win32-ia32-msvc@1.6.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-7nx+mMimpmCMstcW7nsyToXy5TK7N+YGPu2W/oioX7qv9ZCuJGTddjzLS84wN8DVrNIirg4mcxpBsmOQMZeHQA=="], + "@rspack/binding-win32-ia32-msvc": ["@rspack/binding-win32-ia32-msvc@1.6.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-cFgRE3APxrY4AEdooVk2LtipwNNT/9mrnjdC5lVbsIsz+SxvGbZR231bxDJEqP15+RJOaD07FO1sIjINFqXMEg=="], - "@rspack/binding-win32-x64-msvc": ["@rspack/binding-win32-x64-msvc@1.6.5", "", { "os": "win32", "cpu": "x64" }, "sha512-pzO7rYFu6f6stgSccolZHiXGTTwKrIGHHNV1ALY1xPRmQEdbHcbMwadeaG99JL2lRLve9iNI+Z9Pr3oDVRN46g=="], + "@rspack/binding-win32-x64-msvc": ["@rspack/binding-win32-x64-msvc@1.6.8", "", { "os": "win32", "cpu": "x64" }, "sha512-cIuhVsZYd3o3Neo1JSAhJYw6BDvlxaBoqvgwRkG1rs0ExFmEmgYyG7ip9pFKnKNWph/tmW3rDYypmEfjs1is7g=="], - "@rspack/core": ["@rspack/core@1.6.5", "", { "dependencies": { "@module-federation/runtime-tools": "0.21.4", "@rspack/binding": "1.6.5", "@rspack/lite-tapable": "1.1.0" }, "peerDependencies": { "@swc/helpers": ">=0.5.1" }, "optionalPeers": ["@swc/helpers"] }, "sha512-AqaOMA6MTNhqMYYwrhvPA+2uS662SkAi8Rb7B/IFOzh/Z5ooyczL4lUX+qyhAO3ymn50iwM4jikQCf9XfBiaQA=="], + "@rspack/core": ["@rspack/core@1.6.8", "", { "dependencies": { "@module-federation/runtime-tools": "0.21.6", "@rspack/binding": "1.6.8", "@rspack/lite-tapable": "1.1.0" }, "peerDependencies": { "@swc/helpers": ">=0.5.1" }, "optionalPeers": ["@swc/helpers"] }, "sha512-FolcIAH5FW4J2FET+qwjd1kNeFbCkd0VLuIHO0thyolEjaPSxw5qxG67DA7BZGm6PVcoiSgPLks1DL6eZ8c+fA=="], "@rspack/lite-tapable": ["@rspack/lite-tapable@1.1.0", "", {}, "sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw=="], @@ -541,13 +539,13 @@ "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], - "@tanstack/query-core": ["@tanstack/query-core@5.90.11", "", {}, "sha512-f9z/nXhCgWDF4lHqgIE30jxLe4sYv15QodfdPDKYAk7nAEjNcndy4dHz3ezhdUaR23BpWa4I2EH4/DZ0//Uf8A=="], + "@tanstack/query-core": ["@tanstack/query-core@5.90.12", "", {}, "sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg=="], - "@tanstack/react-query": ["@tanstack/react-query@5.90.11", "", { "dependencies": { "@tanstack/query-core": "5.90.11" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-3uyzz01D1fkTLXuxF3JfoJoHQMU2fxsfJwE+6N5hHy0dVNoZOvwKP8Z2k7k1KDeD54N20apcJnG75TBAStIrBA=="], + "@tanstack/react-query": ["@tanstack/react-query@5.90.12", "", { "dependencies": { "@tanstack/query-core": "5.90.12" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg=="], "@testing-library/dom": ["@testing-library/dom@10.4.1", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "picocolors": "1.1.1", "pretty-format": "^27.0.2" } }, "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg=="], - "@testing-library/react": ["@testing-library/react@16.3.0", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw=="], + "@testing-library/react": ["@testing-library/react@16.3.1", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "@testing-library/dom": "^10.0.0", "@types/react": "^18.0.0 || ^19.0.0", "@types/react-dom": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw=="], "@testing-library/react-hooks": ["@testing-library/react-hooks@8.0.1", "", { "dependencies": { "@babel/runtime": "^7.12.5", "react-error-boundary": "^3.1.0" }, "peerDependencies": { "@types/react": "^16.9.0 || ^17.0.0", "react": "^16.9.0 || ^17.0.0", "react-dom": "^16.9.0 || ^17.0.0", "react-test-renderer": "^16.9.0 || ^17.0.0" }, "optionalPeers": ["@types/react", "react-dom", "react-test-renderer"] }, "sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g=="], @@ -563,7 +561,7 @@ "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], - "@types/bun": ["@types/bun@1.3.3", "", { "dependencies": { "bun-types": "1.3.3" } }, "sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g=="], + "@types/bun": ["@types/bun@1.3.4", "", { "dependencies": { "bun-types": "1.3.4" } }, "sha512-EEPTKXHP+zKGPkhRLv+HI0UEX8/o+65hqARxLy8Ov5rIxMBPNTjeZww00CIihrIQGEQBYg+0roO5qOnS/7boGA=="], "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], @@ -573,7 +571,7 @@ "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], + "@types/node": ["@types/node@25.0.3", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA=="], "@types/react": ["@types/react@19.2.7", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg=="], @@ -583,7 +581,7 @@ "@types/whatwg-mimetype": ["@types/whatwg-mimetype@3.0.2", "", {}, "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@5.1.1", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.47", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-WQfkSw0QbQ5aJ2CHYw23ZGkqnRwqKHD/KYsMeTkZzPT4Jcf0DcBxBtwMJxnu6E7oxw5+JC6ZAiePgh28uJ1HBA=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@5.1.2", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.53", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ=="], "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], @@ -635,35 +633,29 @@ "aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.31", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.9.9", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-V8fbOCSeOFvlDj7LLChUcqbZrdKD9RU/VR260piF1790vT0mfLSwGc/Qzxv3IqiTukOpNtItePa0HBpMAj7MDg=="], - "browserslist": ["browserslist@4.28.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", "electron-to-chromium": "^1.5.249", "node-releases": "^2.0.27", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ=="], + "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "bun-types": ["bun-types@1.3.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ=="], + "bun-types": ["bun-types@1.3.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-5ua817+BZPZOlNaRgGBpZJOSAQ9RQ17pkwPD0yR7CfJg+r8DgIILByFifDTa+IPDDxzf5VNhtNlcKqFzDgJvlQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001757", "", {}, "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ=="], + "caniuse-lite": ["caniuse-lite@1.0.30001760", "", {}, "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw=="], "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], "core-js": ["core-js@3.47.0", "", {}, "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg=="], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "csstype-extra": ["csstype-extra@0.1.17", "", { "peerDependencies": { "typescript": "^5" } }, "sha512-SJV/89L5uo77YbRgGJeAg/CCCQbqjARB8sDG/bUlnzWlNQl6EZQTuC/4YuIwfaERDQQTEVTJHXQyTi70okRCgg=="], + "csstype-extra": ["csstype-extra@0.1.21", "", { "peerDependencies": { "typescript": "^5" } }, "sha512-+bNbaI4AB6Sh9MeWlzHe+OPPDttu8oM8g6oyOSfoDmzjn6jdaixBdo6Sbu64apL9WEUfiuXuvDiVfqoSnyolBA=="], "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], @@ -673,19 +665,15 @@ "dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="], - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - - "electron-to-chromium": ["electron-to-chromium@1.5.260", "", {}, "sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA=="], - - "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "electron-to-chromium": ["electron-to-chromium@1.5.267", "", {}, "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw=="], - "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], + "enhanced-resolve": ["enhanced-resolve@5.18.4", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q=="], "error-stack-parser": ["error-stack-parser@2.1.4", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="], - "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + "es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="], - "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + "esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], @@ -703,13 +691,11 @@ "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "glob": ["glob@12.0.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw=="], + "glob": ["glob@13.0.0", "", { "dependencies": { "minimatch": "^10.1.1", "minipass": "^7.1.2", "path-scurry": "^2.0.0" } }, "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA=="], "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], @@ -723,12 +709,6 @@ "husky": ["husky@9.1.7", "", { "bin": { "husky": "bin.js" } }, "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - - "jackspeak": ["jackspeak@4.1.1", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" } }, "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ=="], - "jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], @@ -745,7 +725,7 @@ "loader-runner": ["loader-runner@4.3.1", "", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], - "lru-cache": ["lru-cache@11.2.2", "", {}, "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg=="], + "lru-cache": ["lru-cache@11.2.4", "", {}, "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg=="], "lz-string": ["lz-string@1.5.0", "", { "bin": { "lz-string": "bin/bin.js" } }, "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ=="], @@ -765,7 +745,7 @@ "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - "next": ["next@16.0.4", "", { "dependencies": { "@next/env": "16.0.4", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.4", "@next/swc-darwin-x64": "16.0.4", "@next/swc-linux-arm64-gnu": "16.0.4", "@next/swc-linux-arm64-musl": "16.0.4", "@next/swc-linux-x64-gnu": "16.0.4", "@next/swc-linux-x64-musl": "16.0.4", "@next/swc-win32-arm64-msvc": "16.0.4", "@next/swc-win32-x64-msvc": "16.0.4", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-vICcxKusY8qW7QFOzTvnRL1ejz2ClTqDKtm1AcUjm2mPv/lVAdgpGNsftsPRIDJOXOjRQO68i1dM8Lp8GZnqoA=="], + "next": ["next@16.0.10", "", { "dependencies": { "@next/env": "16.0.10", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.0.10", "@next/swc-darwin-x64": "16.0.10", "@next/swc-linux-arm64-gnu": "16.0.10", "@next/swc-linux-arm64-musl": "16.0.10", "@next/swc-linux-x64-gnu": "16.0.10", "@next/swc-linux-x64-musl": "16.0.10", "@next/swc-win32-arm64-msvc": "16.0.10", "@next/swc-win32-x64-msvc": "16.0.10", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-RtWh5PUgI+vxlV3HdR+IfWA1UUHu0+Ram/JBO4vWB54cVPentCD0e+lxyAYEsDTqGGMg7qpjhKh6dc6aW7W/sA=="], "next-example": ["next-example@workspace:examples/next"], @@ -775,10 +755,6 @@ "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], - - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "path-scurry": ["path-scurry@2.0.1", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], @@ -791,9 +767,9 @@ "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], - "react": ["react@19.2.0", "", {}, "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ=="], + "react": ["react@19.2.3", "", {}, "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA=="], - "react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="], + "react-dom": ["react-dom@19.2.3", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.3" } }, "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg=="], "react-error-boundary": ["react-error-boundary@3.1.4", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "react": ">=16.13.1" } }, "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA=="], @@ -803,7 +779,7 @@ "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="], + "rollup": ["rollup@4.53.5", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.5", "@rollup/rollup-android-arm64": "4.53.5", "@rollup/rollup-darwin-arm64": "4.53.5", "@rollup/rollup-darwin-x64": "4.53.5", "@rollup/rollup-freebsd-arm64": "4.53.5", "@rollup/rollup-freebsd-x64": "4.53.5", "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", "@rollup/rollup-linux-arm-musleabihf": "4.53.5", "@rollup/rollup-linux-arm64-gnu": "4.53.5", "@rollup/rollup-linux-arm64-musl": "4.53.5", "@rollup/rollup-linux-loong64-gnu": "4.53.5", "@rollup/rollup-linux-ppc64-gnu": "4.53.5", "@rollup/rollup-linux-riscv64-gnu": "4.53.5", "@rollup/rollup-linux-riscv64-musl": "4.53.5", "@rollup/rollup-linux-s390x-gnu": "4.53.5", "@rollup/rollup-linux-x64-gnu": "4.53.5", "@rollup/rollup-linux-x64-musl": "4.53.5", "@rollup/rollup-openharmony-arm64": "4.53.5", "@rollup/rollup-win32-arm64-msvc": "4.53.5", "@rollup/rollup-win32-ia32-msvc": "4.53.5", "@rollup/rollup-win32-x64-gnu": "4.53.5", "@rollup/rollup-win32-x64-msvc": "4.53.5", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ=="], "rsbuild-example": ["rsbuild-example@workspace:examples/rsbuild"], @@ -819,12 +795,6 @@ "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - - "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], @@ -833,14 +803,6 @@ "stackframe": ["stackframe@1.3.4", "", {}, "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="], - "string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], - - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], @@ -849,7 +811,7 @@ "terser": ["terser@5.44.1", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw=="], - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], + "terser-webpack-plugin": ["terser-webpack-plugin@5.3.16", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q=="], "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], @@ -859,26 +821,20 @@ "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], - "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], - "vite": ["vite@7.2.4", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w=="], + "vite": ["vite@7.3.0", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg=="], "vite-example": ["vite-example@workspace:examples/vite"], "watchpack": ["watchpack@2.4.4", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], - "webpack": ["webpack@5.103.0", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw=="], + "webpack": ["webpack@5.104.0", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.4", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.16", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-5DeICTX8BVgNp6afSPYXAFjskIgWGlygQH58bcozPOXgo2r/6xx39Y1+cULZ3gTxUYQP88jmwLj2anu4Xaq84g=="], "webpack-sources": ["webpack-sources@3.3.3", "", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], "whatwg-mimetype": ["whatwg-mimetype@3.0.0", "", {}, "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q=="], - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - - "wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], @@ -891,40 +847,12 @@ "@rsbuild/core/@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], - "@types/webpack/@types/node": ["@types/node@20.19.25", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ=="], - - "bun-types/@types/node": ["@types/node@20.19.25", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ=="], - "esrecurse/estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "happy-dom/@types/node": ["@types/node@20.19.25", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ=="], - - "jest-worker/@types/node": ["@types/node@20.19.25", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ=="], - - "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "string-width-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "happy-dom/@types/node": ["@types/node@20.19.27", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug=="], "vite/postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - - "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "wrap-ansi-cjs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "wrap-ansi-cjs/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "@types/webpack/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "bun-types/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - "happy-dom/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "jest-worker/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - - "wrap-ansi-cjs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], } } diff --git a/examples/next-webpack/package.json b/examples/next-webpack/package.json index 7a15acd..3b7b646 100644 --- a/examples/next-webpack/package.json +++ b/examples/next-webpack/package.json @@ -9,16 +9,16 @@ "lint": "next lint" }, "dependencies": { - "next": "^16.0.4", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "next": "^16.0.10", + "react": "^19.2.3", + "react-dom": "^19.2.3", "@devup-api/next-plugin": "workspace:*", "@devup-api/fetch": "workspace:*", "@devup-ui/react": "^1" }, "devDependencies": { "@devup-ui/next-plugin": "^1", - "@types/node": "^24", + "@types/node": "^25", "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5" diff --git a/examples/next/app/page.tsx b/examples/next/app/page.tsx index 05bfa8b..35a63e6 100644 --- a/examples/next/app/page.tsx +++ b/examples/next/app/page.tsx @@ -1,6 +1,6 @@ 'use client' -import { createApi } from '@devup-api/fetch' +import { createApi, type DevupObject } from '@devup-api/fetch' import { createQueryClient } from '@devup-api/react-query' import { Box, Text } from '@devup-ui/react' import { useEffect } from 'react' @@ -22,6 +22,9 @@ export default function Home() { name: 'John Doe', }, }) + const _object: DevupObject['User'] | undefined = data?.[0] + const _object2: DevupObject<'response', 'openapi2.json'>['User'] | undefined = + data?.[0] console.info(data, isLoading, error) diff --git a/examples/next/openapi2.json b/examples/next/openapi2.json index d4e07cb..1556a43 100644 --- a/examples/next/openapi2.json +++ b/examples/next/openapi2.json @@ -100,6 +100,21 @@ "createdAt": { "type": "string", "format": "date-time" + }, + "array": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "required": ["id", "name"] + } } }, "required": ["id", "name", "email"] diff --git a/examples/next/package.json b/examples/next/package.json index 27e3dbe..14e420a 100644 --- a/examples/next/package.json +++ b/examples/next/package.json @@ -9,9 +9,9 @@ "lint": "next lint" }, "dependencies": { - "next": "^16.0.4", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "next": "^16.0.10", + "react": "^19.2.3", + "react-dom": "^19.2.3", "@devup-api/next-plugin": "workspace:*", "@devup-api/fetch": "workspace:*", "@devup-api/react-query": "workspace:*", @@ -19,7 +19,7 @@ }, "devDependencies": { "@devup-ui/next-plugin": "^1", - "@types/node": "^24", + "@types/node": "^25", "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5" diff --git a/examples/rsbuild/package.json b/examples/rsbuild/package.json index 884fffd..06169fd 100644 --- a/examples/rsbuild/package.json +++ b/examples/rsbuild/package.json @@ -9,8 +9,8 @@ "preview": "rsbuild preview" }, "dependencies": { - "react": "^19.2.0", - "react-dom": "^19.2.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", "@devup-api/fetch": "workspace:*" }, "devDependencies": { diff --git a/examples/vite/package.json b/examples/vite/package.json index b22860b..37c45a9 100644 --- a/examples/vite/package.json +++ b/examples/vite/package.json @@ -9,16 +9,16 @@ "preview": "vite preview" }, "dependencies": { - "react": "^19.2.0", - "react-dom": "^19.2.0", + "react": "^19.2.3", + "react-dom": "^19.2.3", "@devup-api/fetch": "workspace:*" }, "devDependencies": { "@types/react": "^19", "@types/react-dom": "^19", - "@vitejs/plugin-react": "^5.1.1", + "@vitejs/plugin-react": "^5.1.2", "typescript": "^5", - "vite": "^7.2.4", + "vite": "^7.3.0", "@devup-api/vite-plugin": "workspace:*" } } diff --git a/package.json b/package.json index acb11d7..1e1f409 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,12 @@ "private": true, "devDependencies": { "@biomejs/biome": "^2.3", - "@testing-library/react": "^16.3.0", + "@testing-library/react": "^16.3.1", "@testing-library/react-hooks": "^8.0.1", "@types/bun": "latest", "husky": "^9", - "react": "^19.2.0", - "react-dom": "^19.2.0" + "react": "^19.2.3", + "react-dom": "^19.2.3" }, "author": "JeongMin Oh", "license": "Apache-2.0", diff --git a/packages/core/package.json b/packages/core/package.json index f6f8651..ac1af3b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -20,7 +20,7 @@ "access": "public" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9" } } diff --git a/packages/core/src/api-struct.ts b/packages/core/src/api-struct.ts index 0035f86..08f436c 100644 --- a/packages/core/src/api-struct.ts +++ b/packages/core/src/api-struct.ts @@ -1,3 +1,4 @@ +import type { ExtractValue } from './additional' import type { ConditionalKeys, ConditionalScope } from './utils' // biome-ignore lint/suspicious/noEmptyInterface: empty interface @@ -24,6 +25,21 @@ export interface DevupRequestComponentStruct {} // biome-ignore lint/suspicious/noEmptyInterface: empty interface export interface DevupResponseComponentStruct {} +// biome-ignore lint/suspicious/noEmptyInterface: empty interface +export interface DevupErrorComponentStruct {} + +export type DevupObject< + R extends 'response' | 'request' | 'error' = 'response', + T extends keyof DevupApiServers | (string & {}) = 'openapi.json', +> = ExtractValue< + { + response: ExtractValue + request: ExtractValue + error: ExtractValue + }, + R +> + export type DevupGetApiStructScope = ConditionalScope< DevupGetApiStruct, O diff --git a/packages/core/src/utils.ts b/packages/core/src/utils.ts index a80c1ac..631c09f 100644 --- a/packages/core/src/utils.ts +++ b/packages/core/src/utils.ts @@ -1,8 +1,8 @@ +import type { ExtractValue } from './additional' + export type ConditionalKeys = keyof T extends undefined ? F : keyof T & string -export type ConditionalScope = K extends keyof T - ? T[K] - : object +export type ConditionalScope = ExtractValue export type PromiseOr = Promise | T diff --git a/packages/fetch/package.json b/packages/fetch/package.json index c91028f..b15ac38 100644 --- a/packages/fetch/package.json +++ b/packages/fetch/package.json @@ -23,7 +23,7 @@ "@devup-api/core": "workspace:*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9" } } diff --git a/packages/generator/package.json b/packages/generator/package.json index dae7409..2ff3477 100644 --- a/packages/generator/package.json +++ b/packages/generator/package.json @@ -24,7 +24,7 @@ "@devup-api/utils": "workspace:*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", "openapi-types": "^12.1" } diff --git a/packages/generator/src/__tests__/__snapshots__/generate-interface.test.ts.snap b/packages/generator/src/__tests__/__snapshots__/generate-interface.test.ts.snap index 57a5a14..003eacb 100644 --- a/packages/generator/src/__tests__/__snapshots__/generate-interface.test.ts.snap +++ b/packages/generator/src/__tests__/__snapshots__/generate-interface.test.ts.snap @@ -1,1713 +1,1762 @@ -// Bun Snapshot v1, https://bun.sh/docs/test/snapshots - -exports[`generateInterface returns interface for schema: %s 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - getUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 2`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - GetUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 3`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - get_users: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 4`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - getUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 5`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - getUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 6`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - createUser: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 7`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - GetUsers: { - response: Array; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - CreateUser: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 8`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - get_users: { - response: Array; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - create_user: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 9`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - createUser: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface returns interface for schema: %s 10`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - createUser: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles all HTTP methods 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - getUsers: { - response?: {}; - }; - } - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - createUser: { - response?: {}; - }; - } - } - - interface DevupPutApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - updateUser: { - response?: {}; - }; - } - } - - interface DevupDeleteApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - deleteUser: {}; - } - } - - interface DevupPatchApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - patchUser: { - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles path parameters 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}\`]: { - params: { - userId: string; - }; - response?: {}; - }; - getUser: { - params: { - userId: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles query parameters 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - query: { - page?: number; - limit: number; - }; - response?: {}; - }; - getUsers: { - query: { - page?: number; - limit: number; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles path and query parameters together 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}/posts\`]: { - params: { - userId: string; - }; - query?: { - page?: number; - }; - response?: {}; - }; - getUserPosts: { - params: { - userId: string; - }; - query?: { - page?: number; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles request body 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - createUser: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles request body with $ref 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body: DevupRequestComponentStruct['openapi.json']['User']; - response?: {}; - }; - createUser: { - body: DevupRequestComponentStruct['openapi.json']['User']; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct { - [\`openapi.json\`]: { - User: { - name?: string; - email?: string; - }; - } - } - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles 200 response 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles 201 response 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - createUser: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles response with other status codes 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: { - message?: string; - }; - }; - getUsers: { - response?: { - message?: string; - }; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles error responses 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error?: { - error?: string; - }; - }; - getUsers: { - response?: {}; - error?: { - error?: string; - }; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct { - [\`openapi.json\`]: { - Error: { - code?: string; - message?: string; - }; - } - } -}" -`; - -exports[`generateInterface handles default error response 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error?: { - error?: string; - }; - }; - getUsers: { - response?: {}; - error?: { - error?: string; - }; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles component schemas for request 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body: DevupRequestComponentStruct['openapi.json']['CreateUserRequest']; - response?: {}; - }; - createUser: { - body: DevupRequestComponentStruct['openapi.json']['CreateUserRequest']; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct { - [\`openapi.json\`]: { - CreateUserRequest: { - name?: string; - email?: string; - }; - } - } - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles component schemas for response 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - getUsers: { - response: DevupResponseComponentStruct['openapi.json']['User']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles component schemas for error 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error: DevupErrorComponentStruct['Error']; - }; - getUsers: { - response?: {}; - error: DevupErrorComponentStruct['Error']; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct { - [\`openapi.json\`]: { - Error: { - code?: string; - message?: string; - }; - } - } -}" -`; - -exports[`generateInterface handles array response with component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface creates both operationId and path keys 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}\`]: { - params: { - userId: string; - }; - response?: {}; - }; - getUserById: { - params: { - userId: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles endpoints without operationId 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles requestDefaultNonNullable option 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - createUser: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles requestDefaultNonNullable option 2`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - createUser: { - body?: { - name?: string; - email?: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles responseDefaultNonNullable option 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: { - id: string; - name?: string; - }; - }; - getUsers: { - response: { - id: string; - name?: string; - }; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles responseDefaultNonNullable option 2`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: { - id?: string; - name?: string; - }; - }; - getUsers: { - response?: { - id?: string; - name?: string; - }; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles nested schemas in allOf 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: { - id?: string; -} & { - extra?: string; -}; - }; - getUsers: { - response: { - id?: string; -} & { - extra?: string; -}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - Base: { - id?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles empty paths 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles pathItem parameters 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}\`]: { - params: { - userId: string; - }; - response?: {}; - }; - getUser: { - params: { - userId: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles requestBody $ref 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body?: { - name?: string; - }; - response?: {}; - }; - createUser: { - body?: { - name?: string; - }; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles response $ref 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - getUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles complex scenario with all features 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}/posts/{postId}\`]: { - params: { - userId: string; - postId: string; - }; - query?: { - include?: string; - }; - response: DevupResponseComponentStruct['openapi.json']['Post']; - error: DevupErrorComponentStruct['Error']; - }; - getUserPost: { - params: { - userId: string; - postId: string; - }; - query?: { - include?: string; - }; - response: DevupResponseComponentStruct['openapi.json']['Post']; - error: DevupErrorComponentStruct['Error']; - }; - } - } - - interface DevupPutApiStruct { - [\`openapi.json\`]: { - [\`/users/{userId}/posts/{postId}\`]: { - params: { - userId: string; - }; - body: DevupRequestComponentStruct['openapi.json']['UpdatePostRequest']; - response: DevupResponseComponentStruct['openapi.json']['Post']; - }; - updateUserPost: { - params: { - userId: string; - }; - body: DevupRequestComponentStruct['openapi.json']['UpdatePostRequest']; - response: DevupResponseComponentStruct['openapi.json']['Post']; - }; - } - } - - interface DevupRequestComponentStruct { - [\`openapi.json\`]: { - UpdatePostRequest: { - title?: string; - content?: string; - }; - } - } - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - Post: { - id?: string; - title?: string; - content?: string; - }; - } - } - - interface DevupErrorComponentStruct { - [\`openapi.json\`]: { - Error: { - code?: string; - message?: string; - }; - } - } -}" -`; - -exports[`generateInterface handles anyOf in schema collection 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: ({ - id?: string; -} | { - id?: string; - role?: string; -}); - }; - getUsers: { - response: ({ - id?: string; -} | { - id?: string; - role?: string; -}); - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - }; - Admin: { - id?: string; - role?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles oneOf in schema collection 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: ({ - id?: string; -} | { - name?: string; -}); - }; - getUsers: { - response: ({ - id?: string; -} | { - name?: string; -}); - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - User: { - id?: string; - }; - Guest: { - name?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles requestBody $ref that extracts schema name 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body: unknown; - response?: {}; - }; - createUser: { - body: unknown; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct { - [\`openapi.json\`]: { - CreateUserRequest: { - name?: string; - }; - } - } - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles response $ref that extracts schema name 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: {}; - getUsers: {}; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct { - [\`openapi.json\`]: { - UserResponse: { - id?: string; - }; - } - } - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles requestBody with $ref that is not a component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupPostApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - body: unknown; - response?: {}; - }; - createUser: { - body: unknown; - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles response with $ref that is not a component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: unknown; - }; - getUsers: { - response: unknown; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles error response with $ref that is not a component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error: unknown; - }; - getUsers: { - response?: {}; - error: unknown; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles array response with $ref that is not a component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response: Array; - }; - getUsers: { - response: Array; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles error array response with $ref that is not a component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error: Array; - }; - getUsers: { - response?: {}; - error: Array; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles error array response with component schema 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - error: Array; - }; - getUsers: { - response?: {}; - error: Array; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct { - [\`openapi.json\`]: { - Error: { - code?: string; - message?: string; - }; - } - } -}" -`; - -exports[`generateInterface handles error response with $ref to response object 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - getUsers: { - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct {} -}" -`; - -exports[`generateInterface handles error response $ref that extracts schema name 1`] = ` -"import "@devup-api/fetch"; - -declare module "@devup-api/fetch" { - interface DevupApiServers { - [\`openapi.json\`]: never - } - - interface DevupGetApiStruct { - [\`openapi.json\`]: { - [\`/users\`]: { - response?: {}; - }; - getUsers: { - response?: {}; - }; - } - } - - interface DevupRequestComponentStruct {} - - interface DevupResponseComponentStruct {} - - interface DevupErrorComponentStruct { - [\`openapi.json\`]: { - ServerError: { - error?: string; - }; - } - } -}" -`; +// Bun Snapshot v1, https://bun.sh/docs/test/snapshots + +exports[`generateInterface returns interface for schema: %s 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + getUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 2`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + GetUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 3`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + get_users: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 4`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + getUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 5`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + getUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 6`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + getUsers: { + response: Array['User']>; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + createUser: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 7`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + GetUsers: { + response: Array['User']>; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + CreateUser: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 8`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + get_users: { + response: Array['User']>; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + create_user: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 9`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + getUsers: { + response: Array['User']>; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + createUser: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface returns interface for schema: %s 10`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + getUsers: { + response: Array['User']>; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + createUser: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles all HTTP methods 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + getUsers: { + response?: {}; + }; + } + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + createUser: { + response?: {}; + }; + } + } + + interface DevupPutApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + updateUser: { + response?: {}; + }; + } + } + + interface DevupDeleteApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + deleteUser: {}; + } + } + + interface DevupPatchApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + patchUser: { + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles path parameters 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}\`]: { + params: { + userId: string; + }; + response?: {}; + }; + getUser: { + params: { + userId: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles query parameters 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + query: { + page?: number; + limit: number; + }; + response?: {}; + }; + getUsers: { + query: { + page?: number; + limit: number; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles path and query parameters together 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}/posts\`]: { + params: { + userId: string; + }; + query?: { + page?: number; + }; + response?: {}; + }; + getUserPosts: { + params: { + userId: string; + }; + query?: { + page?: number; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles request body 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + createUser: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles request body with $ref 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body: DevupObject<'openapi.json', 'request'>['User']; + response?: {}; + }; + createUser: { + body: DevupObject<'openapi.json', 'request'>['User']; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct { + [\`openapi.json\`]: { + User: { + name?: string; + email?: string; + }; + } + } + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles 200 response 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + getUsers: { + response: Array['User']>; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles 201 response 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + createUser: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles response with other status codes 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: { + message?: string; + }; + }; + getUsers: { + response?: { + message?: string; + }; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles error responses 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error?: { + error?: string; + }; + }; + getUsers: { + response?: {}; + error?: { + error?: string; + }; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct { + [\`openapi.json\`]: { + Error: { + code?: string; + message?: string; + }; + } + } +}" +`; + +exports[`generateInterface handles default error response 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error?: { + error?: string; + }; + }; + getUsers: { + response?: {}; + error?: { + error?: string; + }; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles component schemas for request 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body: DevupObject<'openapi.json', 'request'>['CreateUserRequest']; + response?: {}; + }; + createUser: { + body: DevupObject<'openapi.json', 'request'>['CreateUserRequest']; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct { + [\`openapi.json\`]: { + CreateUserRequest: { + name?: string; + email?: string; + }; + } + } + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles component schemas for response 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + getUsers: { + response: DevupObject<'openapi.json', 'response'>['User']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles component schemas for error 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error: DevupObject<'openapi.json', 'error'>['Error']; + }; + getUsers: { + response?: {}; + error: DevupObject<'openapi.json', 'error'>['Error']; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct { + [\`openapi.json\`]: { + Error: { + code?: string; + message?: string; + }; + } + } +}" +`; + +exports[`generateInterface handles array response with component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array['User']>; + }; + getUsers: { + response: Array['User']>; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface creates both operationId and path keys 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}\`]: { + params: { + userId: string; + }; + response?: {}; + }; + getUserById: { + params: { + userId: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles endpoints without operationId 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles requestDefaultNonNullable option 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + createUser: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles requestDefaultNonNullable option 2`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + createUser: { + body?: { + name?: string; + email?: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles responseDefaultNonNullable option 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: { + id: string; + name?: string; + }; + }; + getUsers: { + response: { + id: string; + name?: string; + }; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles responseDefaultNonNullable option 2`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: { + id?: string; + name?: string; + }; + }; + getUsers: { + response?: { + id?: string; + name?: string; + }; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles nested schemas in allOf 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: { + id?: string; +} & { + extra?: string; +}; + }; + getUsers: { + response: { + id?: string; +} & { + extra?: string; +}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + Base: { + id?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles empty paths 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles pathItem parameters 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}\`]: { + params: { + userId: string; + }; + response?: {}; + }; + getUser: { + params: { + userId: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles requestBody $ref 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body?: { + name?: string; + }; + response?: {}; + }; + createUser: { + body?: { + name?: string; + }; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles response $ref 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + getUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles complex scenario with all features 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}/posts/{postId}\`]: { + params: { + userId: string; + postId: string; + }; + query?: { + include?: string; + }; + response: DevupObject<'openapi.json', 'response'>['Post']; + error: DevupObject<'openapi.json', 'error'>['Error']; + }; + getUserPost: { + params: { + userId: string; + postId: string; + }; + query?: { + include?: string; + }; + response: DevupObject<'openapi.json', 'response'>['Post']; + error: DevupObject<'openapi.json', 'error'>['Error']; + }; + } + } + + interface DevupPutApiStruct { + [\`openapi.json\`]: { + [\`/users/{userId}/posts/{postId}\`]: { + params: { + userId: string; + }; + body: DevupObject<'openapi.json', 'request'>['UpdatePostRequest']; + response: DevupObject<'openapi.json', 'response'>['Post']; + }; + updateUserPost: { + params: { + userId: string; + }; + body: DevupObject<'openapi.json', 'request'>['UpdatePostRequest']; + response: DevupObject<'openapi.json', 'response'>['Post']; + }; + } + } + + interface DevupRequestComponentStruct { + [\`openapi.json\`]: { + UpdatePostRequest: { + title?: string; + content?: string; + }; + } + } + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + Post: { + id?: string; + title?: string; + content?: string; + }; + } + } + + interface DevupErrorComponentStruct { + [\`openapi.json\`]: { + Error: { + code?: string; + message?: string; + }; + } + } +}" +`; + +exports[`generateInterface handles anyOf in schema collection 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: ({ + id?: string; +} | { + id?: string; + role?: string; +}); + }; + getUsers: { + response: ({ + id?: string; +} | { + id?: string; + role?: string; +}); + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + }; + Admin: { + id?: string; + role?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles oneOf in schema collection 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: ({ + id?: string; +} | { + name?: string; +}); + }; + getUsers: { + response: ({ + id?: string; +} | { + name?: string; +}); + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + User: { + id?: string; + }; + Guest: { + name?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles requestBody $ref that extracts schema name 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body: unknown; + response?: {}; + }; + createUser: { + body: unknown; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct { + [\`openapi.json\`]: { + CreateUserRequest: { + name?: string; + }; + } + } + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles response $ref that extracts schema name 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: {}; + getUsers: {}; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct { + [\`openapi.json\`]: { + UserResponse: { + id?: string; + }; + } + } + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles requestBody with $ref that is not a component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupPostApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + body: unknown; + response?: {}; + }; + createUser: { + body: unknown; + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles response with $ref that is not a component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: unknown; + }; + getUsers: { + response: unknown; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles error response with $ref that is not a component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error: unknown; + }; + getUsers: { + response?: {}; + error: unknown; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles array response with $ref that is not a component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response: Array; + }; + getUsers: { + response: Array; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles error array response with $ref that is not a component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error: Array; + }; + getUsers: { + response?: {}; + error: Array; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles error array response with component schema 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + error: Array['Error']>; + }; + getUsers: { + response?: {}; + error: Array['Error']>; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct { + [\`openapi.json\`]: { + Error: { + code?: string; + message?: string; + }; + } + } +}" +`; + +exports[`generateInterface handles error response with $ref to response object 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + getUsers: { + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct {} +}" +`; + +exports[`generateInterface handles error response $ref that extracts schema name 1`] = ` +"import "@devup-api/fetch"; +import type { DevupObject } from "@devup-api/fetch"; + +declare module "@devup-api/fetch" { + interface DevupApiServers { + [\`openapi.json\`]: never + } + + interface DevupGetApiStruct { + [\`openapi.json\`]: { + [\`/users\`]: { + response?: {}; + }; + getUsers: { + response?: {}; + }; + } + } + + interface DevupRequestComponentStruct {} + + interface DevupResponseComponentStruct {} + + interface DevupErrorComponentStruct { + [\`openapi.json\`]: { + ServerError: { + error?: string; + }; + } + } +}" +`; diff --git a/packages/generator/src/__tests__/__snapshots__/generate-schema.test.ts.snap b/packages/generator/src/__tests__/__snapshots__/generate-schema.test.ts.snap index 11f9756..2cc5d04 100644 --- a/packages/generator/src/__tests__/__snapshots__/generate-schema.test.ts.snap +++ b/packages/generator/src/__tests__/__snapshots__/generate-schema.test.ts.snap @@ -131,86 +131,134 @@ exports[`getTypeFromSchema returns interface for schema: %s 8`] = ` exports[`getTypeFromSchema returns interface for schema: %s 9`] = ` { "default": undefined, - "type": -"Array<{ - id?: string; - name?: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id?": { + "default": undefined, + "type": "string", + }, + "name?": { + "default": undefined, + "type": "string", + }, + }, + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 10`] = ` { "default": undefined, - "type": -"Array<{ - id?: string; - name?: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id?": { + "default": undefined, + "type": "string", + }, + "name?": { + "default": undefined, + "type": "string", + }, + }, + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 11`] = ` { "default": undefined, - "type": "Array", + "type": { + "__isArray": true, + "items": "string", + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 12`] = ` { "default": undefined, - "type": "Array", + "type": { + "__isArray": true, + "items": "string", + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 13`] = ` { "default": undefined, - "type": -"Array<{ - id?: string; - name?: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id?": { + "default": undefined, + "type": "string", + }, + "name?": { + "default": undefined, + "type": "string", + }, + }, + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 14`] = ` { "default": undefined, - "type": -"Array<{ - id?: string; - name?: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id?": { + "default": undefined, + "type": "string", + }, + "name?": { + "default": undefined, + "type": "string", + }, + }, + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 15`] = ` { "default": undefined, - "type": -"Array<{ - id?: string; - name?: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id?": { + "default": "123", + "type": "string", + }, + "name?": { + "default": "John Doe", + "type": "string", + }, + }, + }, } `; exports[`getTypeFromSchema returns interface for schema: %s 16`] = ` { "default": undefined, - "type": -"Array<{ - id: string; - name: string; -}>" -, + "type": { + "__isArray": true, + "items": { + "id": { + "default": "123", + "type": "string", + }, + "name": { + "default": "John Doe", + "type": "string", + }, + }, + }, } `; diff --git a/packages/generator/src/generate-interface.ts b/packages/generator/src/generate-interface.ts index 9335d24..d083803 100644 --- a/packages/generator/src/generate-interface.ts +++ b/packages/generator/src/generate-interface.ts @@ -256,7 +256,7 @@ function generateSchemaInterface( requestSchemaNames.has(schemaName) ) { // Use component reference - requestBodyType = `DevupRequestComponentStruct['${serverName}']['${schemaName}']` + requestBodyType = `DevupObject<'${serverName}', 'request'>['${schemaName}']` } else { const requestBody = extractRequestBody( operation.requestBody, @@ -316,7 +316,7 @@ function generateSchemaInterface( responseSchemaNames.has(schemaName) ) { // Use component reference - responseType = `DevupResponseComponentStruct['${serverName}']['${schemaName}']` + responseType = `DevupObject<'${serverName}', 'response'>['${schemaName}']` } else { // Extract schema type with response options const responseDefaultNonNullable = @@ -347,7 +347,7 @@ function generateSchemaInterface( responseSchemaNames.has(schemaName) ) { // Use component reference for array items - responseType = `Array` + responseType = `Array['${schemaName}']>` } else { // Extract schema type with response options const responseDefaultNonNullable = @@ -420,7 +420,7 @@ function generateSchemaInterface( errorSchemaNames.has(schemaName) ) { // Use component reference - errorType = `DevupErrorComponentStruct['${schemaName}']` + errorType = `DevupObject<'${serverName}', 'error'>['${schemaName}']` } else { // Extract schema type with response options const responseDefaultNonNullable = @@ -451,7 +451,7 @@ function generateSchemaInterface( errorSchemaNames.has(schemaName) ) { // Use component reference for array items - errorType = `Array` + errorType = `Array['${schemaName}']>` } else { // Extract schema type with response options const responseDefaultNonNullable = @@ -703,5 +703,5 @@ export function generateInterface( errorComponentInterface, ].join('\n\n') - return `import "@devup-api/fetch";\n\ndeclare module "@devup-api/fetch" {\n${allInterfaces}\n}` + return `import "@devup-api/fetch";\nimport type { DevupObject } from "@devup-api/fetch";\n\ndeclare module "@devup-api/fetch" {\n${allInterfaces}\n}` } diff --git a/packages/generator/src/generate-schema.ts b/packages/generator/src/generate-schema.ts index 1006bd7..379c74a 100644 --- a/packages/generator/src/generate-schema.ts +++ b/packages/generator/src/generate-schema.ts @@ -111,7 +111,7 @@ export function getTypeFromSchema( if (items) { const itemType = getTypeFromSchema(items, document, options) return { - type: `Array<${formatTypeValue(itemType.type)}>`, + type: { __isArray: true, items: itemType.type }, default: schemaObj.default, } } @@ -311,6 +311,20 @@ function isTypeObject( ) } +/** + * Check if a value is an array type marker + */ +function isArrayType( + value: unknown, +): value is { __isArray: true; items: unknown } { + return ( + typeof value === 'object' && + value !== null && + '__isArray' in value && + (value as Record).__isArray === true + ) +} + /** * Format a type value to TypeScript type string */ @@ -319,6 +333,12 @@ export function formatTypeValue(value: unknown, indent: number = 0): string { return value } + // Handle array type marker + if (isArrayType(value)) { + const itemsFormatted = formatTypeValue(value.items, indent) + return `Array<${itemsFormatted}>` + } + // Handle { type: unknown, default?: unknown } structure if (isTypeObject(value)) { return formatTypeValue(value.type, indent) diff --git a/packages/next-plugin/package.json b/packages/next-plugin/package.json index 6561e16..cf875bd 100644 --- a/packages/next-plugin/package.json +++ b/packages/next-plugin/package.json @@ -30,7 +30,7 @@ "@devup-api/core": "*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/webpack": "^5.28", "typescript": "^5.9" } diff --git a/packages/react-query/package.json b/packages/react-query/package.json index 10de7df..0c066e7 100644 --- a/packages/react-query/package.json +++ b/packages/react-query/package.json @@ -29,7 +29,7 @@ }, "devDependencies": { "@testing-library/react-hooks": "^8.0.1", - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/react": "^19.2", "happy-dom": "^20.0.11", "typescript": "^5.9" diff --git a/packages/rsbuild-plugin/package.json b/packages/rsbuild-plugin/package.json index 9cda1db..9f9bdf6 100644 --- a/packages/rsbuild-plugin/package.json +++ b/packages/rsbuild-plugin/package.json @@ -29,7 +29,7 @@ "@devup-api/core": "*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9" } } diff --git a/packages/utils/package.json b/packages/utils/package.json index e5995a4..44efe81 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -20,7 +20,7 @@ "access": "public" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9", "openapi-types": "^12.1" } diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 4035b2d..2bc366a 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -29,7 +29,7 @@ "@devup-api/core": "*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "typescript": "^5.9" } } diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json index 551acbb..d194ce2 100644 --- a/packages/webpack-plugin/package.json +++ b/packages/webpack-plugin/package.json @@ -28,7 +28,7 @@ "@devup-api/core": "*" }, "devDependencies": { - "@types/node": "^24.10", + "@types/node": "^25.0", "@types/webpack": "^5.28", "typescript": "^5.9" }