diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg
deleted file mode 100755
index b52f190..0000000
--- a/.husky/prepare-commit-msg
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-# gitmoji as a commit hook
-exec < /dev/tty
-gitmoji --hook $1 $2
diff --git a/README.md b/README.md
index ad0d56b..44ded48 100644
--- a/README.md
+++ b/README.md
@@ -1,156 +1,372 @@
-
+
+

+
-## Overview
+metal-fetch
-> **metal-fetch** is a declarative fetch api library for typescript inspired by `trpc`.
->
-> Currently, it's still in development, so it's not recommended for production use.
+
+ A type-safe, fluent, and chainable wrapper around the native Fetch API, designed for maximum flexibility and developer experience.
+
-1. Define api using `f.router` function
+
-```ts
-const api = f.router(BASE_URL, REST_API_STRUCTURE)
+
+

+

+
+
+---
+
+**metal-fetch** provides a robust, immutable builder that empowers you to define API endpoints declaratively. It enforces type safety for request bodies, search parameters, and responses, catching errors at compile time, not runtime. With a powerful middleware system and first-class error handling, it's built for creating resilient and maintainable API layers.
+
+## Features
+
+- **âď¸ Fluent, Chainable API:** Define every aspect of a request with a clean, readable, and chainable interface.
+- **đ Type-Safe by Default:** Enforces validation for request bodies, path parameters, and responses. If you don't define a validator, you can't send the data.
+- **⨠Immutable Builder:** Every method on the `FetchBuilder` returns a new, cloned instance, preventing side effects and making your API definitions safe to reuse and extend.
+- **đ Full-Cycle Middleware:** Intercept and modify requests and responses with a standard `(request, next) => Promise` middleware pattern. Perfect for logging, authentication, caching, and more.
+- **đŞ Flexible Response Handling:** Get full control over the raw `Response` object. Inspect headers or check status codes before deciding how to parse the body, preventing crashes from unexpected API responses.
+- **đ¨ Granular Error Handling:** Define separate handlers for typed fetch errors (like a 404 or 500) and unknown network errors.
+
+## Installation
+
+```bash
+# Using pnpm
+pnpm add @metal-box/fetch
+
+# Using npm
+npm install @metal-box/fetch
+
+# Using yarn
+yarn add @metal-box/fetch
```
-2. Define rest api structure
+> **Note:** `metal-fetch` is a runtime-agnostic library. For validation, you can bring your own library, such as `zod`, `yup`, `@metal-box/type`, or any other.
-`REST_API_STRUCTURE` is the declarative REST api structure.
+---
-For example there is an api structure like this:
+## Quick Start
-> Book api
->
-> - `BASE_URL` : `/api/v1`
-> - `BASE_URL/books` : `GET`
-> - `BASE_URL/books` : `POST`
-> - `BASE_URL/books/:id` : `GET`
-> - `BASE_URL/books/:id` : `PUT`
-> - `BASE_URL/books/:id` : `DELETE`
-> - `BASE_URL/category/:name` : `GET`
+Here's a quick look at defining and using an API endpoint to fetch a user by their ID.
-then we can define the api like this:
+```typescript
+import { f } from '@metal-box/fetch'
+import { z } from 'zod'
-```ts
-export const api = f.router(BASE_URL, {
- auth: {
- login: {
- GET: f
- // create fetch unit
- .unit()
- // json mode
- .def_json()
- // default referrer
- .def_default_referrer('about:client')
- // response parser
- .def_response(({ json }) =>
- t.union(t.string, t.undefined).parse(json)
- ),
- },
+const BASE_URL = 'https://api.example.com'
+
+// Define a validator for the user response
+const UserResponse = z.object({
+ id: z.string(),
+ name: z.string(),
+ email: z.string().email(),
+})
+
+// 1. Create a reusable API client instance
+const apiClient = f
+ .builder()
+ .def_url(BASE_URL)
+ .def_json() // Automatically handle JSON parsing
+ .def_query_mode('throw') // Throw an error on non-2xx responses
+
+// 2. Define a specific endpoint
+const getUser = apiClient
+ .def_method('GET')
+ .def_url(`${BASE_URL}/users/$id`) // Dynamic path parameter
+ .def_response(async ({ json }) => UserResponse.parse(await json()))
+ .build()
+
+// 3. Execute the query
+async function fetchUser(userId: string) {
+ try {
+ const user = await getUser.query({
+ path: { id: userId },
+ })
+
+ console.log('Fetched User:', user)
+ // Type of `user` is inferred as:
+ // { id: string; name: string; email: string; }
+
+ return user
+ } catch (error) {
+ console.error('Failed to fetch user:', error)
+ }
+}
+
+fetchUser('123')
+```
+
+## Core Concepts
+
+### The Immutable Builder
+
+The core of `metal-fetch` is the `FetchBuilder`. It's immutable, meaning every method call creates a new, refined builder instance. This allows you to safely create a base client and extend it for specific endpoints without any side effects.
+
+```typescript
+// Base client with shared configuration
+const baseClient = f
+ .builder()
+ .def_url('https://api.my-service.com')
+ .def_query_mode('throw')
+
+// Endpoint for fetching products
+const getProducts = baseClient
+ .def_method('GET')
+ .def_url('https://api.my-service.com/products')
+ .build()
+
+// Endpoint for creating a product (extends the same baseClient)
+const createProduct = baseClient
+ .def_method('POST')
+ .def_url('https://api.my-service.com/products')
+ // ... add body definition
+ .build()
+```
+
+### Type-Safe Validation
+
+`metal-fetch` helps you eliminate runtime errors by enforcing compile-time checks. You cannot pass a `body` or `search` object to `.query()` unless you have first defined a validator for it.
+
+#### Body Validation
+
+Use `.def_body()` with your favorite validation library.
+
+```typescript
+const ProductRequest = z.object({
+ name: z.string(),
+ price: z.number().positive(),
+})
+
+const createProduct = apiClient
+ .def_method('POST')
+ .def_url(`${BASE_URL}/products`)
+ .def_body(ProductRequest.parse) // Pass the validation function
+ .build()
+
+// This is now type-safe!
+await createProduct.query({
+ body: {
+ name: 'Laptop',
+ price: 1200,
+ },
+})
+
+// This would cause a TypeScript error, as `body` is not defined
+// await getProducts.query({ body: { name: 'Laptop' } });
+```
+
+#### Response Validation
+
+Similarly, use `.def_response()` to parse and validate the data you receive. When combined with `.def_json()`, you get a `json()` helper function to safely parse the body.
+
+```typescript
+const ProductResponse = z.object({ id: z.string() /* ... */ })
+
+const getProduct = apiClient
+ .def_method('GET')
+ .def_url(`${BASE_URL}/products/$id`)
+ .def_response(async ({ response, json }) => {
+ // You can inspect the raw response first
+ if (!response.ok) {
+ throw new Error(`Request failed with status ${response.status}`)
+ }
+ // Then parse the body
+ return ProductResponse.parse(await json())
+ })
+ .build()
+```
+
+### Path and Search Parameters
+
+- **Path Parameters:** Define dynamic segments in your URL with a `$` prefix (e.g., `/$id`). Pass the corresponding values in the `path` object in `.query()`.
+- **Search Parameters:** Use `.def_searchparams()` to define a validator for query strings. Pass the data in the `search` object in `.query()`.
+
+```typescript
+const ProductSearch = z.object({
+ category: z.string(),
+ limit: z.number().optional(),
+})
+
+const findProducts = apiClient
+ .def_method('GET')
+ .def_url(`${BASE_URL}/products`)
+ .def_searchparams(ProductSearch.parse)
+ .build()
+
+await findProducts.query({
+ search: {
+ category: 'electronics',
+ limit: 10,
},
- books: {
+})
+// Resulting URL: https://api.example.com/products?category=electronics&limit=10
+```
+
+## Declarative API Routers
+
+While the `FetchBuilder` is perfect for defining individual endpoints, `metal-fetch` also provides a powerful `router` function to define your entire API surface in a single, organized, and type-safe object. This creates a fully-typed client SDK, eliminating guesswork and ensuring your frontend and backend stay in sync.
+
+The router takes a `baseUrl` and a nested structure of `FetchBuilder` instances. It automatically assigns the URL and HTTP method to each builder based on its position in the tree.
+
+### Example: Defining a Router
+
+```typescript
+import { f, type GetRouterConfig } from '@metal-box/fetch'
+import { z } from 'zod'
+
+const BASE_URL = 'https://api.example.com'
+
+// Define your validators
+const UserResponse = z.object({ id: z.string(), name: z.string() })
+const UserListResponse = z.array(UserResponse)
+const UserRequest = z.object({ name: z.string() })
+
+// Define the entire API structure
+export const api = f.router(BASE_URL, {
+ users: {
GET: f
- .unit()
+ .builder()
.def_json()
- .def_default_referrer('about:client')
- .def_response(({ json }) => Model.bookList.parse(json)),
+ .def_response(async ({ json }) =>
+ UserListResponse.parse(await json())
+ ),
+
POST: f
- .unit()
+ .builder()
.def_json()
- .def_default_referrer('about:client')
- .def_body(Model.bookRequest.parse)
- .def_response(({ json }) => Model.book.parse(json)),
- // /books/:id, dynamic path using $ prefix
+ .def_body(UserRequest.parse)
+ .def_response(async ({ json }) => UserResponse.parse(await json())),
+
+ // Dynamic path: /users/:id
$id: {
GET: f
- .unit()
- .def_json()
- .def_default_referrer('about:client')
- .def_response(async ({ json }) => Model.book.parse(json)),
- PUT: f
- .unit()
- .def_json()
- .def_default_referrer('about:client')
- .def_body(Model.bookRequest.parse)
- .def_response(({ json }) => Model.book.parse(json)),
- DELETE: f
- .unit()
- .def_json()
- .def_default_referrer('about:client')
- .def_response(({ json }) => Model.book.parse(json)),
- },
- },
- category: {
- // /category/:name, dynamic path using $ prefix
- $name: {
- GET: f
- .unit()
+ .builder()
.def_json()
- .def_default_referrer('about:client')
- .def_response(({ json }) => Model.bookList.parse(json)),
+ .def_response(async ({ json }) =>
+ UserResponse.parse(await json())
+ ),
},
},
})
+
+// The `api` object is now a fully-typed client
+async function main() {
+ // GET /users
+ const users = await api.users.GET.query()
+
+ // POST /users
+ const newUser = await api.users.POST.query({
+ body: { name: 'Jane Doe' },
+ })
+
+ // GET /users/123
+ const user = await api.users.$id.GET.query({
+ path: { id: '123' },
+ })
+}
```
-> Note: parser library is your choice, you can use `io-ts`, `zod`, `joi`, etc.
+### End-to-End Type Safety with `GetRouterConfig`
-After define the api, we can get the router config type using `f.GetRouterConfig` type
+The most powerful feature of the router is its ability to infer types for your entire API. The `GetRouterConfig` utility creates a type definition that maps directly to your router structure.
-- Export the router config type
- ```ts
- export type BookApi = f.GetRouterConfig
- ```
-- Use the router config type
+```typescript
+// 1. Export the inferred type from your API definition file
+export type ApiConfig = GetRouterConfig
- ```ts
- import { BookApi } from './api'
+// 2. In another file, you can import and use this type
+import { type ApiConfig } from './api'
- type Books = BookApi['books']['GET']['response']
+// You can now extract the exact response type for any endpoint
+type GetUsersResponse = ApiConfig['users']['GET']['response']
+// `GetUsersResponse` is now:
+// Array<{ id: string; name: string; }>
- /**
- >> Books = Model.bookList
-
- predefined models:
- Model.bookList = t.array(Model.book)
- Model.book = t.type({ id: t.number, title: t.string, author: t.string })
-
- >> typescript type:
-
- type Books = Array<{ id: number, title: string, author: string }>
- */
- ```
+// Or the body type for a POST request
+type CreateUserBody = ApiConfig['users']['POST']['body']
+// `CreateUserBody` is now:
+// { name: string; }
+```
-3. Use the api
+This creates a single source of truth for your API's contract, providing autocomplete and compile-time errors if the frontend usage ever diverges from the backend definition.
-**Middleware support for the router will be available soon.**
+## Advanced Usage
-```ts
-const books = await api.books.GET.query({
- headers: {
- Authorization: `Bearer ${Auth}`,
- },
-})
+### Middleware
-const removed = await api.books.$id.DELETE.query({
- headers: {
- Authorization: `Bearer ${Auth}`,
- },
- path: {
- id: removeTarget.uuid,
- },
-})
+Middleware allows you to implement cross-cutting concerns. It follows the standard `(request, next) => Promise` pattern.
+
+```typescript
+// An authentication middleware that adds a bearer token
+const authMiddleware: f.MiddlewareFunction = async (request, next) => {
+ const token = localStorage.getItem('auth_token')
+ if (token) {
+ request.headers.set('Authorization', `Bearer ${token}`)
+ }
+ // Continue to the next middleware or the actual fetch call
+ return next(request)
+}
+
+const secureApiClient = apiClient.def_middleware(authMiddleware)
+
+// All endpoints created from `secureApiClient` will now have the auth header
+const getMyProfile = secureApiClient
+ .def_method('GET')
+ .def_url(`${BASE_URL}/me`)
+ .build()
+```
+
+### Error Handling
+
+`metal-fetch` provides three distinct handlers for processing outcomes:
+
+- `def_fetch_err_handler`: Handles `FetchResponseError`, which occurs when the server responds with a non-2xx status code (e.g., 404, 500). You get access to the typed error and status code.
+- `def_unknown_err_handler`: Catches any other error, such as network failures, DNS issues, or CORS errors.
+- `def_final_handler`: A `finally` block that executes after every request, regardless of success or failure. Useful for cleanup logic.
+
+```typescript
+const robustClient = apiClient
+ .def_fetch_err_handler(({ error, status }) => {
+ console.error(
+ `[API Error] Status: ${status}, Message: ${error.statusMessage}`
+ )
+ })
+ .def_unknown_err_handler(({ error }) => {
+ console.error('[Network Error]', error)
+ })
+ .def_final_handler(() => {
+ console.log('Request finished.')
+ })
```
-This is native `fetch` wrapper, so you can integrate with any state management library like `redux`, `mobx`, `react-query`, etc.
+### Aborting Requests
+
+You can easily abort requests using either a timeout or an `AbortSignal`.
+
+```typescript
+const controller = new AbortController()
+
+// Abort after 2 seconds
+setTimeout(() => controller.abort(), 2000)
+
+try {
+ await getUser.query({
+ path: { id: '123' },
+ // Option 1: Timeout in milliseconds
+ timeout: 5000,
+ // Option 2: Provide one or more AbortSignals
+ abortSignal: controller.signal,
+ })
+} catch (error) {
+ // Catches the abort error
+ console.log(error.name) // 'TimeoutError' or 'AbortError'
+}
+```
-## Roadmap
+## Contributing
-- [x] Declarative `fetch` api
-- [ ] Middleware support
-- [ ] Plugin support (e.g. retry, cache, etc)
-- [ ] `OpenAPI` spec based auto generation support
-- [ ] Documentation
+Contributions are welcome! Please see the [CONTRIBUTING.md](./CONTRIBUTING.md) file for guidelines.
## License
-MIT
+This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
diff --git a/package.json b/package.json
index b9dc601..6961773 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
"bench": "pnpm --filter=\"benchmark\" start run",
"start": "turbo run start",
"clean": "turbo run clean",
- "test": "vitest",
+ "test": "vitest --run",
"test:watch": "vitest --watch -u",
"test:coverage": "vitest run --coverage",
"test:ci": "pnpm test:coverage && pnpm prettier && pnpm ts:typecheck && pnpm build",
@@ -56,7 +56,8 @@
"turbo": "^2.3.3",
"typescript": "^5.7.3",
"vite-tsconfig-paths": "^5.1.4",
- "vitest": "^3.0.0"
+ "vitest": "^3.0.0",
+ "@metal-box/type": "^0.2.0"
},
"engines": {
"node": ">=20.0.0"
diff --git a/packages/fetch/package.json b/packages/fetch/package.json
index 5d8736e..3a037d0 100644
--- a/packages/fetch/package.json
+++ b/packages/fetch/package.json
@@ -18,8 +18,5 @@
"scripts": {
"build": "tsup src/index.ts --format=cjs,esm --dts",
"build:fast": "tsup src/index.ts --format=cjs,esm"
- },
- "devDependencies": {
- "@metal-box/type": "^0.2.0"
}
}
diff --git a/packages/fetch/src/__tests__/__mocks__/client.ts b/packages/fetch/src/__tests__/__mocks__/client.ts
index 5ad0367..009e2de 100644
--- a/packages/fetch/src/__tests__/__mocks__/client.ts
+++ b/packages/fetch/src/__tests__/__mocks__/client.ts
@@ -1,5 +1,5 @@
import { MetalSchemaShape, t } from '@metal-box/type'
-import * as f from '../../index'
+import { type GetRouterConfig, f } from '../..'
import { BASE_URL } from './constant'
import { Model } from './model'
@@ -12,67 +12,69 @@ export const api = f.router(BASE_URL, {
auth: {
login: {
GET: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
- .def_response(({ json }) =>
- ApiResponse(t.union(t.string, t.undefined)).parse(json)
+ .def_response(async ({ json }) =>
+ ApiResponse(t.union(t.string, t.undefined)).parse(
+ await json()
+ )
),
},
},
books: {
GET: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
- .def_response(({ json }) =>
- ApiResponse(Model.bookList).parse(json)
+ .def_response(async ({ json }) =>
+ ApiResponse(Model.bookList).parse(await json())
),
POST: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
.def_body(Model.bookRequest.parse)
- .def_response(({ json }) => {
- const parsed = ApiResponse(Model.book).parse(json)
+ .def_response(async ({ json }) => {
+ const parsed = ApiResponse(Model.book).parse(await json())
return parsed
}),
$id: {
GET: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
.def_response(async ({ json }) => {
- return ApiResponse(Model.book).parse(json)
+ return ApiResponse(Model.book).parse(await json())
}),
PUT: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
.def_body(Model.bookRequest.parse)
- .def_response(({ json }) =>
- ApiResponse(Model.book).parse(json)
+ .def_response(async ({ json }) =>
+ ApiResponse(Model.book).parse(await json())
),
DELETE: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
- .def_response(({ json }) =>
- ApiResponse(Model.book).parse(json)
+ .def_response(async ({ json }) =>
+ ApiResponse(Model.book).parse(await json())
),
},
},
category: {
$name: {
GET: f
- .unit()
+ .builder()
.def_json()
.def_default_referrer('about:client')
- .def_response(({ json }) => {
- return ApiResponse(Model.bookList).parse(json)
+ .def_response(async ({ json }) => {
+ return ApiResponse(Model.bookList).parse(await json())
}),
},
},
})
-export type BookApi = f.GetRouterConfig
+export type BookApi = GetRouterConfig
diff --git a/packages/fetch/src/__tests__/__mocks__/server.ts b/packages/fetch/src/__tests__/__mocks__/server.ts
index e1db3d3..1043500 100644
--- a/packages/fetch/src/__tests__/__mocks__/server.ts
+++ b/packages/fetch/src/__tests__/__mocks__/server.ts
@@ -132,7 +132,7 @@ class BookServer {
header: Headers,
data: (authId: UUID) => T,
skipAuth: boolean = false
- ): HttpResponse {
+ ): HttpResponse {
if (skipAuth) {
return HttpResponse.json(
{
diff --git a/packages/fetch/src/__tests__/build.router.test.ts b/packages/fetch/src/__tests__/build.router.test.ts
index 96eaeb3..6d87efe 100644
--- a/packages/fetch/src/__tests__/build.router.test.ts
+++ b/packages/fetch/src/__tests__/build.router.test.ts
@@ -1,5 +1,5 @@
import { setupServer } from 'msw/node'
-import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'
+import { afterAll, beforeAll, describe, expect, it } from 'vitest'
import { api } from './__mocks__/client'
import {
type BookModel,
@@ -14,7 +14,6 @@ const apiServer = setupServer(...bookServer.routes)
beforeAll(() => apiServer.listen({ onUnhandledRequest: 'error' }))
afterAll(() => apiServer.close())
-afterEach(() => apiServer.resetHandlers())
// ---------------------------------------------------- //
describe(label.unit('router api request'), () => {
diff --git a/packages/fetch/src/__tests__/builder.test.ts b/packages/fetch/src/__tests__/builder.test.ts
new file mode 100644
index 0000000..20065e6
--- /dev/null
+++ b/packages/fetch/src/__tests__/builder.test.ts
@@ -0,0 +1,82 @@
+import { t } from '@metal-box/type'
+import { describe, expect, it, vi } from 'vitest'
+import { f } from '..'
+import { FetchBuilder } from '../core/fetcher'
+import { FetchUnit } from '../core/fetcher/unit'
+
+describe('FetchBuilder', () => {
+ it('should create a new FetchBuilder instance', () => {
+ const b = f.builder()
+ expect(b).toBeInstanceOf(FetchBuilder)
+ })
+
+ it('should set the method', () => {
+ const b = f.builder().def_method('POST')
+ expect(b.$store.method).toBe('POST')
+ })
+
+ it('should set the base URL', () => {
+ const url = 'https://api.test.com'
+ const b = f.builder().def_url(url)
+ expect(b.$store.defaultUrl).toBe(url)
+ })
+
+ it('should set json mode', () => {
+ const b = f.builder().def_json()
+ expect(b.isJsonMode).toBe(true)
+ })
+
+ it('should build a FetchUnit', () => {
+ const unit = f.builder().build()
+ expect(unit).toBeInstanceOf(FetchUnit)
+ })
+
+ it('should define a body validator', () => {
+ const bodySchema = t.object({ name: t.string })
+ const b = f.builder().def_body(bodySchema.parse)
+ const testBody = { name: 'test' }
+ expect(b.bodyValidator(testBody)).toEqual(testBody)
+ expect(() => b.bodyValidator({ name: 123 })).toThrow()
+ })
+
+ it('should be immutable', () => {
+ const originalBuilder = f
+ .builder()
+ .def_method('GET')
+ .def_url('https://a.com')
+ const modifiedBuilder = originalBuilder.def_method('POST')
+
+ expect(originalBuilder.$store.method).toBe('GET')
+ expect(modifiedBuilder.$store.method).toBe('POST')
+ expect(originalBuilder.$store.defaultUrl).toBe('https://a.com')
+ expect(modifiedBuilder.$store.defaultUrl).toBe('https://a.com')
+ })
+
+ it('should handle request handler modification', async () => {
+ const fetchUnit = f
+ .builder()
+ .def_url('https://api.com')
+ .def_request_handler(({ request }) => {
+ if (request instanceof Request) {
+ request.headers.set('X-Test', 'true')
+ }
+ return request
+ })
+ .build()
+
+ const mockFetch = vi
+ .spyOn(global, 'fetch')
+ .mockImplementation(async (req) => {
+ if (req instanceof Request) {
+ expect(req.headers.get('X-Test')).toBe('true')
+ } else {
+ throw new Error('Expected a Request object')
+ }
+ return new Response('OK')
+ })
+
+ await fetchUnit.query()
+ expect(mockFetch).toHaveBeenCalledOnce()
+ mockFetch.mockRestore()
+ })
+})
diff --git a/packages/fetch/src/__tests__/middleware.integration.test.ts b/packages/fetch/src/__tests__/middleware.integration.test.ts
new file mode 100644
index 0000000..fe5943c
--- /dev/null
+++ b/packages/fetch/src/__tests__/middleware.integration.test.ts
@@ -0,0 +1,69 @@
+import { describe, expect, it, vi } from 'vitest'
+import { f } from '..'
+
+describe('Middleware Integration', () => {
+ it('should run middleware and modify request headers', async () => {
+ const TOKEN = 'token'
+ const middleware = new f.Middleware()
+
+ middleware.use(async (req, next) => {
+ req.headers.set('Authorization', TOKEN)
+ return next(req)
+ })
+
+ const fetchBuilder = f
+ .builder()
+ .def_method('GET')
+ .def_url('https://api.com')
+ .def_middleware(middleware.procedures[0]!)
+
+ const fetchUnit = fetchBuilder.build()
+
+ const mockFetch = vi
+ .spyOn(global, 'fetch')
+ .mockImplementation(async (req) => {
+ if (req instanceof Request) {
+ expect(req.headers.get('Authorization')).toBe(TOKEN)
+ } else {
+ throw new Error('Expected a Request object')
+ }
+ return new Response('OK', { status: 200 })
+ })
+
+ await fetchUnit.query()
+
+ expect(mockFetch).toHaveBeenCalledOnce()
+ mockFetch.mockRestore()
+ })
+
+ it('should run middleware and modify the response', async () => {
+ const middleware = new f.Middleware()
+
+ middleware.use(async (req, next) => {
+ const response = await next(req)
+ response.headers.set('X-Middleware-Handled', 'true')
+ return response
+ })
+
+ const fetchUnit = f
+ .builder()
+ .def_method('GET')
+ .def_url('https://api.com')
+ .def_middleware(middleware.procedures[0]!)
+ .def_response(async ({ response }) => {
+ expect(response.headers.get('X-Middleware-Handled')).toBe(
+ 'true'
+ )
+ return response.text()
+ })
+ .build()
+
+ const mockFetch = vi
+ .spyOn(global, 'fetch')
+ .mockImplementation(async () => new Response('OK'))
+
+ await fetchUnit.query()
+ expect(mockFetch).toHaveBeenCalledOnce()
+ mockFetch.mockRestore()
+ })
+})
diff --git a/packages/fetch/src/__tests__/middleware.test.ts b/packages/fetch/src/__tests__/middleware.test.ts
index 17274de..1e692e9 100644
--- a/packages/fetch/src/__tests__/middleware.test.ts
+++ b/packages/fetch/src/__tests__/middleware.test.ts
@@ -1,41 +1,36 @@
import { describe, expect, it } from 'vitest'
-import { Middleware } from '../utils/middleware'
+import { f } from '..'
import { label } from './utils/test.label'
describe(label.unit('middleware'), () => {
- it(label.case('should add middleware'), () => {
- const middleware = new Middleware<{ counter: number }, { b: string }>()
+ it(label.case('should execute middleware in order'), async () => {
+ const middleware = new f.Middleware()
+ const executionOrder: number[] = []
- let counter = 0
- middleware.use([
- ({ next }) => {
- counter++
+ middleware.use(async (req, next) => {
+ executionOrder.push(1)
+ const response = await next(req)
+ executionOrder.push(6)
+ return response
+ })
- next({
- req: { counter },
- })
- },
- ({ next }) => {
- counter++
+ middleware.use(async (req, next) => {
+ executionOrder.push(2)
+ const response = await next(req)
+ executionOrder.push(5)
+ return response
+ })
- next({
- req: { counter },
- res: {
- b: 'love',
- },
- })
- },
- ({ next }) => {
- counter++
+ middleware.use(async (req, next) => {
+ executionOrder.push(3)
+ const response = await next(req)
+ executionOrder.push(4)
+ return response
+ })
- next({
- req: { counter },
- })
- },
- ])
+ const mockFetcher = async (req: Request) => new Response('ok')
+ await middleware.execute(new Request('https://test.com'), mockFetcher)
- middleware.execute({ counter }, { b: '2' })
-
- expect(counter).toBe(3)
+ expect(executionOrder).toEqual([1, 2, 3, 4, 5, 6])
})
})
diff --git a/packages/fetch/src/__tests__/unit.test.ts b/packages/fetch/src/__tests__/unit.test.ts
index c8a4323..a9e772e 100644
--- a/packages/fetch/src/__tests__/unit.test.ts
+++ b/packages/fetch/src/__tests__/unit.test.ts
@@ -3,8 +3,8 @@ import { HttpResponse, http } from 'msw'
import { setupServer } from 'msw/node'
import { TypeEqual, expectType } from 'ts-expect'
import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'
+import { f } from '..'
import { FetchPathParamsError, FetchResponseError } from '../core/error'
-import { FetchBuilder } from '../core/fetcher'
import { FetchUnit, type InferFetchUnit } from '../core/fetcher/unit'
import { label } from './utils/test.label'
@@ -34,9 +34,7 @@ const apiServer = setupServer(
})
}),
- http.get<{
- id: string
- }>(`${BASE_URL}/books/:id`, ({ params, request }) => {
+ http.get(`${BASE_URL}/books/:id`, ({ params, request }) => {
const id = params.id
const searchParams = new URL(request.url).searchParams
const name = searchParams.get('name')
@@ -50,6 +48,14 @@ const apiServer = setupServer(
status: 'success',
})
}),
+
+ http.get('https://unknown.com/', async () => {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve(HttpResponse.json({}))
+ }, 15)
+ })
+ }),
]
)
@@ -59,71 +65,58 @@ afterEach(() => apiServer.resetHandlers())
describe('FetchUnit', () => {
it(label.case('should CREATE a new instance'), () => {
- const fetchUnit = FetchBuilder.Create().build()
+ const fetchUnit = f.builder().build()
expect(fetchUnit).toBeInstanceOf(FetchUnit)
})
it(label.case('should SET fetch error procedure'), () => {
- const fetchUnit = FetchBuilder.Create()
- const result = fetchUnit
- .def_fetch_err_handler(({ error, status }) => {
- // eslint-disable-next-line no-console
- console.error(error, status)
- })
- .def_fetch_err_handler(({ error, status }) => {
- // eslint-disable-next-line no-console
- console.error(error, status)
- })
+ const fetchUnit = f.builder()
+ const result = fetchUnit.def_fetch_err_handler(({ error, status }) => {
+ // eslint-disable-next-line no-console
+ console.error(error, status)
+ })
- expect(fetchUnit).toBe(result)
+ expect(fetchUnit).not.toBe(result)
+ expect(fetchUnit.fetchErrorProcedure.procedures).toHaveLength(0)
+ expect(result.fetchErrorProcedure.procedures).toHaveLength(1)
})
it(label.case('should SET unknown error procedure'), () => {
- const fetchUnit = FetchBuilder.Create()
- const result = fetchUnit
- .def_unknown_err_handler(({ error }) => {
- // eslint-disable-next-line no-console
- console.error(error)
- })
- .def_unknown_err_handler(({ error }) => {
- // eslint-disable-next-line no-console
- console.error(error)
- })
- expect(fetchUnit).toBe(result)
+ const fetchUnit = f.builder()
+ const result = fetchUnit.def_unknown_err_handler(({ error }) => {
+ // eslint-disable-next-line no-console
+ console.error(error)
+ })
+
+ expect(fetchUnit).not.toBe(result)
+ expect(fetchUnit.unknownErrorProcedure.procedures).toHaveLength(0)
+ expect(result.unknownErrorProcedure.procedures).toHaveLength(1)
})
it(label.case('should SET finally procedure'), () => {
- const fetchUnit = FetchBuilder.Create()
- const result = fetchUnit
- .def_final_handler(({ headers }) => {
- // eslint-disable-next-line no-console
- console.log('HEADERS', headers)
- })
- .def_final_handler((info) => {
- // eslint-disable-next-line no-console
- console.log('FETCH_INFO', info)
- })
- expect(fetchUnit).toBe(result)
+ const fetchUnit = f.builder()
+ const result = fetchUnit.def_final_handler((info) => {
+ // eslint-disable-next-line no-console
+ console.log('FETCH_INFO', info)
+ })
+
+ expect(fetchUnit).not.toBe(result)
+ expect(fetchUnit.finallyProcedure.procedures).toHaveLength(0)
+ expect(result.finallyProcedure.procedures).toHaveLength(1)
})
it(label.case('should SET request procedure'), () => {
- const fetchUnit = FetchBuilder.Create()
- const result = fetchUnit
- .def_request_handler(({ request, queryOptions }) => {
- // eslint-disable-next-line no-console
- console.log('REQUEST', request, queryOptions)
- return request
- })
- .def_request_handler(({ request }) => {
- request.headers.set('Authorization', 'Bearer token')
- return request
- })
+ const fetchUnit = f.builder()
+ const result = fetchUnit.def_request_handler(({ request }) => {
+ request.headers.set('Authorization', 'Bearer token')
+ return request
+ })
- expect(fetchUnit).toBe(result)
+ expect(fetchUnit).not.toBe(result)
})
it(label.case('should SET json mode for automatic parsing'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const result = fetchUnit.def_json().build()
type InjectedFetchUnit = FetchUnit<
@@ -142,77 +135,88 @@ describe('FetchUnit', () => {
})
it(label.case('should SET credentials'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const credentials = 'same-origin'
const result = fetchUnit.def_default_credentials(credentials)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultCredentials).toBe(credentials)
})
it(label.case('should SET redirect'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const redirect = 'follow'
const result = fetchUnit.def_default_redirect(redirect)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultRedirect).toBe(redirect)
})
it(label.case('should SET referrer'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const referrer = 'client'
const result = fetchUnit.def_default_referrer(referrer)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultReferrer).toBe(referrer)
})
it(label.case('should SET referrer policy'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const referrerPolicy = 'no-referrer'
const result = fetchUnit.def_default_referrer_policy(referrerPolicy)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultReferrerPolicy).toBe(referrerPolicy)
})
it(label.case('should SET integrity'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const integrity = 'sha256-abcde'
const result = fetchUnit.def_default_integrity(integrity)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultIntegrity).toBe(integrity)
})
it(label.case('should SET keepalive'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const keepalive = true
const result = fetchUnit.def_default_keepalive(keepalive)
- expect(fetchUnit).toBe(result)
- })
- it(label.case('should SET signal'), () => {
- const fetchUnit = FetchBuilder.Create()
- const controller = new AbortController()
- const result = fetchUnit.def_default_signal(controller.signal)
- expect(fetchUnit).toBe(result)
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultKeepalive).toBe(keepalive)
})
it(label.case('should SET window'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const window = null
const result = fetchUnit.def_default_window(window)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultWindow).toBe(window)
})
it(label.case('should SET mode'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const mode = 'cors'
const result = fetchUnit.def_default_mode(mode)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultMode).toBe(mode)
})
it(label.case('should SET cache'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const cache = 'default'
const result = fetchUnit.def_default_cache(cache)
- expect(fetchUnit).toBe(result)
+
+ expect(fetchUnit).not.toBe(result)
+ expect(result.$store.defaultCache).toBe(cache)
})
it(label.case('should SET safe mode'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const result = fetchUnit.def_query_mode('not_throw').build()
type InjectedFetchUnit = FetchUnit<
@@ -231,7 +235,7 @@ describe('FetchUnit', () => {
})
it(label.case('should DEFINE search params shape'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const SearchParams = t
.object({
name: t.string,
@@ -261,7 +265,7 @@ describe('FetchUnit', () => {
})
it(label.case('should DEFINE body shape'), () => {
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f.builder()
const BookRequest = t.object({
name: t.string,
category: t.string,
@@ -309,7 +313,8 @@ describe('FetchUnit', () => {
},
}))
- const postDynamicUnit = FetchBuilder.Create()
+ const postDynamicUnit = f
+ .builder()
.def_method('GET')
// DYNAMIC path params: $id
.def_url(`${BASE_URL}/books/$id`)
@@ -317,7 +322,7 @@ describe('FetchUnit', () => {
.def_default_referrer('about:client')
.def_json()
.def_searchparams(SearchParams.parse)
- .def_response(({ json }) => BookResponse.parse(json))
+ .def_response(async ({ json }) => BookResponse.parse(await json()))
.build()
const searchParams = {
@@ -345,7 +350,7 @@ describe('FetchUnit', () => {
it(
label.case('should DEFINE response shape [json mode - activated]'),
() => {
- const fetchUnit = FetchBuilder.Create().def_json()
+ const fetchUnit = f.builder().def_json()
const Product = t.object({
name: t.string,
@@ -375,7 +380,7 @@ describe('FetchUnit', () => {
it(
label.case('should DEFINE response shape [json mode - deactivated]'),
async () => {
- const fetchUnit = FetchBuilder.Create().def_json()
+ const fetchUnit = f.builder().def_json()
const Product = t.object({
name: t.string,
@@ -384,7 +389,7 @@ describe('FetchUnit', () => {
const result = fetchUnit
.def_response(async ({ json }) => {
// Manual parsing for json response
- const product = Product.parse(json)
+ const product = Product.parse(await json())
return product
})
.build()
@@ -417,14 +422,15 @@ describe('FetchUnit', () => {
status: t.union(t.literal('success'), t.literal('error')),
'message?': t.string,
})
- const postUnit = FetchBuilder.Create()
+ const postUnit = f
+ .builder()
.def_query_mode('throw')
.def_method('POST')
.def_default_referrer('about:client')
.def_url(`${BASE_URL}/books`)
.def_json()
.def_body(Body.parse)
- .def_response(({ json }) => ApiResponse.parse(json))
+ .def_response(async ({ json }) => ApiResponse.parse(await json()))
.build()
type PostUnit = FetchUnit<
@@ -493,7 +499,8 @@ describe('FetchUnit', () => {
>('FormData', (e) => e instanceof FormData)
.transform(toJson)
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f
+ .builder()
.def_query_mode('throw')
.def_method('POST')
.def_default_referrer('about:client')
@@ -523,7 +530,8 @@ describe('FetchUnit', () => {
let isFetchErrorHandled = false
let errorStatusCode: number | undefined
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f
+ .builder()
.def_query_mode('throw')
.def_method('GET')
.def_default_referrer('about:client')
@@ -564,13 +572,13 @@ describe('FetchUnit', () => {
it(label.case('should HANDLE unknown error & handled once'), async () => {
let errorHandled = false
- const fetchUnit = FetchBuilder.Create()
+ const fetchUnit = f
+ .builder()
.def_query_mode('throw')
.def_method('GET')
.def_default_referrer('about:client')
.def_url('https://unknown.com')
.def_json()
- .def_query_mode('not_throw')
.def_unknown_err_handler(() => {
// ERROR_HANDLED should be called only once
errorHandled = true
@@ -582,23 +590,44 @@ describe('FetchUnit', () => {
})
.build()
- try {
- await fetchUnit.query()
- } catch (error) {
- expect(errorHandled).toBe(true)
- expect(error).toBeInstanceOf(Error)
- errorHandled = false
- }
+ await fetchUnit.query()
+ expect(errorHandled).toBe(false)
+ })
- try {
- await fetchUnit.query()
- } catch (error) {
- expect(errorHandled).toBe(false)
- expect(error).toBeInstanceOf(Error)
- }
+ it(label.case('should ABORT request with timeout'), async () => {
+ const fetchUnit = f.builder().def_url('https://unknown.com').build()
+ await expect(fetchUnit.query({ timeout: 1 })).rejects.toThrowError(
+ 'The operation was aborted due to timeout'
+ )
+ })
- const thisWillNotThrowError = await fetchUnit.query()
- expect(thisWillNotThrowError).toBeUndefined()
+ it(label.case('should ABORT request with single signal'), async () => {
+ const fetchUnit = f.builder().def_url('https://unknown.com').build()
+ const controller = new AbortController()
+ setTimeout(() => controller.abort(), 1)
+ await expect(
+ fetchUnit.query({ signal: controller.signal })
+ ).rejects.toThrowError('This operation was aborted')
+ })
+
+ it(label.case('should ABORT request with multiple signals'), async () => {
+ const fetchUnit = f.builder().def_url('https://unknown.com').build()
+ const controller1 = new AbortController()
+ const controller2 = new AbortController()
+ setTimeout(() => controller1.abort(), 1)
+ await expect(
+ fetchUnit.query({
+ signal: [controller1.signal, controller2.signal],
+ })
+ ).rejects.toThrowError('This operation was aborted')
+ })
+
+ it(label.case('should ABORT request with timeout and signal'), async () => {
+ const fetchUnit = f.builder().def_url('https://unknown.com').build()
+ const controller = new AbortController()
+ await expect(
+ fetchUnit.query({ timeout: 1, signal: controller.signal })
+ ).rejects.toThrowError('The operation was aborted due to timeout')
})
it(
@@ -607,7 +636,7 @@ describe('FetchUnit', () => {
),
() => {
try {
- FetchBuilder.Create().def_url(`${BASE_URL}/books/_$id`).build()
+ f.builder().def_url(`${BASE_URL}/books/_$id`).build()
} catch (e) {
expect(e).toBeInstanceOf(FetchPathParamsError)
}
diff --git a/packages/fetch/src/core/error/index.ts b/packages/fetch/src/core/error/index.ts
index a84e13e..1ad7495 100644
--- a/packages/fetch/src/core/error/index.ts
+++ b/packages/fetch/src/core/error/index.ts
@@ -39,7 +39,7 @@ export class FetchSearchParamsError extends FetchError {
cause?: unknown
) {
super(
- 'SearchParams',
+ 'Search Params',
`${FetchError.formatJson(searchParams)} at ${basePath}`,
undefined,
cause
@@ -54,7 +54,7 @@ export class FetchPathParamsError extends FetchError {
cause?: unknown
) {
super(
- 'PathParams',
+ 'Path Params',
`${FetchError.formatJson(pathParams)} at ${basePath}`,
undefined,
cause
@@ -62,15 +62,6 @@ export class FetchPathParamsError extends FetchError {
}
}
-export class FetchBodyError extends FetchError {
- public constructor(
- public readonly body: unknown,
- cause?: unknown
- ) {
- super('Body', FetchError.formatJson(body), undefined, cause)
- }
-}
-
export type FetchErrorCode =
| 400 // Bad Request
| 401 // Unauthorized
@@ -115,7 +106,7 @@ export type FetchErrorCode =
export class FetchResponseError extends FetchError {
private static statusMessage(response: Response): string {
- return `Error_code - ${response.status}\nâş ${response.statusText}`
+ return `Error Code - ${response.status}\nâş ${response.statusText}`
}
public status: FetchErrorCode
diff --git a/packages/fetch/src/core/fetcher/builder.ts b/packages/fetch/src/core/fetcher/builder.ts
index 69157ae..4e7bdab 100644
--- a/packages/fetch/src/core/fetcher/builder.ts
+++ b/packages/fetch/src/core/fetcher/builder.ts
@@ -1,6 +1,12 @@
+import { Middleware, MiddlewareFunction } from '../../utils/middleware'
import { Procedure, ProcedureSet } from '../../utils/procedure'
import type { ConcreteBoolean, JSON } from '../../utils/types'
-import { FetchErrorCode, FetchResponseError } from '../error'
+import {
+ FetchErrorCode,
+ FetchPathParamsError,
+ FetchResponseError,
+ FetchSearchParamsError,
+} from '../error'
import {
DefaultFetchModeOptions,
FetchMethod,
@@ -11,6 +17,7 @@ import {
FetchQueryOptions,
FetchSearchParamsShape,
FetchUnitRequestHandler,
+ Param,
} from './core.type'
import { FetchOptionStore } from './fetch.option'
import { FetchUnit } from './unit'
@@ -24,9 +31,15 @@ export class FetchBuilder<
$ModeOptions extends FetchModeOptionsShape = DefaultFetchModeOptions,
const $BaseUrl extends string = '',
> {
- public copy(
- newStore: FetchOptionStore
- ): FetchBuilder<
+ private _clone<
+ $Method extends FetchMethodString,
+ $PathParams extends FetchPathParamsShape,
+ $SearchParams extends FetchSearchParamsShape,
+ $Body,
+ $Response,
+ $ModeOptions extends FetchModeOptionsShape,
+ $BaseUrl extends string,
+ >(): FetchBuilder<
$Method,
$PathParams,
$SearchParams,
@@ -35,7 +48,7 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- const copy = new FetchBuilder<
+ const newBuilder = new FetchBuilder<
$Method,
$PathParams,
$SearchParams,
@@ -44,19 +57,30 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
>()
- copy._store = newStore
- copy.def_fetch_err_handler(this.fetchErrorProcedure.executor)
- copy.def_unknown_err_handler(this.unknownErrorProcedure.executor)
- copy.def_final_handler(this.finallyProcedure.executor)
- copy.def_response(this.responseHandler)
- copy.def_request_handler(this.requestHandler)
- copy.def_searchparams(this.searchParamsValidator)
- copy.def_query_mode(this.isSafeMode ? 'not_throw' : 'throw')
- this.isJsonMode && copy.def_json()
-
- return copy
+
+ newBuilder._store = this._store.copy()
+ ;(newBuilder.fetchErrorProcedure as any) =
+ this.fetchErrorProcedure.copy()
+ ;(newBuilder.unknownErrorProcedure as any) =
+ this.unknownErrorProcedure.copy()
+ ;(newBuilder.finallyProcedure as any) = this.finallyProcedure.copy()
+ ;(newBuilder.middleware as any) = this.middleware.copy()
+
+ newBuilder.bodyValidator = this.bodyValidator as any
+ newBuilder.responseHandler = this.responseHandler as any
+ newBuilder.requestHandler = this.requestHandler as any
+ newBuilder.searchParamsValidator = this.searchParamsValidator as any
+
+ newBuilder.isJsonMode = this.isJsonMode
+ newBuilder.isSafeMode = this.isSafeMode
+
+ return newBuilder
}
+ /**
+ * Build fetch unit
+ * @returns Fetch Unit
+ */
public build(): FetchUnit<
$Method,
$PathParams,
@@ -77,7 +101,7 @@ export class FetchBuilder<
>(this.$store, this)
}
- public static Create<
+ public static new<
FetchMethod extends FetchMethodString,
FetchPathParams extends FetchPathParamsShape = unknown,
FetchSearchParams extends FetchSearchParamsShape = unknown,
@@ -126,8 +150,17 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this._store.method = method
- return this
+ const newBuilder = this._clone<
+ Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder._store.method = method
+ return newBuilder
}
public def_url(
url: Url
@@ -140,59 +173,154 @@ export class FetchBuilder<
$ModeOptions,
Url
> {
- this.$store.defaultUrl = url
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ Url
+ >()
+ newBuilder.$store.defaultUrl = url
+ return newBuilder
}
public def_default_cache(cache: FetchOption['cache']) {
- this.$store.defaultCache = cache
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultCache = cache
+ return newBuilder
}
public def_default_mode(mode: FetchOption['mode']) {
- this.$store.defaultMode = mode
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultMode = mode
+ return newBuilder
}
public def_default_credentials(credentials: FetchOption['credentials']) {
- this.$store.defaultCredentials = credentials
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultCredentials = credentials
+ return newBuilder
}
public def_default_redirect(redirect: FetchOption['redirect']) {
- this.$store.defaultRedirect = redirect
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultRedirect = redirect
+ return newBuilder
}
public def_default_referrer(referrer: FetchOption['referrer']) {
- this.$store.defaultReferrer = referrer
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultReferrer = referrer
+ return newBuilder
}
public def_default_referrer_policy(
referrerPolicy: FetchOption['referrerPolicy']
) {
- this.$store.defaultReferrerPolicy = referrerPolicy
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultReferrerPolicy = referrerPolicy
+ return newBuilder
}
public def_default_integrity(integrity: FetchOption['integrity']) {
- this.$store.defaultIntegrity = integrity
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultIntegrity = integrity
+ return newBuilder
}
public def_default_keepalive(keepalive: FetchOption['keepalive']) {
- this.$store.defaultKeepalive = keepalive
- return this
- }
- public def_default_signal(signal: FetchOption['signal']) {
- this.$store.defaultSignal = signal
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultKeepalive = keepalive
+ return newBuilder
}
public def_default_window(window: FetchOption['window']) {
- this.$store.defaultWindow = window
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultWindow = window
+ return newBuilder
}
public def_default_priority(priority: FetchOption['priority']) {
- this.$store.defaultPriority = priority
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.$store.defaultPriority = priority
+ return newBuilder
}
- public searchParamsValidator: (
+ public searchParamsValidator!: (
searchParams: FetchSearchParamsShape
- ) => $SearchParams = (s) => s as $SearchParams
+ ) => $SearchParams
public def_searchparams(
searchParamsValidator: (
params: FetchSearchParamsShape
@@ -206,8 +334,7 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.searchParamsValidator = searchParamsValidator
- return this as unknown as FetchBuilder<
+ const newBuilder = this._clone<
$Method,
$PathParams,
FetchSearchParamsInjection,
@@ -215,7 +342,9 @@ export class FetchBuilder<
$Response,
$ModeOptions,
$BaseUrl
- >
+ >()
+ newBuilder.searchParamsValidator = searchParamsValidator
+ return newBuilder
}
public readonly fetchErrorProcedure: ProcedureSet<{
@@ -237,8 +366,17 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.fetchErrorProcedure.use(fetchErrorProcedure, once)
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.fetchErrorProcedure.use(fetchErrorProcedure, once)
+ return newBuilder
}
public readonly unknownErrorProcedure: ProcedureSet<{
@@ -258,8 +396,17 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.unknownErrorProcedure.use(unknownErrorProcedure, once)
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.unknownErrorProcedure.use(unknownErrorProcedure, once)
+ return newBuilder
}
public readonly finallyProcedure: ProcedureSet<
@@ -279,11 +426,20 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.finallyProcedure.use(finallyHandler, once)
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.finallyProcedure.use(finallyHandler, once)
+ return newBuilder
}
- public bodyValidator: (body: unknown) => $Body = (s) => s as $Body
+ public bodyValidator!: (body: unknown) => $Body
/**
* @description Validate body data using any schema validation library
* @param bodyValidator validate body data, return parsed body data
@@ -293,13 +449,13 @@ export class FetchBuilder<
* import { z } from "zod"
*
* const BodyZod = z.object({ name: z.string() })
- * const fetchUnit = f.unit().def_body(BodyZod.parse)
+ * const fetchUnit = f.builder().def_body(BodyZod.parse)
*
* // Example using metal-box/type
* import { t } from "@metal-box/type"
*
* const BodyMetal = t.object({ name: t.string })
- * const fetchUnit2 = f.unit().def_body(BodyMetal.parse)
+ * const fetchUnit2 = f.builder().def_body(BodyMetal.parse)
* ```
*/
public def_body(
@@ -313,8 +469,7 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.bodyValidator = bodyValidator
- return this as unknown as FetchBuilder<
+ const newBuilder = this._clone<
$Method,
$PathParams,
$SearchParams,
@@ -322,14 +477,16 @@ export class FetchBuilder<
$Response,
$ModeOptions,
$BaseUrl
- >
+ >()
+ newBuilder.bodyValidator = bodyValidator
+ return newBuilder
}
public responseHandler: (
responseArgument: $ModeOptions['isJsonMode'] extends true
? {
response: Response
- json: JSON
+ json: () => Promise
}
: {
response: Response
@@ -339,12 +496,12 @@ export class FetchBuilder<
* @description Define response data
* @param responseHandler validate response data, return processed response data
*/
- public def_response(
+ public def_response(
responseHandler: (
responseArgument: $ModeOptions['isJsonMode'] extends true
? {
response: Response
- json: JSON
+ json: () => Promise
}
: {
response: Response
@@ -359,8 +516,7 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.responseHandler = responseHandler
- return this as unknown as FetchBuilder<
+ const newBuilder = this._clone<
$Method,
$PathParams,
$SearchParams,
@@ -368,14 +524,16 @@ export class FetchBuilder<
Awaited,
$ModeOptions,
$BaseUrl
- >
+ >()
+ newBuilder.responseHandler = responseHandler as any
+ return newBuilder
}
public requestHandler: FetchUnitRequestHandler<
$PathParams,
$SearchParams,
$Body
- > = (s) => s.request
+ > = (s) => s.request as any
/**
* @description Handle request data
* @param requestHandler handle request data, return processed request data
@@ -395,8 +553,32 @@ export class FetchBuilder<
$ModeOptions,
$BaseUrl
> {
- this.requestHandler = requestHandler
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.requestHandler = requestHandler
+ return newBuilder
+ }
+
+ public middleware: Middleware = new Middleware()
+ public def_middleware(...middleware: Array): this {
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ $ModeOptions,
+ $BaseUrl
+ >()
+ newBuilder.middleware.use(middleware)
+ return newBuilder as this
}
public isJsonMode: ConcreteBoolean = false
@@ -412,22 +594,7 @@ export class FetchBuilder<
},
$BaseUrl
> {
- if (this.isJsonMode)
- return this as unknown as FetchBuilder<
- $Method,
- $PathParams,
- $SearchParams,
- $Body,
- $Response,
- {
- isJsonMode: true
- isSafeMode: $ModeOptions['isSafeMode']
- },
- $BaseUrl
- >
-
- this.isJsonMode = true
- return this as unknown as FetchBuilder<
+ const newBuilder = this._clone<
$Method,
$PathParams,
$SearchParams,
@@ -438,7 +605,9 @@ export class FetchBuilder<
isSafeMode: $ModeOptions['isSafeMode']
},
$BaseUrl
- >
+ >()
+ newBuilder.isJsonMode = true
+ return newBuilder
}
public isSafeMode: ConcreteBoolean = false
@@ -456,8 +625,100 @@ export class FetchBuilder<
},
$BaseUrl
> {
- this.isSafeMode = queryMode === 'not_throw'
- return this
+ const newBuilder = this._clone<
+ $Method,
+ $PathParams,
+ $SearchParams,
+ $Body,
+ $Response,
+ {
+ isJsonMode: $ModeOptions['isJsonMode']
+ isSafeMode: QueryMode extends 'throw' ? false : true
+ },
+ $BaseUrl
+ >()
+ newBuilder.isSafeMode = queryMode === 'not_throw'
+ return newBuilder
+ }
+
+ public buildPathParams(baseUrl: string, pathParams?: $PathParams): string {
+ if (!pathParams) return baseUrl
+
+ try {
+ const baseUrlObject: URL = new URL(baseUrl)
+ const dynamicParamsProcessedPath: string = baseUrlObject.pathname
+ .split('/')
+ .filter(Boolean)
+ .reduce>((paramList, params) => {
+ const isDynamicParam: boolean = params.startsWith('$')
+
+ if (params.includes('$') && !isDynamicParam)
+ throw new SyntaxError(
+ `Invalid path params, ${params}\nDynamic Params should be started with $, ex) $id, $name\nCheck your base url: ${baseUrl}`
+ )
+
+ if (isDynamicParam) {
+ const paramKey: string = params.slice(1)
+ const dynamicParam: Param | undefined = (
+ pathParams as Record
+ )?.[paramKey]
+
+ if (
+ !dynamicParam ||
+ (typeof dynamicParam !== 'number' &&
+ typeof dynamicParam !== 'string')
+ )
+ return paramList
+
+ paramList.push(String(dynamicParam))
+ return paramList
+ }
+
+ paramList.push(params)
+ return paramList
+ }, [])
+ .join('/')
+
+ baseUrlObject.pathname = dynamicParamsProcessedPath
+ return baseUrlObject.toString()
+ } catch (e) {
+ throw new FetchPathParamsError(baseUrl.toString(), pathParams, e)
+ }
+ }
+
+ public buildSearchParams(
+ baseUrl: string,
+ searchParams?: $SearchParams
+ ): string {
+ if (!searchParams) return baseUrl
+
+ try {
+ const validatedSearchParams: Record> =
+ this.searchParamsValidator(searchParams) as Record<
+ string,
+ Param | Array
+ >
+
+ const baseUrlObject: URL = new URL(baseUrl)
+
+ Object.entries(validatedSearchParams).forEach(([key, value]) => {
+ if (Array.isArray(value)) {
+ value.forEach((v) => {
+ baseUrlObject.searchParams.append(key, v.toString())
+ })
+ } else {
+ baseUrlObject.searchParams.append(key, value.toString())
+ }
+ })
+
+ return baseUrlObject.toString()
+ } catch (e) {
+ throw new FetchSearchParamsError(
+ baseUrl.toString(),
+ searchParams,
+ e
+ )
+ }
}
}
@@ -487,4 +748,4 @@ export type DefaultFetchBuilderShape = FetchBuilder<
''
>
-export const unit = FetchBuilder.Create
+export const builder = FetchBuilder.new
diff --git a/packages/fetch/src/core/fetcher/core.type.ts b/packages/fetch/src/core/fetcher/core.type.ts
index 8767106..128700e 100644
--- a/packages/fetch/src/core/fetcher/core.type.ts
+++ b/packages/fetch/src/core/fetcher/core.type.ts
@@ -1,7 +1,7 @@
import type {
ConcreteBoolean,
IncludeString,
- OptionalAndNeverAtUnknown,
+ OmitNever,
} from '../../utils/types'
type BaseFetchOption = Required
@@ -169,9 +169,12 @@ type DefaultFetchModeOptions = {
isSafeMode: false
}
-type FetchUnitOption = Omit
+type FetchUnitOption = Omit<
+ FetchOption,
+ 'body' | 'method' | 'headers' | 'signal'
+>
type FetchQueryOptions =
- OptionalAndNeverAtUnknown<{
+ OmitNever<{
/**
* @description Path params
*/
@@ -193,6 +196,15 @@ type FetchQueryOptions =
* @description Fetch option
*/
options?: Partial
+ /**
+ * @description Timeout for request
+ * @example 1000 = `1000ms`
+ */
+ timeout?: number
+ /**
+ * @description `AbortSignal` for request
+ */
+ signal?: AbortSignal | AbortSignal[]
}
interface FetchQueryOptionsPartial<
@@ -205,6 +217,8 @@ interface FetchQueryOptionsPartial<
body?: FetchBody
options?: Partial
headers?: FetchHeader
+ timeout?: number
+ signal?: AbortSignal | AbortSignal[]
}
type FetchUnitRequestHandler =
diff --git a/packages/fetch/src/core/fetcher/fetch.option.ts b/packages/fetch/src/core/fetcher/fetch.option.ts
index 417f562..b063ef3 100644
--- a/packages/fetch/src/core/fetcher/fetch.option.ts
+++ b/packages/fetch/src/core/fetcher/fetch.option.ts
@@ -1,156 +1,14 @@
-import { IncludeString } from '../../utils/types'
-
-export type FetchUrl = Parameters[0]
-export type FetchOption = Required
-export type FetchMethod =
- | 'GET'
- | 'POST'
- | 'PUT'
- | 'DELETE'
- | 'PATCH'
- | 'CONNECT'
- | 'HEAD'
- | 'OPTIONS'
- | 'TRACE'
-export type FetchHeader = FetchOption['headers'] & {
- [key in FetchHeaderKeyString]?: string
-}
-export type FetchMethodString = FetchMethod | IncludeString
-
-type FetchHeaderKey =
- | 'Accept'
- | 'Accept-CH'
- | 'Accept-CH-Lifetime'
- | 'Accept-Charset'
- | 'Accept-Encoding'
- | 'Accept-Language'
- | 'Accept-Patch'
- | 'Accept-Post'
- | 'Accept-Ranges'
- | 'Access-Control-Allow-Credentials'
- | 'Access-Control-Allow-Headers'
- | 'Access-Control-Allow-Methods'
- | 'Access-Control-Allow-Origin'
- | 'Access-Control-Expose-Headers'
- | 'Access-Control-Max-Age'
- | 'Access-Control-Request-Headers'
- | 'Access-Control-Request-Method'
- | 'Age'
- | 'Allow'
- | 'Alt-Svc'
- | 'Alt-Used'
- | 'Authorization'
- | 'Cache-Control'
- | 'Clear-Site-Data'
- | 'Connection'
- | 'Content-DPR'
- | 'Content-Disposition'
- | 'Content-Encoding'
- | 'Content-Language'
- | 'Content-Length'
- | 'Content-Location'
- | 'Content-Range'
- | 'Content-Security-Policy'
- | 'Content-Security-Policy-Report-Only'
- | 'Content-Type'
- | 'Cookie'
- | 'Critical-CH'
- | 'Cross-Origin-Embedder-Policy'
- | 'Cross-Origin-Opener-Policy'
- | 'Cross-Origin-Resource-Policy'
- | 'DNT'
- | 'DPR'
- | 'Date'
- | 'Device-Memory'
- | 'Digest'
- | 'Downlink'
- | 'ECT'
- | 'ETag'
- | 'Early-Data'
- | 'Expect'
- | 'Expect-CT'
- | 'Expires'
- | 'Forwarded'
- | 'From'
- | 'Host'
- | 'If-Match'
- | 'If-Modified-Since'
- | 'If-None-Match'
- | 'If-Range'
- | 'If-Unmodified-Since'
- | 'Keep-Alive'
- | 'Large-Allocation'
- | 'Last-Modified'
- | 'Link'
- | 'Location'
- | 'Max-Forwards'
- | 'NEL'
- | 'Origin'
- | 'Origin-Agent-Cluster'
- | 'Permissions-Policy'
- | 'Pragma'
- | 'Proxy-Authenticate'
- | 'Proxy-Authorization'
- | 'RTT'
- | 'Range'
- | 'Referer'
- | 'Referrer-Policy'
- | 'Retry-After'
- | 'Save-Data'
- | 'Sec-CH-Prefers-Color-Scheme'
- | 'Sec-CH-Prefers-Reduced-Motion'
- | 'Sec-CH-Prefers-Reduced-Transparency'
- | 'Sec-CH-UA'
- | 'Sec-CH-UA-Arch'
- | 'Sec-CH-UA-Bitness'
- | 'Sec-CH-UA-Full-Version'
- | 'Sec-CH-UA-Full-Version-List'
- | 'Sec-CH-UA-Mobile'
- | 'Sec-CH-UA-Model'
- | 'Sec-CH-UA-Platform'
- | 'Sec-CH-UA-Platform-Version'
- | 'Sec-Fetch-Dest'
- | 'Sec-Fetch-Mode'
- | 'Sec-Fetch-Site'
- | 'Sec-Fetch-User'
- | 'Sec-GPC'
- | 'Sec-Purpose'
- | 'Sec-WebSocket-Accept'
- | 'Server'
- | 'Server-Timing'
- | 'Service-Worker-Navigation-Preload'
- | 'Set-Cookie'
- | 'Set-Login'
- | 'SourceMap'
- | 'Strict-Transport-Security'
- | 'Supports-Loading-Mode'
- | 'TE'
- | 'Timing-Allow-Origin'
- | 'Tk'
- | 'Trailer'
- | 'Transfer-Encoding'
- | 'Upgrade'
- | 'Upgrade-Insecure-Requests'
- | 'User-Agent'
- | 'Vary'
- | 'Via'
- | 'Viewport-Width'
- | 'WWW-Authenticate'
- | 'Want-Digest'
- | 'Warning'
- | 'Width'
- | 'X-Content-Type-Options'
- | 'X-DNS-Prefetch-Control'
- | 'X-Forwarded-For'
- | 'X-Forwarded-Host'
- | 'X-Forwarded-Proto'
- | 'X-Frame-Options'
- | 'X-XSS-Protection'
-type FetchHeaderKeyString = FetchHeaderKey | IncludeString
+import type {
+ FetchHeader,
+ FetchMethod,
+ FetchOption,
+ FetchUrl,
+} from './core.type'
export class FetchOptionStore {
public get options(): FetchOption {
return {
+ signal: null,
cache: this.cache,
body: this.body,
headers: this.headers,
@@ -161,7 +19,6 @@ export class FetchOptionStore {
referrerPolicy: this.referrerPolicy,
integrity: this.integrity,
keepalive: this.keepalive,
- signal: this.signal,
window: this.window,
priority: this.priority,
method: this.method,
@@ -169,23 +26,9 @@ export class FetchOptionStore {
}
public copy(): FetchOptionStore {
- const copy = new FetchOptionStore()
- copy.url = this.url
- copy.method = this.method
- copy.cache = this.cache
- copy.body = this.body
- copy.headers = this.headers
- copy.mode = this.mode
- copy.credentials = this.credentials
- copy.redirect = this.redirect
- copy.referrer = this.referrer
- copy.referrerPolicy = this.referrerPolicy
- copy.integrity = this.integrity
- copy.keepalive = this.keepalive
- copy.signal = this.signal
- copy.window = this.window
- copy.priority = this.priority
- return copy
+ const newStore = new FetchOptionStore()
+ Object.assign(newStore, this)
+ return newStore
}
/*
@@ -296,7 +139,7 @@ export class FetchOptionStore {
* Referrer
*/
private _referrer: FetchOption['referrer'] | null = null
- public defaultReferrer: FetchOption['referrer'] = 'client'
+ public defaultReferrer: FetchOption['referrer'] = 'about:client'
public get referrer(): FetchOption['referrer'] {
return this._referrer ?? this.defaultReferrer
}
@@ -341,18 +184,6 @@ export class FetchOptionStore {
this._keepalive = value
}
- /*
- * Signal
- */
- private _signal: FetchOption['signal'] | null = null
- public defaultSignal: FetchOption['signal'] = null
- public get signal(): FetchOption['signal'] {
- return this._signal ?? this.defaultSignal
- }
- public set signal(value: FetchOption['signal']) {
- this._signal = value
- }
-
/*
* Window
*/
diff --git a/packages/fetch/src/core/fetcher/unit.ts b/packages/fetch/src/core/fetcher/unit.ts
index eb89c2a..e551fa6 100644
--- a/packages/fetch/src/core/fetcher/unit.ts
+++ b/packages/fetch/src/core/fetcher/unit.ts
@@ -1,11 +1,5 @@
import type { ConcreteBoolean, JSON, OmitUnknown } from '../../utils/types'
-import {
- FetchBodyError,
- type FetchErrorCode,
- FetchPathParamsError,
- FetchResponseError,
- FetchSearchParamsError,
-} from '../error'
+import { type FetchErrorCode, FetchResponseError } from '../error'
import type { FetchBuilder } from './builder'
import type {
DefaultFetchModeOptions,
@@ -17,7 +11,6 @@ import type {
FetchQueryOptionsPartial,
FetchSearchParamsShape,
FetchUnitOption,
- Param,
} from './core.type'
import type { FetchOptionStore } from './fetch.option'
@@ -44,7 +37,25 @@ export class FetchUnit<
$ModeOptions,
$BaseUrl
>
- ) {}
+ ) {
+ this.copy = this.copy.bind(this)
+
+ this.set_options = this.set_options.bind(this)
+ this.set_cache = this.set_cache.bind(this)
+ this.set_credentials = this.set_credentials.bind(this)
+ this.set_redirect = this.set_redirect.bind(this)
+ this.set_referrer = this.set_referrer.bind(this)
+ this.set_referrer_policy = this.set_referrer_policy.bind(this)
+ this.set_integrity = this.set_integrity.bind(this)
+ this.set_keepalive = this.set_keepalive.bind(this)
+ this.set_window = this.set_window.bind(this)
+ this.set_mode = this.set_mode.bind(this)
+ this.set_priority = this.set_priority.bind(this)
+
+ this.getRequestURI = this.getRequestURI.bind(this)
+ this.createRequest = this.createRequest.bind(this)
+ this.query = this.query.bind(this)
+ }
public copy(): FetchUnit<
$Method,
@@ -56,7 +67,7 @@ export class FetchUnit<
$BaseUrl
> {
const newStore = this.$store.copy()
- return new FetchUnit(newStore, this.$builder.copy(newStore))
+ return new FetchUnit(newStore, this.$builder)
}
public set_options(
@@ -82,7 +93,6 @@ export class FetchUnit<
options.referrer && copyUnit.set_referrer(options.referrer)
options.referrerPolicy &&
copyUnit.set_referrer_policy(options.referrerPolicy)
- options.signal && copyUnit.set_signal(options.signal)
options.window && copyUnit.set_window(options.window)
return copyUnit
@@ -193,21 +203,6 @@ export class FetchUnit<
copyUnit.$store.keepalive = keepalive
return copyUnit
}
- public set_signal(
- signal: FetchOption['signal']
- ): FetchUnit<
- $Method,
- $PathParams,
- $SearchParams,
- $Body,
- $Response,
- $ModeOptions,
- $BaseUrl
- > {
- const copyUnit = this.copy()
- copyUnit.$store.signal = signal
- return copyUnit
- }
public set_window(
window: FetchOption['window']
): FetchUnit<
@@ -254,93 +249,13 @@ export class FetchUnit<
return copyUnit
}
- private buildPathParams(baseUrl: string, pathParams?: $PathParams): string {
- if (!pathParams) return baseUrl
-
- try {
- const baseUrlObject: URL = new URL(baseUrl)
- const dynamicParamsProcessedPath: string = baseUrlObject.pathname
- .split('/')
- .filter(Boolean)
- .reduce>((paramList, params) => {
- const isDynamicParam: boolean = params.startsWith('$')
-
- if (params.includes('$') && !isDynamicParam)
- throw new SyntaxError(
- `Invalid path params, ${params}\nDynamic Params should be started with $, ex) $id, $name\nCheck your base url: ${baseUrl}`
- )
-
- if (isDynamicParam) {
- const paramKey: string = params.slice(1)
- const dynamicParam: Param | undefined = (
- pathParams as Record
- )?.[paramKey]
-
- if (
- !dynamicParam ||
- (typeof dynamicParam !== 'number' &&
- typeof dynamicParam !== 'string')
- )
- return paramList
-
- paramList.push(String(dynamicParam))
- return paramList
- }
-
- paramList.push(params)
- return paramList
- }, [])
- .join('/')
-
- baseUrlObject.pathname = dynamicParamsProcessedPath
- return baseUrlObject.toString()
- } catch (e) {
- throw new FetchPathParamsError(baseUrl.toString(), pathParams, e)
- }
- }
-
- private buildSearchParams(
- baseUrl: string,
- searchParams?: $SearchParams
- ): string {
- if (!searchParams) return baseUrl
-
- try {
- const validatedSearchParams: Record> =
- this.$builder.searchParamsValidator(searchParams) as Record<
- string,
- Param | Array
- >
-
- const baseUrlObject: URL = new URL(baseUrl)
-
- Object.entries(validatedSearchParams).forEach(([key, value]) => {
- if (Array.isArray(value)) {
- value.forEach((v) => {
- baseUrlObject.searchParams.append(key, v.toString())
- })
- } else {
- baseUrlObject.searchParams.append(key, value.toString())
- }
- })
-
- return baseUrlObject.toString()
- } catch (e) {
- throw new FetchSearchParamsError(
- baseUrl.toString(),
- searchParams,
- e
- )
- }
- }
-
private getRequestURI(
pathParams?: $PathParams,
searchParams?: $SearchParams
): string {
const baseUrl = this.$store.url
- const requestURI = this.buildSearchParams(
- this.buildPathParams(
+ const requestURI = this.$builder.buildSearchParams(
+ this.$builder.buildPathParams(
baseUrl instanceof Request ? baseUrl.url : baseUrl.toString(),
pathParams
),
@@ -362,9 +277,6 @@ export class FetchUnit<
try {
const serializedJson: string = JSON.stringify(targetBody)
- const isJson: boolean = serializedJson !== '{}'
- if (!isJson) throw new FetchBodyError(targetBody)
-
return serializedJson
} catch (e) {
throw new SyntaxError(
@@ -383,24 +295,48 @@ export class FetchUnit<
$Body
>
): Request {
- const validatedBody: BodyInit | null = queryOptions?.body
+ // Generate body
+ const body: BodyInit | null = queryOptions?.body
? this.getValidBody(this.$builder.bodyValidator(queryOptions?.body))
: this.$store.body
- const requestHeaders: HeadersInit = queryOptions?.headers
- ? {
- ...this.$store.headers,
- ...(queryOptions.headers as Record),
- }
- : this.$store.headers
+ // Generate headers
+ const headers: Headers = new Headers(
+ queryOptions?.headers
+ ? {
+ ...this.$store.headers,
+ ...(queryOptions.headers as Record),
+ }
+ : this.$store.headers
+ )
+
+ // Validate headers
+ if (this.$builder.isJsonMode && !headers.has('Content-Type')) {
+ headers.set('Content-Type', 'application/json')
+ }
+
+ // Attaching signals
+ const signals: AbortSignal[] = []
+ if (queryOptions?.timeout) {
+ signals.push(AbortSignal.timeout(queryOptions.timeout))
+ }
+ if (queryOptions?.signal) {
+ if (Array.isArray(queryOptions.signal)) {
+ signals.push(...queryOptions.signal)
+ } else {
+ signals.push(queryOptions.signal)
+ }
+ }
+ // Create request
const request: Request = new Request(
this.getRequestURI(queryOptions?.path, queryOptions?.search),
{
...this.$store.options,
...queryOptions?.options,
- headers: requestHeaders,
- body: validatedBody,
+ headers,
+ body: body,
+ signal: signals.length > 0 ? AbortSignal.any(signals) : null,
}
)
@@ -427,20 +363,22 @@ export class FetchUnit<
> {
const request: Request = this.createRequest(queryOptions)
+ const fetcher = (req: Request) => fetch(req)
+
let response: Response
try {
- response = await fetch(request)
+ response = await this.$builder.middleware.execute(request, fetcher)
if (!response.ok) throw new FetchResponseError(response)
- const processedResponse: $Response = this.$builder.responseHandler(
- // @ts-ignore
- this.$builder.isJsonMode
- ? {
- response,
- json: (await response.json()) as JSON,
- }
- : { response }
- )
+ const processedResponse: $Response =
+ await this.$builder.responseHandler(
+ (this.$builder.isJsonMode
+ ? {
+ response,
+ json: () => response.json() as Promise,
+ }
+ : { response }) as any
+ )
return processedResponse
} catch (error) {
diff --git a/packages/fetch/src/core/router.ts b/packages/fetch/src/core/router.ts
index 12860c0..ff0773b 100644
--- a/packages/fetch/src/core/router.ts
+++ b/packages/fetch/src/core/router.ts
@@ -88,10 +88,11 @@ class Router<
if (Router.isFetchMethod(key) && Router.isFetchBuilder(value)) {
// 1. URL / Method
- value.def_url(Router.getUrlPath(baseUrl))
- value.def_method(key)
+ const newBuilder = value
+ .def_url(Router.getUrlPath(baseUrl))
+ .def_method(key)
// 2. Build
- result[key] = value.build()
+ result[key] = newBuilder.build()
} else if (Router.isRecord(value)) {
result[key] = this.buildRouterStructure(
value,
@@ -160,17 +161,17 @@ class Router<
* export const api = f.router(BASE_URL, {
* auth: {
* login: {
- * GET: f.unit()
+ * GET: f.builder()
* },
* },
* books: {
- * GET: f.unit()
- * POST: f.unit()
+ * GET: f.builder()
+ * POST: f.builder()
* // Dynamic path parameter via $ symbol
* $id: {
- * GET: f.unit()
- * PUT: f.unit()
- * DELETE: f.unit()
+ * GET: f.builder()
+ * PUT: f.builder()
+ * DELETE: f.builder()
* },
* },
* })
diff --git a/packages/fetch/src/index.ts b/packages/fetch/src/index.ts
index b3dffa8..fb53e6b 100644
--- a/packages/fetch/src/index.ts
+++ b/packages/fetch/src/index.ts
@@ -1,2 +1,18 @@
-export { unit, type FetchUnitShape, FetchBuilder } from './core/fetcher'
-export { router, type GetRouterConfig } from './core/router'
+import { FetchBuilder, type FetchUnitShape, builder } from './core/fetcher'
+import { GetRouterConfig, router } from './core/router'
+import { Middleware } from './utils/middleware'
+
+/**
+ * @description Metal Fetch Root
+ */
+export const f: {
+ builder: typeof builder
+ router: typeof router
+ Middleware: typeof Middleware
+} = {
+ builder,
+ router,
+ Middleware,
+}
+
+export type { GetRouterConfig, FetchUnitShape, FetchBuilder }
diff --git a/packages/fetch/src/utils/middleware.ts b/packages/fetch/src/utils/middleware.ts
index a78a901..6b4afd0 100644
--- a/packages/fetch/src/utils/middleware.ts
+++ b/packages/fetch/src/utils/middleware.ts
@@ -1,56 +1,40 @@
-import { Procedure } from './procedure'
-
-interface MiddlewareHandler {
- req: Req
- res: Res
- next: (middlewareNext?: { req?: Req; res?: Res }) => void
-}
-
-interface MiddlewareProcedure {
- req: Req
- res: Res
- next?: MiddlewareNext
-}
-
-type MiddlewareNext = (
- nextArgument: MiddlewareProcedure
-) => void
-
-export class Middleware {
- private procedure: MiddlewareNext | undefined
+export type NextFunction = (request: Request) => Promise
+export type MiddlewareFunction = (
+ request: Request,
+ next: NextFunction
+) => Promise
+
+export class Middleware {
+ public readonly procedures: Array = []
+
+ public copy(): Middleware {
+ const newMiddleware = new Middleware()
+ newMiddleware.use(this.procedures)
+ return newMiddleware
+ }
+ /**
+ * Use middleware
+ * @param middleware Target registration middleware
+ */
public use(
- middleware: Array>>
+ middleware: MiddlewareFunction | Array
): void {
- this.procedure = ({
- req: baseReq,
- res: baseRes,
- }: MiddlewareProcedure) => {
- let procedurePointer = 0
-
- const next: MiddlewareHandler['next'] = (
- nextArgs
- ) => {
- procedurePointer++
- middleware[procedurePointer]?.({
- req: nextArgs?.req ?? baseReq,
- res: nextArgs?.res ?? baseRes,
- next,
- })
- }
-
- middleware[0]?.({
- req: baseReq,
- res: baseRes,
- next,
- })
+ if (Array.isArray(middleware)) {
+ this.procedures.push(...middleware)
+ } else {
+ this.procedures.push(middleware)
}
}
- public execute(req: Request, res: Response): void {
- this.procedure?.({
- req,
- res,
- })
+ public execute(
+ initialRequest: Request,
+ fetcher: (request: Request) => Promise
+ ): Promise {
+ const chain = this.procedures.reduceRight(
+ (next, middleware) => (request) => middleware(request, next),
+ fetcher
+ )
+ return chain(initialRequest)
}
}
diff --git a/packages/fetch/src/utils/procedure.ts b/packages/fetch/src/utils/procedure.ts
index e0d56d9..bddac0c 100644
--- a/packages/fetch/src/utils/procedure.ts
+++ b/packages/fetch/src/utils/procedure.ts
@@ -10,6 +10,10 @@ export class ProcedureSet {
private procedureList: Array> = []
public constructor() {}
+ public get procedures(): ReadonlyArray> {
+ return Array.from(this.registeredProcedure)
+ }
+
public get executor(): Procedure {
return (arg: I): void => {
const executionList = this.procedureList
@@ -22,6 +26,14 @@ export class ProcedureSet {
}
}
+ public copy(): ProcedureSet {
+ const newProcedureSet = new ProcedureSet()
+ for (const p of this.procedures) {
+ newProcedureSet.use(p.$, p.once)
+ }
+ return newProcedureSet
+ }
+
public use(procedure: Procedure, once: boolean = false): void {
this.registeredProcedure.add({
$: procedure,
diff --git a/packages/fetch/src/utils/types/index.ts b/packages/fetch/src/utils/types/index.ts
index 3b04d67..fe0d389 100644
--- a/packages/fetch/src/utils/types/index.ts
+++ b/packages/fetch/src/utils/types/index.ts
@@ -34,14 +34,6 @@ export type ToOptionalField<
> = Prettify & Partial>>
type IfUnknown = [unknown] extends [T] ? Y : N
-export type OptionalAndNeverAtUnknown = Prettify<
- {
- [Key in keyof RecordT as IfUnknown<
- RecordT[Key],
- never,
- Key
- >]: RecordT[Key]
- } & Partial<{
- [Key in keyof RecordT as IfUnknown]: never
- }>
->
+export type OmitNever = Prettify<{
+ [Key in keyof RecordT as IfUnknown]: RecordT[Key]
+}>
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 140e299..fd23137 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,46 +10,49 @@ importers:
devDependencies:
'@changesets/cli':
specifier: ^2.27.11
- version: 2.27.11
+ version: 2.29.5
+ '@metal-box/type':
+ specifier: ^0.2.0
+ version: 0.2.0
'@typescript-eslint/eslint-plugin':
specifier: ^8.20.0
- version: 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)(typescript@5.7.3)
+ version: 8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)(typescript@5.8.3)
'@typescript-eslint/parser':
specifier: ^8.20.0
- version: 8.20.0(eslint@9.18.0)(typescript@5.7.3)
+ version: 8.37.0(eslint@9.31.0)(typescript@5.8.3)
'@vitest/coverage-v8':
specifier: ^3.0.0
- version: 3.0.0(vitest@3.0.0(@types/node@12.20.55)(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(yaml@2.6.1))
+ version: 3.2.4(vitest@3.2.4(msw@2.10.4(typescript@5.8.3))(yaml@2.8.0))
chalk:
specifier: ^5.4.1
version: 5.4.1
eslint:
specifier: ^9.18.0
- version: 9.18.0
+ version: 9.31.0
eslint-config-prettier:
specifier: ^10.0.1
- version: 10.0.1(eslint@9.18.0)
+ version: 10.1.5(eslint@9.31.0)
eslint-config-turbo:
specifier: ^2.3.3
- version: 2.3.3(eslint@9.18.0)
+ version: 2.5.4(eslint@9.31.0)(turbo@2.5.4)
eslint-plugin-import:
specifier: ^2.31.0
- version: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)
+ version: 2.32.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)
eslint-plugin-prettier:
specifier: ^5.2.2
- version: 5.2.2(eslint-config-prettier@10.0.1(eslint@9.18.0))(eslint@9.18.0)(prettier@3.4.2)
+ version: 5.5.1(eslint-config-prettier@10.1.5(eslint@9.31.0))(eslint@9.31.0)(prettier@3.6.2)
husky:
specifier: ^9.1.7
version: 9.1.7
lint-staged:
specifier: ^15.4.0
- version: 15.4.0
+ version: 15.5.2
msw:
specifier: ^2.7.0
- version: 2.7.0(@types/node@12.20.55)(typescript@5.7.3)
+ version: 2.10.4(typescript@5.8.3)
prettier:
specifier: ^3.4.2
- version: 3.4.2
+ version: 3.6.2
rimraf:
specifier: ^6.0.1
version: 6.0.1
@@ -58,25 +61,21 @@ importers:
version: 1.3.0
tsup:
specifier: ^8.3.5
- version: 8.3.5(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1)
+ version: 8.5.0(postcss@8.5.6)(typescript@5.8.3)(yaml@2.8.0)
turbo:
specifier: ^2.3.3
- version: 2.3.3
+ version: 2.5.4
typescript:
specifier: ^5.7.3
- version: 5.7.3
+ version: 5.8.3
vite-tsconfig-paths:
specifier: ^5.1.4
- version: 5.1.4(typescript@5.7.3)(vite@6.0.7(@types/node@12.20.55)(yaml@2.6.1))
+ version: 5.1.4(typescript@5.8.3)(vite@7.0.4(yaml@2.8.0))
vitest:
specifier: ^3.0.0
- version: 3.0.0(@types/node@12.20.55)(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(yaml@2.6.1)
+ version: 3.2.4(msw@2.10.4(typescript@5.8.3))(yaml@2.8.0)
- packages/fetch:
- devDependencies:
- '@metal-box/type':
- specifier: ^0.2.0
- version: 0.2.0
+ packages/fetch: {}
packages:
@@ -84,25 +83,25 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@babel/helper-string-parser@7.25.9':
- resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.26.5':
- resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==}
+ '@babel/parser@7.28.0':
+ resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/runtime@7.26.0':
- resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
+ '@babel/runtime@7.27.6':
+ resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.26.5':
- resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==}
+ '@babel/types@7.28.1':
+ resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@1.0.2':
@@ -118,213 +117,219 @@ packages:
'@bundled-es-modules/tough-cookie@0.1.6':
resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==}
- '@changesets/apply-release-plan@7.0.7':
- resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==}
+ '@changesets/apply-release-plan@7.0.12':
+ resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==}
- '@changesets/assemble-release-plan@6.0.5':
- resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==}
+ '@changesets/assemble-release-plan@6.0.9':
+ resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==}
- '@changesets/changelog-git@0.2.0':
- resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==}
+ '@changesets/changelog-git@0.2.1':
+ resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==}
- '@changesets/cli@2.27.11':
- resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==}
+ '@changesets/cli@2.29.5':
+ resolution: {integrity: sha512-0j0cPq3fgxt2dPdFsg4XvO+6L66RC0pZybT9F4dG5TBrLA3jA/1pNkdTXH9IBBVHkgsKrNKenI3n1mPyPlIydg==}
hasBin: true
- '@changesets/config@3.0.5':
- resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==}
+ '@changesets/config@3.1.1':
+ resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==}
'@changesets/errors@0.2.0':
resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
- '@changesets/get-dependents-graph@2.1.2':
- resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==}
+ '@changesets/get-dependents-graph@2.1.3':
+ resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==}
- '@changesets/get-release-plan@4.0.6':
- resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==}
+ '@changesets/get-release-plan@4.0.13':
+ resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==}
'@changesets/get-version-range-type@0.4.0':
resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
- '@changesets/git@3.0.2':
- resolution: {integrity: sha512-r1/Kju9Y8OxRRdvna+nxpQIsMsRQn9dhhAZt94FLDeu0Hij2hnOozW8iqnHBgvu+KdnJppCveQwK4odwfw/aWQ==}
+ '@changesets/git@3.0.4':
+ resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==}
'@changesets/logger@0.1.1':
resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==}
- '@changesets/parse@0.4.0':
- resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==}
+ '@changesets/parse@0.4.1':
+ resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==}
- '@changesets/pre@2.0.1':
- resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==}
+ '@changesets/pre@2.0.2':
+ resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==}
- '@changesets/read@0.6.2':
- resolution: {integrity: sha512-wjfQpJvryY3zD61p8jR87mJdyx2FIhEcdXhKUqkja87toMrP/3jtg/Yg29upN+N4Ckf525/uvV7a4tzBlpk6gg==}
+ '@changesets/read@0.6.5':
+ resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==}
- '@changesets/should-skip-package@0.1.1':
- resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==}
+ '@changesets/should-skip-package@0.1.2':
+ resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==}
'@changesets/types@4.1.0':
resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
- '@changesets/types@6.0.0':
- resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==}
+ '@changesets/types@6.1.0':
+ resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==}
- '@changesets/write@0.3.2':
- resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==}
+ '@changesets/write@0.4.0':
+ resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
- '@esbuild/aix-ppc64@0.24.2':
- resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
+ '@esbuild/aix-ppc64@0.25.6':
+ resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.24.2':
- resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
+ '@esbuild/android-arm64@0.25.6':
+ resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.24.2':
- resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
+ '@esbuild/android-arm@0.25.6':
+ resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.24.2':
- resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
+ '@esbuild/android-x64@0.25.6':
+ resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.24.2':
- resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
+ '@esbuild/darwin-arm64@0.25.6':
+ resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.24.2':
- resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
+ '@esbuild/darwin-x64@0.25.6':
+ resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.24.2':
- resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
+ '@esbuild/freebsd-arm64@0.25.6':
+ resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.24.2':
- resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
+ '@esbuild/freebsd-x64@0.25.6':
+ resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.24.2':
- resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
+ '@esbuild/linux-arm64@0.25.6':
+ resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.24.2':
- resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
+ '@esbuild/linux-arm@0.25.6':
+ resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.24.2':
- resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
+ '@esbuild/linux-ia32@0.25.6':
+ resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.24.2':
- resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
+ '@esbuild/linux-loong64@0.25.6':
+ resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.24.2':
- resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
+ '@esbuild/linux-mips64el@0.25.6':
+ resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.24.2':
- resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
+ '@esbuild/linux-ppc64@0.25.6':
+ resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.24.2':
- resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
+ '@esbuild/linux-riscv64@0.25.6':
+ resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.24.2':
- resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
+ '@esbuild/linux-s390x@0.25.6':
+ resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.24.2':
- resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
+ '@esbuild/linux-x64@0.25.6':
+ resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.24.2':
- resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
+ '@esbuild/netbsd-arm64@0.25.6':
+ resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.24.2':
- resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
+ '@esbuild/netbsd-x64@0.25.6':
+ resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.24.2':
- resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
+ '@esbuild/openbsd-arm64@0.25.6':
+ resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.24.2':
- resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
+ '@esbuild/openbsd-x64@0.25.6':
+ resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/sunos-x64@0.24.2':
- resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
+ '@esbuild/openharmony-arm64@0.25.6':
+ resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/sunos-x64@0.25.6':
+ resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.24.2':
- resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
+ '@esbuild/win32-arm64@0.25.6':
+ resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.24.2':
- resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
+ '@esbuild/win32-ia32@0.25.6':
+ resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.24.2':
- resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
+ '@esbuild/win32-x64@0.25.6':
+ resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.4.1':
- resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ '@eslint-community/eslint-utils@4.7.0':
+ resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -333,28 +338,32 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.19.1':
- resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
+ '@eslint/config-array@0.21.0':
+ resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.3.0':
+ resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.10.0':
- resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==}
+ '@eslint/core@0.15.1':
+ resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.2.0':
- resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.18.0':
- resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==}
+ '@eslint/js@9.31.0':
+ resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/object-schema@2.1.5':
- resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/plugin-kit@0.2.5':
- resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==}
+ '@eslint/plugin-kit@0.3.3':
+ resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@humanfs/core@0.19.1':
@@ -373,29 +382,48 @@ packages:
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
engines: {node: '>=18.18'}
- '@humanwhocodes/retry@0.4.1':
- resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@inquirer/confirm@5.1.3':
- resolution: {integrity: sha512-fuF9laMmHoOgWapF9h9hv6opA5WvmGFHsTYGCmuFxcghIhEhb3dN0CdQR4BUMqa2H506NCj8cGX4jwMsE4t6dA==}
+ '@inquirer/confirm@5.1.13':
+ resolution: {integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
- '@inquirer/core@10.1.4':
- resolution: {integrity: sha512-5y4/PUJVnRb4bwWY67KLdebWOhOc7xj5IP2J80oWXa64mVag24rwQ1VAdnj7/eDY/odhguW0zQ1Mp1pj6fO/2w==}
+ '@inquirer/core@10.1.14':
+ resolution: {integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==}
engines: {node: '>=18'}
+ peerDependencies:
+ '@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
- '@inquirer/figures@1.0.9':
- resolution: {integrity: sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==}
+ '@inquirer/figures@1.0.12':
+ resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==}
engines: {node: '>=18'}
- '@inquirer/type@3.0.2':
- resolution: {integrity: sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==}
+ '@inquirer/type@3.0.7':
+ resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==}
engines: {node: '>=18'}
peerDependencies:
'@types/node': '>=18'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
+ '@isaacs/balanced-match@4.0.1':
+ resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/brace-expansion@5.0.0':
+ resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
+ engines: {node: 20 || >=22}
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
@@ -405,23 +433,18 @@ packages:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/gen-mapping@0.3.12':
+ resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
- '@jridgewell/set-array@1.2.1':
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+ '@jridgewell/sourcemap-codec@1.5.4':
+ resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
- '@jridgewell/trace-mapping@0.3.25':
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@jridgewell/trace-mapping@0.3.29':
+ resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
'@manypkg/find-root@1.1.0':
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
@@ -432,8 +455,8 @@ packages:
'@metal-box/type@0.2.0':
resolution: {integrity: sha512-JPmJ85QaE1H0sSAAZXSP69AEabRfDTE+iOYTtYz0bvJX6SHx0RV7XlYRS526M5qc2uFysTHYmKYMm/6uyNfhzw==}
- '@mswjs/interceptors@0.37.5':
- resolution: {integrity: sha512-AAwRb5vXFcY4L+FvZ7LZusDuZ0vEe0Zm8ohn1FM6/X7A3bj4mqmkAcGRWuvC2JwSygNwHAAmMnAI73vPHeqsHA==}
+ '@mswjs/interceptors@0.39.2':
+ resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==}
engines: {node: '>=18'}
'@nodelib/fs.scandir@2.1.5':
@@ -461,113 +484,124 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@pkgr/core@0.1.1':
- resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
+ '@pkgr/core@0.2.7':
+ resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@rollup/rollup-android-arm-eabi@4.30.1':
- resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==}
+ '@rollup/rollup-android-arm-eabi@4.45.1':
+ resolution: {integrity: sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.30.1':
- resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==}
+ '@rollup/rollup-android-arm64@4.45.1':
+ resolution: {integrity: sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.30.1':
- resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==}
+ '@rollup/rollup-darwin-arm64@4.45.1':
+ resolution: {integrity: sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.30.1':
- resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==}
+ '@rollup/rollup-darwin-x64@4.45.1':
+ resolution: {integrity: sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.30.1':
- resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==}
+ '@rollup/rollup-freebsd-arm64@4.45.1':
+ resolution: {integrity: sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==}
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.30.1':
- resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==}
+ '@rollup/rollup-freebsd-x64@4.45.1':
+ resolution: {integrity: sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
- resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.45.1':
+ resolution: {integrity: sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.30.1':
- resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==}
+ '@rollup/rollup-linux-arm-musleabihf@4.45.1':
+ resolution: {integrity: sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.30.1':
- resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==}
+ '@rollup/rollup-linux-arm64-gnu@4.45.1':
+ resolution: {integrity: sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.30.1':
- resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==}
+ '@rollup/rollup-linux-arm64-musl@4.45.1':
+ resolution: {integrity: sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
- resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==}
+ '@rollup/rollup-linux-loongarch64-gnu@4.45.1':
+ resolution: {integrity: sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==}
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
- resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.45.1':
+ resolution: {integrity: sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.30.1':
- resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==}
+ '@rollup/rollup-linux-riscv64-gnu@4.45.1':
+ resolution: {integrity: sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-musl@4.45.1':
+ resolution: {integrity: sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.30.1':
- resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==}
+ '@rollup/rollup-linux-s390x-gnu@4.45.1':
+ resolution: {integrity: sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.30.1':
- resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==}
+ '@rollup/rollup-linux-x64-gnu@4.45.1':
+ resolution: {integrity: sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.30.1':
- resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==}
+ '@rollup/rollup-linux-x64-musl@4.45.1':
+ resolution: {integrity: sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.30.1':
- resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==}
+ '@rollup/rollup-win32-arm64-msvc@4.45.1':
+ resolution: {integrity: sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.30.1':
- resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==}
+ '@rollup/rollup-win32-ia32-msvc@4.45.1':
+ resolution: {integrity: sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.30.1':
- resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==}
+ '@rollup/rollup-win32-x64-msvc@4.45.1':
+ resolution: {integrity: sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==}
cpu: [x64]
os: [win32]
'@rtsao/scc@1.1.0':
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+ '@types/chai@5.2.2':
+ resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==}
+
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
- '@types/estree@1.0.6':
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -578,104 +612,116 @@ packages:
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
- '@types/statuses@2.0.5':
- resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==}
+ '@types/statuses@2.0.6':
+ resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==}
'@types/tough-cookie@4.0.5':
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
- '@typescript-eslint/eslint-plugin@8.20.0':
- resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==}
+ '@typescript-eslint/eslint-plugin@8.37.0':
+ resolution: {integrity: sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ '@typescript-eslint/parser': ^8.37.0
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/parser@8.20.0':
- resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==}
+ '@typescript-eslint/parser@8.37.0':
+ resolution: {integrity: sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/project-service@8.37.0':
+ resolution: {integrity: sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/scope-manager@8.37.0':
+ resolution: {integrity: sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.20.0':
- resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==}
+ '@typescript-eslint/tsconfig-utils@8.37.0':
+ resolution: {integrity: sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/type-utils@8.20.0':
- resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==}
+ '@typescript-eslint/type-utils@8.37.0':
+ resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/types@8.20.0':
- resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==}
+ '@typescript-eslint/types@8.37.0':
+ resolution: {integrity: sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.20.0':
- resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==}
+ '@typescript-eslint/typescript-estree@8.37.0':
+ resolution: {integrity: sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.20.0':
- resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==}
+ '@typescript-eslint/utils@8.37.0':
+ resolution: {integrity: sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/visitor-keys@8.20.0':
- resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==}
+ '@typescript-eslint/visitor-keys@8.37.0':
+ resolution: {integrity: sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@vitest/coverage-v8@3.0.0':
- resolution: {integrity: sha512-wfXdOyYhm6L5GndWv6qP95gfyfkNKDFpTZPplOxHLo9DiQ1B7L3bMNngWAvDa+PMK4WrX4Pzef2FZ8E8qKVBuw==}
+ '@vitest/coverage-v8@3.2.4':
+ resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==}
peerDependencies:
- '@vitest/browser': 3.0.0
- vitest: 3.0.0
+ '@vitest/browser': 3.2.4
+ vitest: 3.2.4
peerDependenciesMeta:
'@vitest/browser':
optional: true
- '@vitest/expect@3.0.0':
- resolution: {integrity: sha512-Qx+cHyB59mWrQywT3/dZIIpSKwIpWbYFdBX2zixMYpOGZmbaP2jbbd4i/TAKJq/jBgSfww++d6YnrlGMFb2XBg==}
+ '@vitest/expect@3.2.4':
+ resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
- '@vitest/mocker@3.0.0':
- resolution: {integrity: sha512-8ytqYjIRzAM90O7n8A0TCbziTnouIG+UGuMHmoRJpKh4vvah4uENw5UAMMNjdKCtzgMiTrZ9XU+xzwCwcxuxGQ==}
+ '@vitest/mocker@3.2.4':
+ resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
peerDependencies:
msw: ^2.4.9
- vite: ^5.0.0 || ^6.0.0
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
- '@vitest/pretty-format@3.0.0':
- resolution: {integrity: sha512-24y+MS04ZHZbbbfAvfpi9hM2oULePbiL6Dir8r1nFMN97hxuL0gEXKWRGmlLPwzKDtaOKNjtyTx0+GiZcWCxDA==}
+ '@vitest/pretty-format@3.2.4':
+ resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
- '@vitest/runner@3.0.0':
- resolution: {integrity: sha512-6MCYobtatsgG3DlM+dk6njP+R+28iSUqWbJzXp/nuOy6SkAKzJ1wby3fDgimmy50TeK8g6y+E6rP12REyinYPw==}
+ '@vitest/runner@3.2.4':
+ resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
- '@vitest/snapshot@3.0.0':
- resolution: {integrity: sha512-W0X6fJFJ3RbSThncSYUNSnXkMJFyXX9sOvxP1HSQRsWCLB1U3JnZc0SrLpLzcyByMUDXHsiXQ+x+xsr/G5fXNw==}
+ '@vitest/snapshot@3.2.4':
+ resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
- '@vitest/spy@3.0.0':
- resolution: {integrity: sha512-pfK5O3lRqeCG8mbV+Lr8lLUBicFRm5TlggF7bLZpzpo111LKhMN/tZRXvyOGOgbktxAR9bTf4x8U6RtHuFBTVA==}
+ '@vitest/spy@3.2.4':
+ resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
- '@vitest/utils@3.0.0':
- resolution: {integrity: sha512-l300v2/4diHyv5ZiQOj6y/H6VbaTWM6i1c2lC3lUZ5nn9rv9C+WneS/wqyaGLwM37reoh/QkrrYMSMKdfnDZpw==}
+ '@vitest/utils@3.2.4':
+ resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -723,16 +769,16 @@ packages:
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
engines: {node: '>= 0.4'}
- array-includes@3.1.8:
- resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
+ array-includes@3.1.9:
+ resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
engines: {node: '>= 0.4'}
array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
- array.prototype.findlastindex@1.2.5:
- resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
+ array.prototype.findlastindex@1.2.6:
+ resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
engines: {node: '>= 0.4'}
array.prototype.flat@1.3.3:
@@ -751,6 +797,13 @@ packages:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
+ ast-v8-to-istanbul@0.3.3:
+ resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -762,11 +815,11 @@ packages:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
- brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ brace-expansion@2.0.2:
+ resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
@@ -782,25 +835,25 @@ packages:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
- call-bind-apply-helpers@1.0.1:
- resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
call-bind@1.0.8:
resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
engines: {node: '>= 0.4'}
- call-bound@1.0.3:
- resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- chai@5.1.2:
- resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
- engines: {node: '>=12'}
+ chai@5.2.1:
+ resolution: {integrity: sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==}
+ engines: {node: '>=18'}
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
@@ -851,8 +904,8 @@ packages:
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
- commander@12.1.0:
- resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ commander@13.1.0:
+ resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
commander@4.1.1:
@@ -862,8 +915,11 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
- consola@3.4.0:
- resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==}
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+ consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0}
cookie@0.7.2:
@@ -894,8 +950,8 @@ packages:
supports-color:
optional: true
- debug@4.4.0:
- resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -958,8 +1014,8 @@ packages:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
- es-abstract@1.23.9:
- resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
+ es-abstract@1.24.0:
+ resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
engines: {node: '>= 0.4'}
es-define-property@1.0.1:
@@ -970,8 +1026,8 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- es-module-lexer@1.6.0:
- resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
+ es-module-lexer@1.7.0:
+ resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
@@ -981,15 +1037,16 @@ packages:
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines: {node: '>= 0.4'}
- es-shim-unscopables@1.0.2:
- resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+ es-shim-unscopables@1.1.0:
+ resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
+ engines: {node: '>= 0.4'}
es-to-primitive@1.3.0:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
- esbuild@0.24.2:
- resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
+ esbuild@0.25.6:
+ resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==}
engines: {node: '>=18'}
hasBin: true
@@ -1001,22 +1058,23 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eslint-config-prettier@10.0.1:
- resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==}
+ eslint-config-prettier@10.1.5:
+ resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
- eslint-config-turbo@2.3.3:
- resolution: {integrity: sha512-cM9wSBYowQIrjx2MPCzFE6jTnG4vpTPJKZ/O+Ps3CqrmGK/wtNOsY6WHGMwLtKY/nNbgRahAJH6jGVF6k2coOg==}
+ eslint-config-turbo@2.5.4:
+ resolution: {integrity: sha512-OpjpDLXIaus0N/Y+pMj17K430xjpd6WTo0xPUESqYZ9BkMngv2n0ZdjktgJTbJVnDmK7gHrXgJAljtdIMcYBIg==}
peerDependencies:
eslint: '>6.6.0'
+ turbo: '>2.0.0'
eslint-import-resolver-node@0.3.9:
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
- eslint-module-utils@2.12.0:
- resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
+ eslint-module-utils@2.12.1:
+ resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -1036,8 +1094,8 @@ packages:
eslint-import-resolver-webpack:
optional: true
- eslint-plugin-import@2.31.0:
- resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
+ eslint-plugin-import@2.32.0:
+ resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -1046,13 +1104,13 @@ packages:
'@typescript-eslint/parser':
optional: true
- eslint-plugin-prettier@5.2.2:
- resolution: {integrity: sha512-1yI3/hf35wmlq66C8yOyrujQnel+v5l1Vop5Cl2I6ylyNTT1JbuUUnV3/41PzwTzcyDp/oF0jWE3HXvcH5AQOQ==}
+ eslint-plugin-prettier@5.5.1:
+ resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
'@types/eslint': '>=8.0.0'
eslint: '>=8.0.0'
- eslint-config-prettier: '*'
+ eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
prettier: '>=3.0.0'
peerDependenciesMeta:
'@types/eslint':
@@ -1060,25 +1118,26 @@ packages:
eslint-config-prettier:
optional: true
- eslint-plugin-turbo@2.3.3:
- resolution: {integrity: sha512-j8UEA0Z+NNCsjZep9G5u5soDQHcXq/x4amrwulk6eHF1U91H2qAjp5I4jQcvJewmccCJbVp734PkHHTRnosjpg==}
+ eslint-plugin-turbo@2.5.4:
+ resolution: {integrity: sha512-IZsW61DFj5mLMMaCJxhh1VE4HvNhfdnHnAaXajgne+LUzdyHk2NvYT0ECSa/1SssArcqgTvV74MrLL68hWLLFw==}
peerDependencies:
eslint: '>6.6.0'
+ turbo: '>2.0.0'
- eslint-scope@8.2.0:
- resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint-visitor-keys@4.2.0:
- resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.18.0:
- resolution: {integrity: sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==}
+ eslint@9.31.0:
+ resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -1087,8 +1146,8 @@ packages:
jiti:
optional: true
- espree@10.3.0:
- resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
esprima@4.0.1:
@@ -1122,8 +1181,8 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
- expect-type@1.1.0:
- resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
+ expect-type@1.2.2:
+ resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==}
engines: {node: '>=12.0.0'}
extendable-error@0.1.7:
@@ -1149,11 +1208,11 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- fastq@1.18.0:
- resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
+ fastq@1.19.1:
+ resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
- fdir@6.4.2:
- resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -1176,18 +1235,22 @@ packages:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
+ fix-dts-default-cjs-exports@1.0.1:
+ resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==}
+
flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flatted@3.3.2:
- resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
- for-each@0.3.3:
- resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
- foreground-child@3.3.0:
- resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
fs-extra@7.0.1:
@@ -1221,8 +1284,8 @@ packages:
resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
engines: {node: '>=18'}
- get-intrinsic@1.2.7:
- resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==}
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
get-proto@1.0.1:
@@ -1249,8 +1312,8 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
- glob@11.0.1:
- resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==}
+ glob@11.0.3:
+ resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==}
engines: {node: 20 || >=22}
hasBin: true
@@ -1279,8 +1342,8 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- graphql@16.10.0:
- resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==}
+ graphql@16.11.0:
+ resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
has-bigints@1.1.0:
@@ -1316,8 +1379,9 @@ packages:
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
- human-id@1.0.2:
- resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
+ human-id@4.1.1:
+ resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==}
+ hasBin: true
human-signals@5.0.0:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
@@ -1336,8 +1400,12 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
- import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
imurmurhash@0.1.4:
@@ -1352,16 +1420,16 @@ packages:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'}
- is-async-function@2.1.0:
- resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==}
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
engines: {node: '>= 0.4'}
is-bigint@1.1.0:
resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
engines: {node: '>= 0.4'}
- is-boolean-object@1.2.1:
- resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==}
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
engines: {node: '>= 0.4'}
is-callable@1.2.7:
@@ -1412,6 +1480,10 @@ packages:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
is-node-process@1.2.0:
resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==}
@@ -1459,8 +1531,8 @@ packages:
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines: {node: '>= 0.4'}
- is-weakref@1.1.0:
- resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==}
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
engines: {node: '>= 0.4'}
is-weakset@2.0.4:
@@ -1496,14 +1568,17 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- jackspeak@4.0.2:
- resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ jackspeak@4.1.1:
+ resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
engines: {node: 20 || >=22}
joycon@3.1.1:
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
engines: {node: '>=10'}
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -1542,13 +1617,13 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
- lint-staged@15.4.0:
- resolution: {integrity: sha512-UdODqEZiQimd7rCzZ2vqFuELRNUda3mdv7M93jhE4SmDiqAj/w/msvwKgagH23jv2iCPw6Q5m+ltX4VlHvp2LQ==}
+ lint-staged@15.5.2:
+ resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==}
engines: {node: '>=18.12.0'}
hasBin: true
- listr2@8.2.5:
- resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==}
+ listr2@8.3.3:
+ resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==}
engines: {node: '>=18.0.0'}
load-tsconfig@0.2.5:
@@ -1576,14 +1651,14 @@ packages:
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
engines: {node: '>=18'}
- loupe@3.1.2:
- resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+ loupe@3.1.4:
+ resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==}
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
- lru-cache@11.0.2:
- resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
+ lru-cache@11.1.0:
+ resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
engines: {node: 20 || >=22}
magic-string@0.30.17:
@@ -1619,8 +1694,8 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
- minimatch@10.0.1:
- resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ minimatch@10.0.3:
+ resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
engines: {node: 20 || >=22}
minimatch@3.1.2:
@@ -1637,6 +1712,9 @@ packages:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
+ mlly@1.7.4:
+ resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -1644,8 +1722,8 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- msw@2.7.0:
- resolution: {integrity: sha512-BIodwZ19RWfCbYTxWTUfTXc+sg4OwjCAgxU1ZsgmggX/7S3LdUifsbUPJs61j0rWb19CZRGY5if77duhc0uXzw==}
+ msw@2.10.4:
+ resolution: {integrity: sha512-6R1or/qyele7q3RyPwNuvc0IxO8L8/Aim6Sz5ncXEgcWUNxSKE+udriTOWHtpMwmfkLYlacA2y7TIx4cL5lgHA==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -1661,8 +1739,8 @@ packages:
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
- nanoid@3.3.8:
- resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -1677,8 +1755,8 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- object-inspect@1.13.3:
- resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
object-keys@1.1.1:
@@ -1758,8 +1836,8 @@ packages:
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
- package-manager-detector@0.2.8:
- resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==}
+ package-manager-detector@0.2.11:
+ resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
@@ -1795,11 +1873,11 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
- pathe@2.0.1:
- resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==}
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
- pathval@2.0.0:
- resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+ pathval@2.0.1:
+ resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
engines: {node: '>= 14.16'}
picocolors@1.1.1:
@@ -1809,8 +1887,8 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
- picomatch@4.0.2:
- resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
pidtree@0.6.0:
@@ -1822,12 +1900,15 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
- pirates@4.0.6:
- resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
- possible-typed-array-names@1.0.0:
- resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
postcss-load-config@6.0.1:
@@ -1848,8 +1929,8 @@ packages:
yaml:
optional: true
- postcss@8.5.1:
- resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
@@ -1865,8 +1946,8 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- prettier@3.4.2:
- resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
+ prettier@3.6.2:
+ resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
engines: {node: '>=14'}
hasBin: true
@@ -1877,6 +1958,9 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ quansync@0.2.10:
+ resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
+
querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
@@ -1887,17 +1971,14 @@ packages:
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
engines: {node: '>=6'}
- readdirp@4.1.1:
- resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'}
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
- regenerator-runtime@0.14.1:
- resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
-
regexp.prototype.flags@1.5.4:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
@@ -1926,8 +2007,8 @@ packages:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
- reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
rfdc@1.4.1:
@@ -1938,8 +2019,8 @@ packages:
engines: {node: 20 || >=22}
hasBin: true
- rollup@4.30.1:
- resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==}
+ rollup@4.45.1:
+ resolution: {integrity: sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -1965,8 +2046,8 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.6.3:
- resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ semver@7.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
engines: {node: '>=10'}
hasBin: true
@@ -2042,12 +2123,16 @@ packages:
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
- statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ statuses@2.0.2:
+ resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
- std-env@3.8.0:
- resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
+ std-env@3.9.0:
+ resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
strict-event-emitter@0.5.1:
resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==}
@@ -2100,6 +2185,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
+ strip-literal@3.0.0:
+ resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
+
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -2113,8 +2201,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- synckit@0.9.2:
- resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
+ synckit@0.11.8:
+ resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==}
engines: {node: ^14.18.0 || >=16.0.0}
term-size@2.2.1:
@@ -2138,20 +2226,20 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyglobby@0.2.10:
- resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
- tinypool@1.0.2:
- resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
+ tinypool@1.1.1:
+ resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
engines: {node: ^18.0.0 || >=20.0.0}
tinyrainbow@2.0.0:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
engines: {node: '>=14.0.0'}
- tinyspy@3.0.2:
- resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
+ tinyspy@4.0.3:
+ resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==}
engines: {node: '>=14.0.0'}
tmp@0.0.33:
@@ -2173,8 +2261,8 @@ packages:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
- ts-api-utils@2.0.0:
- resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
+ ts-api-utils@2.1.0:
+ resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
engines: {node: '>=18.12'}
peerDependencies:
typescript: '>=4.8.4'
@@ -2185,8 +2273,8 @@ packages:
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- tsconfck@3.1.4:
- resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
+ tsconfck@3.1.6:
+ resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
engines: {node: ^18 || >=20}
hasBin: true
peerDependencies:
@@ -2198,11 +2286,8 @@ packages:
tsconfig-paths@3.15.0:
resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- tsup@8.3.5:
- resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==}
+ tsup@8.5.0:
+ resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -2220,38 +2305,38 @@ packages:
typescript:
optional: true
- turbo-darwin-64@2.3.3:
- resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==}
+ turbo-darwin-64@2.5.4:
+ resolution: {integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.3.3:
- resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==}
+ turbo-darwin-arm64@2.5.4:
+ resolution: {integrity: sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.3.3:
- resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==}
+ turbo-linux-64@2.5.4:
+ resolution: {integrity: sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.3.3:
- resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==}
+ turbo-linux-arm64@2.5.4:
+ resolution: {integrity: sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@2.3.3:
- resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==}
+ turbo-windows-64@2.5.4:
+ resolution: {integrity: sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.3.3:
- resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==}
+ turbo-windows-arm64@2.5.4:
+ resolution: {integrity: sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==}
cpu: [arm64]
os: [win32]
- turbo@2.3.3:
- resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==}
+ turbo@2.5.4:
+ resolution: {integrity: sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==}
hasBin: true
type-check@0.4.0:
@@ -2262,8 +2347,8 @@ packages:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
- type-fest@4.32.0:
- resolution: {integrity: sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==}
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
typed-array-buffer@1.0.3:
@@ -2282,11 +2367,14 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+ typescript@5.8.3:
+ resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
engines: {node: '>=14.17'}
hasBin: true
+ ufo@1.6.1:
+ resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+
unbox-primitive@1.1.0:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
@@ -2305,8 +2393,8 @@ packages:
url-parse@1.5.10:
resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
- vite-node@3.0.0:
- resolution: {integrity: sha512-V5p05fpAzkHM3aYChsHWV1RTeLAhPejbKX6MqiWWyuIfNcDgXq5p0GnYV6Wa4OAU588XC70XCJB9chRZsOh4yg==}
+ vite-node@3.2.4:
+ resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
@@ -2318,19 +2406,19 @@ packages:
vite:
optional: true
- vite@6.0.7:
- resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==}
- engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ vite@7.0.4:
+ resolution: {integrity: sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
- '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@types/node': ^20.19.0 || >=22.12.0
jiti: '>=1.21.0'
- less: '*'
+ less: ^4.0.0
lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
+ 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
@@ -2358,20 +2446,23 @@ packages:
yaml:
optional: true
- vitest@3.0.0:
- resolution: {integrity: sha512-fwfPif+EV0jyms9h1Crb6rwJttH/KBzKrcUesjxHgldmc6R0FaMNLsd+Rgc17NoxzLcb/sYE2Xs9NQ/vnTBf6Q==}
+ vitest@3.2.4:
+ resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- '@vitest/browser': 3.0.0
- '@vitest/ui': 3.0.0
+ '@vitest/browser': 3.2.4
+ '@vitest/ui': 3.2.4
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
+ '@types/debug':
+ optional: true
'@types/node':
optional: true
'@vitest/browser':
@@ -2401,8 +2492,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.18:
- resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==}
+ which-typed-array@1.1.19:
+ resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -2439,9 +2530,9 @@ packages:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
- yaml@2.6.1:
- resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
- engines: {node: '>= 14'}
+ yaml@2.8.0:
+ resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
+ engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@21.1.1:
@@ -2464,25 +2555,23 @@ snapshots:
'@ampproject/remapping@2.3.0':
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
- '@babel/helper-string-parser@7.25.9': {}
+ '@babel/helper-string-parser@7.27.1': {}
- '@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/helper-validator-identifier@7.27.1': {}
- '@babel/parser@7.26.5':
+ '@babel/parser@7.28.0':
dependencies:
- '@babel/types': 7.26.5
+ '@babel/types': 7.28.1
- '@babel/runtime@7.26.0':
- dependencies:
- regenerator-runtime: 0.14.1
+ '@babel/runtime@7.27.6': {}
- '@babel/types@7.26.5':
+ '@babel/types@7.28.1':
dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
'@bcoe/v8-coverage@1.0.2': {}
@@ -2492,20 +2581,20 @@ snapshots:
'@bundled-es-modules/statuses@1.0.1':
dependencies:
- statuses: 2.0.1
+ statuses: 2.0.2
'@bundled-es-modules/tough-cookie@0.1.6':
dependencies:
'@types/tough-cookie': 4.0.5
tough-cookie: 4.1.4
- '@changesets/apply-release-plan@7.0.7':
+ '@changesets/apply-release-plan@7.0.12':
dependencies:
- '@changesets/config': 3.0.5
+ '@changesets/config': 3.1.1
'@changesets/get-version-range-type': 0.4.0
- '@changesets/git': 3.0.2
- '@changesets/should-skip-package': 0.1.1
- '@changesets/types': 6.0.0
+ '@changesets/git': 3.0.4
+ '@changesets/should-skip-package': 0.1.2
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
detect-indent: 6.1.0
fs-extra: 7.0.1
@@ -2513,37 +2602,37 @@ snapshots:
outdent: 0.5.0
prettier: 2.8.8
resolve-from: 5.0.0
- semver: 7.6.3
+ semver: 7.7.2
- '@changesets/assemble-release-plan@6.0.5':
+ '@changesets/assemble-release-plan@6.0.9':
dependencies:
'@changesets/errors': 0.2.0
- '@changesets/get-dependents-graph': 2.1.2
- '@changesets/should-skip-package': 0.1.1
- '@changesets/types': 6.0.0
+ '@changesets/get-dependents-graph': 2.1.3
+ '@changesets/should-skip-package': 0.1.2
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
- semver: 7.6.3
+ semver: 7.7.2
- '@changesets/changelog-git@0.2.0':
+ '@changesets/changelog-git@0.2.1':
dependencies:
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
- '@changesets/cli@2.27.11':
+ '@changesets/cli@2.29.5':
dependencies:
- '@changesets/apply-release-plan': 7.0.7
- '@changesets/assemble-release-plan': 6.0.5
- '@changesets/changelog-git': 0.2.0
- '@changesets/config': 3.0.5
+ '@changesets/apply-release-plan': 7.0.12
+ '@changesets/assemble-release-plan': 6.0.9
+ '@changesets/changelog-git': 0.2.1
+ '@changesets/config': 3.1.1
'@changesets/errors': 0.2.0
- '@changesets/get-dependents-graph': 2.1.2
- '@changesets/get-release-plan': 4.0.6
- '@changesets/git': 3.0.2
+ '@changesets/get-dependents-graph': 2.1.3
+ '@changesets/get-release-plan': 4.0.13
+ '@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
- '@changesets/pre': 2.0.1
- '@changesets/read': 0.6.2
- '@changesets/should-skip-package': 0.1.1
- '@changesets/types': 6.0.0
- '@changesets/write': 0.3.2
+ '@changesets/pre': 2.0.2
+ '@changesets/read': 0.6.5
+ '@changesets/should-skip-package': 0.1.2
+ '@changesets/types': 6.1.0
+ '@changesets/write': 0.4.0
'@manypkg/get-packages': 1.1.3
ansi-colors: 4.1.3
ci-info: 3.9.0
@@ -2552,19 +2641,19 @@ snapshots:
fs-extra: 7.0.1
mri: 1.2.0
p-limit: 2.3.0
- package-manager-detector: 0.2.8
+ package-manager-detector: 0.2.11
picocolors: 1.1.1
resolve-from: 5.0.0
- semver: 7.6.3
+ semver: 7.7.2
spawndamnit: 3.0.1
term-size: 2.2.1
- '@changesets/config@3.0.5':
+ '@changesets/config@3.1.1':
dependencies:
'@changesets/errors': 0.2.0
- '@changesets/get-dependents-graph': 2.1.2
+ '@changesets/get-dependents-graph': 2.1.3
'@changesets/logger': 0.1.1
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
fs-extra: 7.0.1
micromatch: 4.0.8
@@ -2573,25 +2662,25 @@ snapshots:
dependencies:
extendable-error: 0.1.7
- '@changesets/get-dependents-graph@2.1.2':
+ '@changesets/get-dependents-graph@2.1.3':
dependencies:
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
picocolors: 1.1.1
- semver: 7.6.3
+ semver: 7.7.2
- '@changesets/get-release-plan@4.0.6':
+ '@changesets/get-release-plan@4.0.13':
dependencies:
- '@changesets/assemble-release-plan': 6.0.5
- '@changesets/config': 3.0.5
- '@changesets/pre': 2.0.1
- '@changesets/read': 0.6.2
- '@changesets/types': 6.0.0
+ '@changesets/assemble-release-plan': 6.0.9
+ '@changesets/config': 3.1.1
+ '@changesets/pre': 2.0.2
+ '@changesets/read': 0.6.5
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
'@changesets/get-version-range-type@0.4.0': {}
- '@changesets/git@3.0.2':
+ '@changesets/git@3.0.4':
dependencies:
'@changesets/errors': 0.2.0
'@manypkg/get-packages': 1.1.3
@@ -2603,159 +2692,164 @@ snapshots:
dependencies:
picocolors: 1.1.1
- '@changesets/parse@0.4.0':
+ '@changesets/parse@0.4.1':
dependencies:
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
js-yaml: 3.14.1
- '@changesets/pre@2.0.1':
+ '@changesets/pre@2.0.2':
dependencies:
'@changesets/errors': 0.2.0
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
fs-extra: 7.0.1
- '@changesets/read@0.6.2':
+ '@changesets/read@0.6.5':
dependencies:
- '@changesets/git': 3.0.2
+ '@changesets/git': 3.0.4
'@changesets/logger': 0.1.1
- '@changesets/parse': 0.4.0
- '@changesets/types': 6.0.0
+ '@changesets/parse': 0.4.1
+ '@changesets/types': 6.1.0
fs-extra: 7.0.1
p-filter: 2.1.0
picocolors: 1.1.1
- '@changesets/should-skip-package@0.1.1':
+ '@changesets/should-skip-package@0.1.2':
dependencies:
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
'@manypkg/get-packages': 1.1.3
'@changesets/types@4.1.0': {}
- '@changesets/types@6.0.0': {}
+ '@changesets/types@6.1.0': {}
- '@changesets/write@0.3.2':
+ '@changesets/write@0.4.0':
dependencies:
- '@changesets/types': 6.0.0
+ '@changesets/types': 6.1.0
fs-extra: 7.0.1
- human-id: 1.0.2
+ human-id: 4.1.1
prettier: 2.8.8
- '@esbuild/aix-ppc64@0.24.2':
+ '@esbuild/aix-ppc64@0.25.6':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.6':
optional: true
- '@esbuild/android-arm64@0.24.2':
+ '@esbuild/android-arm@0.25.6':
optional: true
- '@esbuild/android-arm@0.24.2':
+ '@esbuild/android-x64@0.25.6':
optional: true
- '@esbuild/android-x64@0.24.2':
+ '@esbuild/darwin-arm64@0.25.6':
optional: true
- '@esbuild/darwin-arm64@0.24.2':
+ '@esbuild/darwin-x64@0.25.6':
optional: true
- '@esbuild/darwin-x64@0.24.2':
+ '@esbuild/freebsd-arm64@0.25.6':
optional: true
- '@esbuild/freebsd-arm64@0.24.2':
+ '@esbuild/freebsd-x64@0.25.6':
optional: true
- '@esbuild/freebsd-x64@0.24.2':
+ '@esbuild/linux-arm64@0.25.6':
optional: true
- '@esbuild/linux-arm64@0.24.2':
+ '@esbuild/linux-arm@0.25.6':
optional: true
- '@esbuild/linux-arm@0.24.2':
+ '@esbuild/linux-ia32@0.25.6':
optional: true
- '@esbuild/linux-ia32@0.24.2':
+ '@esbuild/linux-loong64@0.25.6':
optional: true
- '@esbuild/linux-loong64@0.24.2':
+ '@esbuild/linux-mips64el@0.25.6':
optional: true
- '@esbuild/linux-mips64el@0.24.2':
+ '@esbuild/linux-ppc64@0.25.6':
optional: true
- '@esbuild/linux-ppc64@0.24.2':
+ '@esbuild/linux-riscv64@0.25.6':
optional: true
- '@esbuild/linux-riscv64@0.24.2':
+ '@esbuild/linux-s390x@0.25.6':
optional: true
- '@esbuild/linux-s390x@0.24.2':
+ '@esbuild/linux-x64@0.25.6':
optional: true
- '@esbuild/linux-x64@0.24.2':
+ '@esbuild/netbsd-arm64@0.25.6':
optional: true
- '@esbuild/netbsd-arm64@0.24.2':
+ '@esbuild/netbsd-x64@0.25.6':
optional: true
- '@esbuild/netbsd-x64@0.24.2':
+ '@esbuild/openbsd-arm64@0.25.6':
optional: true
- '@esbuild/openbsd-arm64@0.24.2':
+ '@esbuild/openbsd-x64@0.25.6':
optional: true
- '@esbuild/openbsd-x64@0.24.2':
+ '@esbuild/openharmony-arm64@0.25.6':
optional: true
- '@esbuild/sunos-x64@0.24.2':
+ '@esbuild/sunos-x64@0.25.6':
optional: true
- '@esbuild/win32-arm64@0.24.2':
+ '@esbuild/win32-arm64@0.25.6':
optional: true
- '@esbuild/win32-ia32@0.24.2':
+ '@esbuild/win32-ia32@0.25.6':
optional: true
- '@esbuild/win32-x64@0.24.2':
+ '@esbuild/win32-x64@0.25.6':
optional: true
- '@eslint-community/eslint-utils@4.4.1(eslint@9.18.0)':
+ '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0)':
dependencies:
- eslint: 9.18.0
+ eslint: 9.31.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/config-array@0.19.1':
+ '@eslint/config-array@0.21.0':
dependencies:
- '@eslint/object-schema': 2.1.5
- debug: 4.4.0
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.1
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- '@eslint/core@0.10.0':
+ '@eslint/config-helpers@0.3.0': {}
+
+ '@eslint/core@0.15.1':
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.2.0':
+ '@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.0
- espree: 10.3.0
+ debug: 4.4.1
+ espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.18.0': {}
+ '@eslint/js@9.31.0': {}
- '@eslint/object-schema@2.1.5': {}
+ '@eslint/object-schema@2.1.6': {}
- '@eslint/plugin-kit@0.2.5':
+ '@eslint/plugin-kit@0.3.3':
dependencies:
- '@eslint/core': 0.10.0
+ '@eslint/core': 0.15.1
levn: 0.4.1
'@humanfs/core@0.19.1': {}
@@ -2769,33 +2863,33 @@ snapshots:
'@humanwhocodes/retry@0.3.1': {}
- '@humanwhocodes/retry@0.4.1': {}
+ '@humanwhocodes/retry@0.4.3': {}
- '@inquirer/confirm@5.1.3(@types/node@12.20.55)':
+ '@inquirer/confirm@5.1.13':
dependencies:
- '@inquirer/core': 10.1.4(@types/node@12.20.55)
- '@inquirer/type': 3.0.2(@types/node@12.20.55)
- '@types/node': 12.20.55
+ '@inquirer/core': 10.1.14
+ '@inquirer/type': 3.0.7
- '@inquirer/core@10.1.4(@types/node@12.20.55)':
+ '@inquirer/core@10.1.14':
dependencies:
- '@inquirer/figures': 1.0.9
- '@inquirer/type': 3.0.2(@types/node@12.20.55)
+ '@inquirer/figures': 1.0.12
+ '@inquirer/type': 3.0.7
ansi-escapes: 4.3.2
cli-width: 4.1.0
mute-stream: 2.0.0
signal-exit: 4.1.0
- strip-ansi: 6.0.1
wrap-ansi: 6.2.0
yoctocolors-cjs: 2.1.2
- transitivePeerDependencies:
- - '@types/node'
- '@inquirer/figures@1.0.9': {}
+ '@inquirer/figures@1.0.12': {}
+
+ '@inquirer/type@3.0.7': {}
+
+ '@isaacs/balanced-match@4.0.1': {}
- '@inquirer/type@3.0.2(@types/node@12.20.55)':
+ '@isaacs/brace-expansion@5.0.0':
dependencies:
- '@types/node': 12.20.55
+ '@isaacs/balanced-match': 4.0.1
'@isaacs/cliui@8.0.2':
dependencies:
@@ -2808,33 +2902,30 @@ snapshots:
'@istanbuljs/schema@0.1.3': {}
- '@jridgewell/gen-mapping@0.3.8':
+ '@jridgewell/gen-mapping@0.3.12':
dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/trace-mapping': 0.3.29
'@jridgewell/resolve-uri@3.1.2': {}
- '@jridgewell/set-array@1.2.1': {}
-
- '@jridgewell/sourcemap-codec@1.5.0': {}
+ '@jridgewell/sourcemap-codec@1.5.4': {}
- '@jridgewell/trace-mapping@0.3.25':
+ '@jridgewell/trace-mapping@0.3.29':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.4
'@manypkg/find-root@1.1.0':
dependencies:
- '@babel/runtime': 7.26.0
+ '@babel/runtime': 7.27.6
'@types/node': 12.20.55
find-up: 4.1.0
fs-extra: 8.1.0
'@manypkg/get-packages@1.1.3':
dependencies:
- '@babel/runtime': 7.26.0
+ '@babel/runtime': 7.27.6
'@changesets/types': 4.1.0
'@manypkg/find-root': 1.1.0
fs-extra: 8.1.0
@@ -2843,7 +2934,7 @@ snapshots:
'@metal-box/type@0.2.0': {}
- '@mswjs/interceptors@0.37.5':
+ '@mswjs/interceptors@0.39.2':
dependencies:
'@open-draft/deferred-promise': 2.2.0
'@open-draft/logger': 0.3.0
@@ -2862,7 +2953,7 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.18.0
+ fastq: 1.19.1
'@open-draft/deferred-promise@2.2.0': {}
@@ -2876,70 +2967,79 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@pkgr/core@0.1.1': {}
+ '@pkgr/core@0.2.7': {}
+
+ '@rollup/rollup-android-arm-eabi@4.45.1':
+ optional: true
- '@rollup/rollup-android-arm-eabi@4.30.1':
+ '@rollup/rollup-android-arm64@4.45.1':
optional: true
- '@rollup/rollup-android-arm64@4.30.1':
+ '@rollup/rollup-darwin-arm64@4.45.1':
optional: true
- '@rollup/rollup-darwin-arm64@4.30.1':
+ '@rollup/rollup-darwin-x64@4.45.1':
optional: true
- '@rollup/rollup-darwin-x64@4.30.1':
+ '@rollup/rollup-freebsd-arm64@4.45.1':
optional: true
- '@rollup/rollup-freebsd-arm64@4.30.1':
+ '@rollup/rollup-freebsd-x64@4.45.1':
optional: true
- '@rollup/rollup-freebsd-x64@4.30.1':
+ '@rollup/rollup-linux-arm-gnueabihf@4.45.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.30.1':
+ '@rollup/rollup-linux-arm-musleabihf@4.45.1':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.30.1':
+ '@rollup/rollup-linux-arm64-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.30.1':
+ '@rollup/rollup-linux-arm64-musl@4.45.1':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.30.1':
+ '@rollup/rollup-linux-loongarch64-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-loongarch64-gnu@4.30.1':
+ '@rollup/rollup-linux-powerpc64le-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
+ '@rollup/rollup-linux-riscv64-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.30.1':
+ '@rollup/rollup-linux-riscv64-musl@4.45.1':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.30.1':
+ '@rollup/rollup-linux-s390x-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.30.1':
+ '@rollup/rollup-linux-x64-gnu@4.45.1':
optional: true
- '@rollup/rollup-linux-x64-musl@4.30.1':
+ '@rollup/rollup-linux-x64-musl@4.45.1':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.30.1':
+ '@rollup/rollup-win32-arm64-msvc@4.45.1':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.30.1':
+ '@rollup/rollup-win32-ia32-msvc@4.45.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.30.1':
+ '@rollup/rollup-win32-x64-msvc@4.45.1':
optional: true
'@rtsao/scc@1.1.0': {}
+ '@types/chai@5.2.2':
+ dependencies:
+ '@types/deep-eql': 4.0.2
+
'@types/cookie@0.6.0': {}
- '@types/estree@1.0.6': {}
+ '@types/deep-eql@4.0.2': {}
+
+ '@types/estree@1.0.8': {}
'@types/json-schema@7.0.15': {}
@@ -2947,151 +3047,170 @@ snapshots:
'@types/node@12.20.55': {}
- '@types/statuses@2.0.5': {}
+ '@types/statuses@2.0.6': {}
'@types/tough-cookie@4.0.5': {}
- '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0)(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)(typescript@5.8.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/type-utils': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.20.0
- eslint: 9.18.0
+ '@typescript-eslint/parser': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
+ '@typescript-eslint/scope-manager': 8.37.0
+ '@typescript-eslint/type-utils': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.37.0
+ eslint: 9.31.0
graphemer: 1.4.0
- ignore: 5.3.2
+ ignore: 7.0.5
natural-compare: 1.4.0
- ts-api-utils: 2.0.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.20.0
- debug: 4.4.0
- eslint: 9.18.0
- typescript: 5.7.3
+ '@typescript-eslint/scope-manager': 8.37.0
+ '@typescript-eslint/types': 8.37.0
+ '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3)
+ '@typescript-eslint/visitor-keys': 8.37.0
+ debug: 4.4.1
+ eslint: 9.31.0
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.20.0':
+ '@typescript-eslint/project-service@8.37.0(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/visitor-keys': 8.20.0
+ '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3)
+ '@typescript-eslint/types': 8.37.0
+ debug: 4.4.1
+ typescript: 5.8.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.37.0':
+ dependencies:
+ '@typescript-eslint/types': 8.37.0
+ '@typescript-eslint/visitor-keys': 8.37.0
- '@typescript-eslint/type-utils@8.20.0(eslint@9.18.0)(typescript@5.7.3)':
+ '@typescript-eslint/tsconfig-utils@8.37.0(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
- debug: 4.4.0
- eslint: 9.18.0
- ts-api-utils: 2.0.0(typescript@5.7.3)
- typescript: 5.7.3
+ typescript: 5.8.3
+
+ '@typescript-eslint/type-utils@8.37.0(eslint@9.31.0)(typescript@5.8.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.37.0
+ '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3)
+ '@typescript-eslint/utils': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
+ debug: 4.4.1
+ eslint: 9.31.0
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.20.0': {}
+ '@typescript-eslint/types@8.37.0': {}
- '@typescript-eslint/typescript-estree@8.20.0(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.37.0(typescript@5.8.3)':
dependencies:
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/visitor-keys': 8.20.0
- debug: 4.4.0
+ '@typescript-eslint/project-service': 8.37.0(typescript@5.8.3)
+ '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3)
+ '@typescript-eslint/types': 8.37.0
+ '@typescript-eslint/visitor-keys': 8.37.0
+ debug: 4.4.1
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.6.3
- ts-api-utils: 2.0.0(typescript@5.7.3)
- typescript: 5.7.3
+ semver: 7.7.2
+ ts-api-utils: 2.1.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.37.0(eslint@9.31.0)(typescript@5.8.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
- '@typescript-eslint/scope-manager': 8.20.0
- '@typescript-eslint/types': 8.20.0
- '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3)
- eslint: 9.18.0
- typescript: 5.7.3
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0)
+ '@typescript-eslint/scope-manager': 8.37.0
+ '@typescript-eslint/types': 8.37.0
+ '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3)
+ eslint: 9.31.0
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.20.0':
+ '@typescript-eslint/visitor-keys@8.37.0':
dependencies:
- '@typescript-eslint/types': 8.20.0
- eslint-visitor-keys: 4.2.0
+ '@typescript-eslint/types': 8.37.0
+ eslint-visitor-keys: 4.2.1
- '@vitest/coverage-v8@3.0.0(vitest@3.0.0(@types/node@12.20.55)(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(yaml@2.6.1))':
+ '@vitest/coverage-v8@3.2.4(vitest@3.2.4(msw@2.10.4(typescript@5.8.3))(yaml@2.8.0))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 1.0.2
- debug: 4.4.0
+ ast-v8-to-istanbul: 0.3.3
+ debug: 4.4.1
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
istanbul-reports: 3.1.7
magic-string: 0.30.17
magicast: 0.3.5
- std-env: 3.8.0
+ std-env: 3.9.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.0.0(@types/node@12.20.55)(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(yaml@2.6.1)
+ vitest: 3.2.4(msw@2.10.4(typescript@5.8.3))(yaml@2.8.0)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@3.0.0':
+ '@vitest/expect@3.2.4':
dependencies:
- '@vitest/spy': 3.0.0
- '@vitest/utils': 3.0.0
- chai: 5.1.2
+ '@types/chai': 5.2.2
+ '@vitest/spy': 3.2.4
+ '@vitest/utils': 3.2.4
+ chai: 5.2.1
tinyrainbow: 2.0.0
- '@vitest/mocker@3.0.0(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(vite@6.0.7(@types/node@12.20.55)(yaml@2.6.1))':
+ '@vitest/mocker@3.2.4(msw@2.10.4(typescript@5.8.3))(vite@7.0.4(yaml@2.8.0))':
dependencies:
- '@vitest/spy': 3.0.0
+ '@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- msw: 2.7.0(@types/node@12.20.55)(typescript@5.7.3)
- vite: 6.0.7(@types/node@12.20.55)(yaml@2.6.1)
+ msw: 2.10.4(typescript@5.8.3)
+ vite: 7.0.4(yaml@2.8.0)
- '@vitest/pretty-format@3.0.0':
+ '@vitest/pretty-format@3.2.4':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/runner@3.0.0':
+ '@vitest/runner@3.2.4':
dependencies:
- '@vitest/utils': 3.0.0
- pathe: 2.0.1
+ '@vitest/utils': 3.2.4
+ pathe: 2.0.3
+ strip-literal: 3.0.0
- '@vitest/snapshot@3.0.0':
+ '@vitest/snapshot@3.2.4':
dependencies:
- '@vitest/pretty-format': 3.0.0
+ '@vitest/pretty-format': 3.2.4
magic-string: 0.30.17
- pathe: 2.0.1
+ pathe: 2.0.3
- '@vitest/spy@3.0.0':
+ '@vitest/spy@3.2.4':
dependencies:
- tinyspy: 3.0.2
+ tinyspy: 4.0.3
- '@vitest/utils@3.0.0':
+ '@vitest/utils@3.2.4':
dependencies:
- '@vitest/pretty-format': 3.0.0
- loupe: 3.1.2
+ '@vitest/pretty-format': 3.2.4
+ loupe: 3.1.4
tinyrainbow: 2.0.0
- acorn-jsx@5.3.2(acorn@8.14.0):
+ acorn-jsx@5.3.2(acorn@8.15.0):
dependencies:
- acorn: 8.14.0
+ acorn: 8.15.0
- acorn@8.14.0: {}
+ acorn@8.15.0: {}
ajv@6.12.6:
dependencies:
@@ -3130,58 +3249,69 @@ snapshots:
array-buffer-byte-length@1.0.2:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
is-array-buffer: 3.0.5
- array-includes@3.1.8:
+ array-includes@3.1.9:
dependencies:
call-bind: 1.0.8
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-object-atoms: 1.1.1
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
is-string: 1.1.1
+ math-intrinsics: 1.1.0
array-union@2.1.0: {}
- array.prototype.findlastindex@1.2.5:
+ array.prototype.findlastindex@1.2.6:
dependencies:
call-bind: 1.0.8
+ call-bound: 1.0.4
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-errors: 1.3.0
es-object-atoms: 1.1.1
- es-shim-unscopables: 1.0.2
+ es-shim-unscopables: 1.1.0
array.prototype.flat@1.3.3:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
- es-shim-unscopables: 1.0.2
+ es-abstract: 1.24.0
+ es-shim-unscopables: 1.1.0
array.prototype.flatmap@1.3.3:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
- es-shim-unscopables: 1.0.2
+ es-abstract: 1.24.0
+ es-shim-unscopables: 1.1.0
arraybuffer.prototype.slice@1.0.4:
dependencies:
array-buffer-byte-length: 1.0.2
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-errors: 1.3.0
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
assertion-error@2.0.1: {}
+ ast-v8-to-istanbul@0.3.3:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.29
+ estree-walker: 3.0.3
+ js-tokens: 9.0.1
+
+ async-function@1.0.0: {}
+
available-typed-arrays@1.0.7:
dependencies:
- possible-typed-array-names: 1.0.0
+ possible-typed-array-names: 1.1.0
balanced-match@1.0.2: {}
@@ -3189,12 +3319,12 @@ snapshots:
dependencies:
is-windows: 1.0.2
- brace-expansion@1.1.11:
+ brace-expansion@1.1.12:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.1:
+ brace-expansion@2.0.2:
dependencies:
balanced-match: 1.0.2
@@ -3202,39 +3332,39 @@ snapshots:
dependencies:
fill-range: 7.1.1
- bundle-require@5.1.0(esbuild@0.24.2):
+ bundle-require@5.1.0(esbuild@0.25.6):
dependencies:
- esbuild: 0.24.2
+ esbuild: 0.25.6
load-tsconfig: 0.2.5
cac@6.7.14: {}
- call-bind-apply-helpers@1.0.1:
+ call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2
call-bind@1.0.8:
dependencies:
- call-bind-apply-helpers: 1.0.1
+ call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
set-function-length: 1.2.2
- call-bound@1.0.3:
+ call-bound@1.0.4:
dependencies:
- call-bind-apply-helpers: 1.0.1
- get-intrinsic: 1.2.7
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
callsites@3.1.0: {}
- chai@5.1.2:
+ chai@5.2.1:
dependencies:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
- loupe: 3.1.2
- pathval: 2.0.0
+ loupe: 3.1.4
+ pathval: 2.0.1
chalk@4.1.2:
dependencies:
@@ -3249,7 +3379,7 @@ snapshots:
chokidar@4.0.3:
dependencies:
- readdirp: 4.1.1
+ readdirp: 4.1.2
ci-info@3.9.0: {}
@@ -3278,13 +3408,15 @@ snapshots:
colorette@2.0.20: {}
- commander@12.1.0: {}
+ commander@13.1.0: {}
commander@4.1.1: {}
concat-map@0.0.1: {}
- consola@3.4.0: {}
+ confbox@0.1.8: {}
+
+ consola@3.4.2: {}
cookie@0.7.2: {}
@@ -3296,19 +3428,19 @@ snapshots:
data-view-buffer@1.0.2:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
data-view-byte-length@1.0.2:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
data-view-byte-offset@1.0.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
is-data-view: 1.0.2
@@ -3316,7 +3448,7 @@ snapshots:
dependencies:
ms: 2.1.3
- debug@4.4.0:
+ debug@4.4.1:
dependencies:
ms: 2.1.3
@@ -3350,7 +3482,7 @@ snapshots:
dunder-proto@1.0.1:
dependencies:
- call-bind-apply-helpers: 1.0.1
+ call-bind-apply-helpers: 1.0.2
es-errors: 1.3.0
gopd: 1.2.0
@@ -3369,13 +3501,13 @@ snapshots:
environment@1.1.0: {}
- es-abstract@1.23.9:
+ es-abstract@1.24.0:
dependencies:
array-buffer-byte-length: 1.0.2
arraybuffer.prototype.slice: 1.0.4
available-typed-arrays: 1.0.7
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
data-view-buffer: 1.0.2
data-view-byte-length: 1.0.2
data-view-byte-offset: 1.0.1
@@ -3385,7 +3517,7 @@ snapshots:
es-set-tostringtag: 2.1.0
es-to-primitive: 1.3.0
function.prototype.name: 1.1.8
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
get-proto: 1.0.1
get-symbol-description: 1.1.0
globalthis: 1.0.4
@@ -3398,13 +3530,15 @@ snapshots:
is-array-buffer: 3.0.5
is-callable: 1.2.7
is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
is-regex: 1.2.1
+ is-set: 2.0.3
is-shared-array-buffer: 1.0.4
is-string: 1.1.1
is-typed-array: 1.1.15
- is-weakref: 1.1.0
+ is-weakref: 1.1.1
math-intrinsics: 1.1.0
- object-inspect: 1.13.3
+ object-inspect: 1.13.4
object-keys: 1.1.1
object.assign: 4.1.7
own-keys: 1.0.1
@@ -3413,6 +3547,7 @@ snapshots:
safe-push-apply: 1.0.0
safe-regex-test: 1.1.0
set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
string.prototype.trim: 1.2.10
string.prototype.trimend: 1.0.9
string.prototype.trimstart: 1.0.8
@@ -3421,13 +3556,13 @@ snapshots:
typed-array-byte-offset: 1.0.4
typed-array-length: 1.0.7
unbox-primitive: 1.1.0
- which-typed-array: 1.1.18
+ which-typed-array: 1.1.19
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
- es-module-lexer@1.6.0: {}
+ es-module-lexer@1.7.0: {}
es-object-atoms@1.1.1:
dependencies:
@@ -3436,11 +3571,11 @@ snapshots:
es-set-tostringtag@2.1.0:
dependencies:
es-errors: 1.3.0
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
hasown: 2.0.2
- es-shim-unscopables@1.0.2:
+ es-shim-unscopables@1.1.0:
dependencies:
hasown: 2.0.2
@@ -3450,46 +3585,48 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
- esbuild@0.24.2:
+ esbuild@0.25.6:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.24.2
- '@esbuild/android-arm': 0.24.2
- '@esbuild/android-arm64': 0.24.2
- '@esbuild/android-x64': 0.24.2
- '@esbuild/darwin-arm64': 0.24.2
- '@esbuild/darwin-x64': 0.24.2
- '@esbuild/freebsd-arm64': 0.24.2
- '@esbuild/freebsd-x64': 0.24.2
- '@esbuild/linux-arm': 0.24.2
- '@esbuild/linux-arm64': 0.24.2
- '@esbuild/linux-ia32': 0.24.2
- '@esbuild/linux-loong64': 0.24.2
- '@esbuild/linux-mips64el': 0.24.2
- '@esbuild/linux-ppc64': 0.24.2
- '@esbuild/linux-riscv64': 0.24.2
- '@esbuild/linux-s390x': 0.24.2
- '@esbuild/linux-x64': 0.24.2
- '@esbuild/netbsd-arm64': 0.24.2
- '@esbuild/netbsd-x64': 0.24.2
- '@esbuild/openbsd-arm64': 0.24.2
- '@esbuild/openbsd-x64': 0.24.2
- '@esbuild/sunos-x64': 0.24.2
- '@esbuild/win32-arm64': 0.24.2
- '@esbuild/win32-ia32': 0.24.2
- '@esbuild/win32-x64': 0.24.2
+ '@esbuild/aix-ppc64': 0.25.6
+ '@esbuild/android-arm': 0.25.6
+ '@esbuild/android-arm64': 0.25.6
+ '@esbuild/android-x64': 0.25.6
+ '@esbuild/darwin-arm64': 0.25.6
+ '@esbuild/darwin-x64': 0.25.6
+ '@esbuild/freebsd-arm64': 0.25.6
+ '@esbuild/freebsd-x64': 0.25.6
+ '@esbuild/linux-arm': 0.25.6
+ '@esbuild/linux-arm64': 0.25.6
+ '@esbuild/linux-ia32': 0.25.6
+ '@esbuild/linux-loong64': 0.25.6
+ '@esbuild/linux-mips64el': 0.25.6
+ '@esbuild/linux-ppc64': 0.25.6
+ '@esbuild/linux-riscv64': 0.25.6
+ '@esbuild/linux-s390x': 0.25.6
+ '@esbuild/linux-x64': 0.25.6
+ '@esbuild/netbsd-arm64': 0.25.6
+ '@esbuild/netbsd-x64': 0.25.6
+ '@esbuild/openbsd-arm64': 0.25.6
+ '@esbuild/openbsd-x64': 0.25.6
+ '@esbuild/openharmony-arm64': 0.25.6
+ '@esbuild/sunos-x64': 0.25.6
+ '@esbuild/win32-arm64': 0.25.6
+ '@esbuild/win32-ia32': 0.25.6
+ '@esbuild/win32-x64': 0.25.6
escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
- eslint-config-prettier@10.0.1(eslint@9.18.0):
+ eslint-config-prettier@10.1.5(eslint@9.31.0):
dependencies:
- eslint: 9.18.0
+ eslint: 9.31.0
- eslint-config-turbo@2.3.3(eslint@9.18.0):
+ eslint-config-turbo@2.5.4(eslint@9.31.0)(turbo@2.5.4):
dependencies:
- eslint: 9.18.0
- eslint-plugin-turbo: 2.3.3(eslint@9.18.0)
+ eslint: 9.31.0
+ eslint-plugin-turbo: 2.5.4(eslint@9.31.0)(turbo@2.5.4)
+ turbo: 2.5.4
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -3499,28 +3636,28 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
- eslint: 9.18.0
+ '@typescript-eslint/parser': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
+ eslint: 9.31.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint@9.18.0):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0):
dependencies:
'@rtsao/scc': 1.1.0
- array-includes: 3.1.8
- array.prototype.findlastindex: 1.2.5
+ array-includes: 3.1.9
+ array.prototype.findlastindex: 1.2.6
array.prototype.flat: 1.3.3
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.18.0
+ eslint: 9.31.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.18.0)
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.37.0(eslint@9.31.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -3532,57 +3669,59 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.20.0(eslint@9.18.0)(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.37.0(eslint@9.31.0)(typescript@5.8.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-prettier@5.2.2(eslint-config-prettier@10.0.1(eslint@9.18.0))(eslint@9.18.0)(prettier@3.4.2):
+ eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@9.31.0))(eslint@9.31.0)(prettier@3.6.2):
dependencies:
- eslint: 9.18.0
- prettier: 3.4.2
+ eslint: 9.31.0
+ prettier: 3.6.2
prettier-linter-helpers: 1.0.0
- synckit: 0.9.2
+ synckit: 0.11.8
optionalDependencies:
- eslint-config-prettier: 10.0.1(eslint@9.18.0)
+ eslint-config-prettier: 10.1.5(eslint@9.31.0)
- eslint-plugin-turbo@2.3.3(eslint@9.18.0):
+ eslint-plugin-turbo@2.5.4(eslint@9.31.0)(turbo@2.5.4):
dependencies:
dotenv: 16.0.3
- eslint: 9.18.0
+ eslint: 9.31.0
+ turbo: 2.5.4
- eslint-scope@8.2.0:
+ eslint-scope@8.4.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
eslint-visitor-keys@3.4.3: {}
- eslint-visitor-keys@4.2.0: {}
+ eslint-visitor-keys@4.2.1: {}
- eslint@9.18.0:
+ eslint@9.31.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0)
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0)
'@eslint-community/regexpp': 4.12.1
- '@eslint/config-array': 0.19.1
- '@eslint/core': 0.10.0
- '@eslint/eslintrc': 3.2.0
- '@eslint/js': 9.18.0
- '@eslint/plugin-kit': 0.2.5
+ '@eslint/config-array': 0.21.0
+ '@eslint/config-helpers': 0.3.0
+ '@eslint/core': 0.15.1
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.31.0
+ '@eslint/plugin-kit': 0.3.3
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.1
- '@types/estree': 1.0.6
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
'@types/json-schema': 7.0.15
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.0
+ debug: 4.4.1
escape-string-regexp: 4.0.0
- eslint-scope: 8.2.0
- eslint-visitor-keys: 4.2.0
- espree: 10.3.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -3600,11 +3739,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- espree@10.3.0:
+ espree@10.4.0:
dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
- eslint-visitor-keys: 4.2.0
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
esprima@4.0.1: {}
@@ -3620,7 +3759,7 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
esutils@2.0.3: {}
@@ -3638,7 +3777,7 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- expect-type@1.1.0: {}
+ expect-type@1.2.2: {}
extendable-error@0.1.7: {}
@@ -3664,13 +3803,13 @@ snapshots:
fast-levenshtein@2.0.6: {}
- fastq@1.18.0:
+ fastq@1.19.1:
dependencies:
- reusify: 1.0.4
+ reusify: 1.1.0
- fdir@6.4.2(picomatch@4.0.2):
+ fdir@6.4.6(picomatch@4.0.3):
optionalDependencies:
- picomatch: 4.0.2
+ picomatch: 4.0.3
file-entry-cache@8.0.0:
dependencies:
@@ -3690,18 +3829,24 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
+ fix-dts-default-cjs-exports@1.0.1:
+ dependencies:
+ magic-string: 0.30.17
+ mlly: 1.7.4
+ rollup: 4.45.1
+
flat-cache@4.0.1:
dependencies:
- flatted: 3.3.2
+ flatted: 3.3.3
keyv: 4.5.4
- flatted@3.3.2: {}
+ flatted@3.3.3: {}
- for-each@0.3.3:
+ for-each@0.3.5:
dependencies:
is-callable: 1.2.7
- foreground-child@3.3.0:
+ foreground-child@3.3.1:
dependencies:
cross-spawn: 7.0.6
signal-exit: 4.1.0
@@ -3726,7 +3871,7 @@ snapshots:
function.prototype.name@1.1.8:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
define-properties: 1.2.1
functions-have-names: 1.2.3
hasown: 2.0.2
@@ -3738,9 +3883,9 @@ snapshots:
get-east-asian-width@1.3.0: {}
- get-intrinsic@1.2.7:
+ get-intrinsic@1.3.0:
dependencies:
- call-bind-apply-helpers: 1.0.1
+ call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
es-errors: 1.3.0
es-object-atoms: 1.1.1
@@ -3760,9 +3905,9 @@ snapshots:
get-symbol-description@1.1.0:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
glob-parent@5.1.2:
dependencies:
@@ -3774,18 +3919,18 @@ snapshots:
glob@10.4.5:
dependencies:
- foreground-child: 3.3.0
+ foreground-child: 3.3.1
jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
- glob@11.0.1:
+ glob@11.0.3:
dependencies:
- foreground-child: 3.3.0
- jackspeak: 4.0.2
- minimatch: 10.0.1
+ foreground-child: 3.3.1
+ jackspeak: 4.1.1
+ minimatch: 10.0.3
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
@@ -3814,7 +3959,7 @@ snapshots:
graphemer@1.4.0: {}
- graphql@16.10.0: {}
+ graphql@16.11.0: {}
has-bigints@1.1.0: {}
@@ -3842,7 +3987,7 @@ snapshots:
html-escaper@2.0.2: {}
- human-id@1.0.2: {}
+ human-id@4.1.1: {}
human-signals@5.0.0: {}
@@ -3854,7 +3999,9 @@ snapshots:
ignore@5.3.2: {}
- import-fresh@3.3.0:
+ ignore@7.0.5: {}
+
+ import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
@@ -3870,12 +4017,13 @@ snapshots:
is-array-buffer@3.0.5:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
- get-intrinsic: 1.2.7
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
- is-async-function@2.1.0:
+ is-async-function@2.1.1:
dependencies:
- call-bound: 1.0.3
+ async-function: 1.0.0
+ call-bound: 1.0.4
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0
@@ -3884,9 +4032,9 @@ snapshots:
dependencies:
has-bigints: 1.1.0
- is-boolean-object@1.2.1:
+ is-boolean-object@1.2.2:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
is-callable@1.2.7: {}
@@ -3897,20 +4045,20 @@ snapshots:
is-data-view@1.0.2:
dependencies:
- call-bound: 1.0.3
- get-intrinsic: 1.2.7
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
is-typed-array: 1.1.15
is-date-object@1.1.0:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
is-fullwidth-code-point@3.0.0: {}
@@ -3922,7 +4070,7 @@ snapshots:
is-generator-function@1.1.0:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
get-proto: 1.0.1
has-tostringtag: 1.0.2
safe-regex-test: 1.1.0
@@ -3933,18 +4081,20 @@ snapshots:
is-map@2.0.3: {}
+ is-negative-zero@2.0.3: {}
+
is-node-process@1.2.0: {}
is-number-object@1.1.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
is-number@7.0.0: {}
is-regex@1.2.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
gopd: 1.2.0
has-tostringtag: 1.0.2
hasown: 2.0.2
@@ -3953,13 +4103,13 @@ snapshots:
is-shared-array-buffer@1.0.4:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
is-stream@3.0.0: {}
is-string@1.1.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-tostringtag: 1.0.2
is-subdir@1.2.0:
@@ -3968,24 +4118,24 @@ snapshots:
is-symbol@1.1.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-symbols: 1.1.0
safe-regex-test: 1.1.0
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.18
+ which-typed-array: 1.1.19
is-weakmap@2.0.2: {}
- is-weakref@1.1.0:
+ is-weakref@1.1.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
is-weakset@2.0.4:
dependencies:
- call-bound: 1.0.3
- get-intrinsic: 1.2.7
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
is-windows@1.0.2: {}
@@ -4003,8 +4153,8 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
- debug: 4.4.0
+ '@jridgewell/trace-mapping': 0.3.29
+ debug: 4.4.1
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
@@ -4020,12 +4170,14 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- jackspeak@4.0.2:
+ jackspeak@4.1.1:
dependencies:
'@isaacs/cliui': 8.0.2
joycon@3.1.1: {}
+ js-tokens@9.0.1: {}
+
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -4062,22 +4214,22 @@ snapshots:
lines-and-columns@1.2.4: {}
- lint-staged@15.4.0:
+ lint-staged@15.5.2:
dependencies:
chalk: 5.4.1
- commander: 12.1.0
- debug: 4.4.0
+ commander: 13.1.0
+ debug: 4.4.1
execa: 8.0.1
lilconfig: 3.1.3
- listr2: 8.2.5
+ listr2: 8.3.3
micromatch: 4.0.8
pidtree: 0.6.0
string-argv: 0.3.2
- yaml: 2.6.1
+ yaml: 2.8.0
transitivePeerDependencies:
- supports-color
- listr2@8.2.5:
+ listr2@8.3.3:
dependencies:
cli-truncate: 4.0.0
colorette: 2.0.20
@@ -4110,25 +4262,25 @@ snapshots:
strip-ansi: 7.1.0
wrap-ansi: 9.0.0
- loupe@3.1.2: {}
+ loupe@3.1.4: {}
lru-cache@10.4.3: {}
- lru-cache@11.0.2: {}
+ lru-cache@11.1.0: {}
magic-string@0.30.17:
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.4
magicast@0.3.5:
dependencies:
- '@babel/parser': 7.26.5
- '@babel/types': 7.26.5
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.1
source-map-js: 1.2.1
make-dir@4.0.0:
dependencies:
- semver: 7.6.3
+ semver: 7.7.2
math-intrinsics@1.1.0: {}
@@ -4145,48 +4297,55 @@ snapshots:
mimic-function@5.0.1: {}
- minimatch@10.0.1:
+ minimatch@10.0.3:
dependencies:
- brace-expansion: 2.0.1
+ '@isaacs/brace-expansion': 5.0.0
minimatch@3.1.2:
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 1.1.12
minimatch@9.0.5:
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 2.0.2
minimist@1.2.8: {}
minipass@7.1.2: {}
+ mlly@1.7.4:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
mri@1.2.0: {}
ms@2.1.3: {}
- msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3):
+ msw@2.10.4(typescript@5.8.3):
dependencies:
'@bundled-es-modules/cookie': 2.0.1
'@bundled-es-modules/statuses': 1.0.1
'@bundled-es-modules/tough-cookie': 0.1.6
- '@inquirer/confirm': 5.1.3(@types/node@12.20.55)
- '@mswjs/interceptors': 0.37.5
+ '@inquirer/confirm': 5.1.13
+ '@mswjs/interceptors': 0.39.2
'@open-draft/deferred-promise': 2.2.0
'@open-draft/until': 2.1.0
'@types/cookie': 0.6.0
- '@types/statuses': 2.0.5
- graphql: 16.10.0
+ '@types/statuses': 2.0.6
+ graphql: 16.11.0
headers-polyfill: 4.0.3
is-node-process: 1.2.0
outvariant: 1.4.3
path-to-regexp: 6.3.0
picocolors: 1.1.1
strict-event-emitter: 0.5.1
- type-fest: 4.32.0
+ type-fest: 4.41.0
yargs: 17.7.2
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.8.3
transitivePeerDependencies:
- '@types/node'
@@ -4198,7 +4357,7 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
- nanoid@3.3.8: {}
+ nanoid@3.3.11: {}
natural-compare@1.4.0: {}
@@ -4208,14 +4367,14 @@ snapshots:
object-assign@4.1.1: {}
- object-inspect@1.13.3: {}
+ object-inspect@1.13.4: {}
object-keys@1.1.1: {}
object.assign@4.1.7:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
define-properties: 1.2.1
es-object-atoms: 1.1.1
has-symbols: 1.1.0
@@ -4225,19 +4384,19 @@ snapshots:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-object-atoms: 1.1.1
object.groupby@1.0.3:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
object.values@1.2.1:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
define-properties: 1.2.1
es-object-atoms: 1.1.1
@@ -4266,7 +4425,7 @@ snapshots:
own-keys@1.0.1:
dependencies:
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
object-keys: 1.1.1
safe-push-apply: 1.0.0
@@ -4296,7 +4455,9 @@ snapshots:
package-json-from-dist@1.0.1: {}
- package-manager-detector@0.2.8: {}
+ package-manager-detector@0.2.11:
+ dependencies:
+ quansync: 0.2.10
parent-module@1.0.1:
dependencies:
@@ -4317,41 +4478,47 @@ snapshots:
path-scurry@2.0.0:
dependencies:
- lru-cache: 11.0.2
+ lru-cache: 11.1.0
minipass: 7.1.2
path-to-regexp@6.3.0: {}
path-type@4.0.0: {}
- pathe@2.0.1: {}
+ pathe@2.0.3: {}
- pathval@2.0.0: {}
+ pathval@2.0.1: {}
picocolors@1.1.1: {}
picomatch@2.3.1: {}
- picomatch@4.0.2: {}
+ picomatch@4.0.3: {}
pidtree@0.6.0: {}
pify@4.0.1: {}
- pirates@4.0.6: {}
+ pirates@4.0.7: {}
- possible-typed-array-names@1.0.0: {}
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.4
+ pathe: 2.0.3
- postcss-load-config@6.0.1(postcss@8.5.1)(yaml@2.6.1):
+ possible-typed-array-names@1.1.0: {}
+
+ postcss-load-config@6.0.1(postcss@8.5.6)(yaml@2.8.0):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
- postcss: 8.5.1
- yaml: 2.6.1
+ postcss: 8.5.6
+ yaml: 2.8.0
- postcss@8.5.1:
+ postcss@8.5.6:
dependencies:
- nanoid: 3.3.8
+ nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
@@ -4363,7 +4530,7 @@ snapshots:
prettier@2.8.8: {}
- prettier@3.4.2: {}
+ prettier@3.6.2: {}
psl@1.15.0:
dependencies:
@@ -4371,6 +4538,8 @@ snapshots:
punycode@2.3.1: {}
+ quansync@0.2.10: {}
+
querystringify@2.2.0: {}
queue-microtask@1.2.3: {}
@@ -4382,21 +4551,19 @@ snapshots:
pify: 4.0.1
strip-bom: 3.0.0
- readdirp@4.1.1: {}
+ readdirp@4.1.2: {}
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.8
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-errors: 1.3.0
es-object-atoms: 1.1.1
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
get-proto: 1.0.1
which-builtin-type: 1.2.1
- regenerator-runtime@0.14.1: {}
-
regexp.prototype.flags@1.5.4:
dependencies:
call-bind: 1.0.8
@@ -4425,38 +4592,39 @@ snapshots:
onetime: 7.0.0
signal-exit: 4.1.0
- reusify@1.0.4: {}
+ reusify@1.1.0: {}
rfdc@1.4.1: {}
rimraf@6.0.1:
dependencies:
- glob: 11.0.1
+ glob: 11.0.3
package-json-from-dist: 1.0.1
- rollup@4.30.1:
+ rollup@4.45.1:
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.30.1
- '@rollup/rollup-android-arm64': 4.30.1
- '@rollup/rollup-darwin-arm64': 4.30.1
- '@rollup/rollup-darwin-x64': 4.30.1
- '@rollup/rollup-freebsd-arm64': 4.30.1
- '@rollup/rollup-freebsd-x64': 4.30.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.30.1
- '@rollup/rollup-linux-arm-musleabihf': 4.30.1
- '@rollup/rollup-linux-arm64-gnu': 4.30.1
- '@rollup/rollup-linux-arm64-musl': 4.30.1
- '@rollup/rollup-linux-loongarch64-gnu': 4.30.1
- '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1
- '@rollup/rollup-linux-riscv64-gnu': 4.30.1
- '@rollup/rollup-linux-s390x-gnu': 4.30.1
- '@rollup/rollup-linux-x64-gnu': 4.30.1
- '@rollup/rollup-linux-x64-musl': 4.30.1
- '@rollup/rollup-win32-arm64-msvc': 4.30.1
- '@rollup/rollup-win32-ia32-msvc': 4.30.1
- '@rollup/rollup-win32-x64-msvc': 4.30.1
+ '@rollup/rollup-android-arm-eabi': 4.45.1
+ '@rollup/rollup-android-arm64': 4.45.1
+ '@rollup/rollup-darwin-arm64': 4.45.1
+ '@rollup/rollup-darwin-x64': 4.45.1
+ '@rollup/rollup-freebsd-arm64': 4.45.1
+ '@rollup/rollup-freebsd-x64': 4.45.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.45.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.45.1
+ '@rollup/rollup-linux-arm64-gnu': 4.45.1
+ '@rollup/rollup-linux-arm64-musl': 4.45.1
+ '@rollup/rollup-linux-loongarch64-gnu': 4.45.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.45.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.45.1
+ '@rollup/rollup-linux-riscv64-musl': 4.45.1
+ '@rollup/rollup-linux-s390x-gnu': 4.45.1
+ '@rollup/rollup-linux-x64-gnu': 4.45.1
+ '@rollup/rollup-linux-x64-musl': 4.45.1
+ '@rollup/rollup-win32-arm64-msvc': 4.45.1
+ '@rollup/rollup-win32-ia32-msvc': 4.45.1
+ '@rollup/rollup-win32-x64-msvc': 4.45.1
fsevents: 2.3.3
run-parallel@1.2.0:
@@ -4466,8 +4634,8 @@ snapshots:
safe-array-concat@1.1.3:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
- get-intrinsic: 1.2.7
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
has-symbols: 1.1.0
isarray: 2.0.5
@@ -4478,7 +4646,7 @@ snapshots:
safe-regex-test@1.1.0:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
is-regex: 1.2.1
@@ -4486,14 +4654,14 @@ snapshots:
semver@6.3.1: {}
- semver@7.6.3: {}
+ semver@7.7.2: {}
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.7
+ get-intrinsic: 1.3.0
gopd: 1.2.0
has-property-descriptors: 1.0.2
@@ -4519,27 +4687,27 @@ snapshots:
side-channel-list@1.0.0:
dependencies:
es-errors: 1.3.0
- object-inspect: 1.13.3
+ object-inspect: 1.13.4
side-channel-map@1.0.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
- get-intrinsic: 1.2.7
- object-inspect: 1.13.3
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
side-channel-weakmap@1.0.2:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
- get-intrinsic: 1.2.7
- object-inspect: 1.13.3
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
side-channel-map: 1.0.1
side-channel@1.1.0:
dependencies:
es-errors: 1.3.0
- object-inspect: 1.13.3
+ object-inspect: 1.13.4
side-channel-list: 1.0.0
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
@@ -4575,9 +4743,14 @@ snapshots:
stackback@0.0.2: {}
- statuses@2.0.1: {}
+ statuses@2.0.2: {}
+
+ std-env@3.9.0: {}
- std-env@3.8.0: {}
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
strict-event-emitter@0.5.1: {}
@@ -4604,17 +4777,17 @@ snapshots:
string.prototype.trim@1.2.10:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
define-data-property: 1.1.4
define-properties: 1.2.1
- es-abstract: 1.23.9
+ es-abstract: 1.24.0
es-object-atoms: 1.1.1
has-property-descriptors: 1.0.2
string.prototype.trimend@1.0.9:
dependencies:
call-bind: 1.0.8
- call-bound: 1.0.3
+ call-bound: 1.0.4
define-properties: 1.2.1
es-object-atoms: 1.1.1
@@ -4638,14 +4811,18 @@ snapshots:
strip-json-comments@3.1.1: {}
+ strip-literal@3.0.0:
+ dependencies:
+ js-tokens: 9.0.1
+
sucrase@3.35.0:
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/gen-mapping': 0.3.12
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
- pirates: 4.0.6
+ pirates: 4.0.7
ts-interface-checker: 0.1.13
supports-color@7.2.0:
@@ -4654,10 +4831,9 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- synckit@0.9.2:
+ synckit@0.11.8:
dependencies:
- '@pkgr/core': 0.1.1
- tslib: 2.8.1
+ '@pkgr/core': 0.2.7
term-size@2.2.1: {}
@@ -4679,16 +4855,16 @@ snapshots:
tinyexec@0.3.2: {}
- tinyglobby@0.2.10:
+ tinyglobby@0.2.14:
dependencies:
- fdir: 6.4.2(picomatch@4.0.2)
- picomatch: 4.0.2
+ fdir: 6.4.6(picomatch@4.0.3)
+ picomatch: 4.0.3
- tinypool@1.0.2: {}
+ tinypool@1.1.1: {}
tinyrainbow@2.0.0: {}
- tinyspy@3.0.2: {}
+ tinyspy@4.0.3: {}
tmp@0.0.33:
dependencies:
@@ -4711,17 +4887,17 @@ snapshots:
tree-kill@1.2.2: {}
- ts-api-utils@2.0.0(typescript@5.7.3):
+ ts-api-utils@2.1.0(typescript@5.8.3):
dependencies:
- typescript: 5.7.3
+ typescript: 5.8.3
ts-expect@1.3.0: {}
ts-interface-checker@0.1.13: {}
- tsconfck@3.1.4(typescript@5.7.3):
+ tsconfck@3.1.6(typescript@5.8.3):
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.8.3
tsconfig-paths@3.15.0:
dependencies:
@@ -4730,61 +4906,60 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
- tslib@2.8.1: {}
-
- tsup@8.3.5(postcss@8.5.1)(typescript@5.7.3)(yaml@2.6.1):
+ tsup@8.5.0(postcss@8.5.6)(typescript@5.8.3)(yaml@2.8.0):
dependencies:
- bundle-require: 5.1.0(esbuild@0.24.2)
+ bundle-require: 5.1.0(esbuild@0.25.6)
cac: 6.7.14
chokidar: 4.0.3
- consola: 3.4.0
- debug: 4.4.0
- esbuild: 0.24.2
+ consola: 3.4.2
+ debug: 4.4.1
+ esbuild: 0.25.6
+ fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
- postcss-load-config: 6.0.1(postcss@8.5.1)(yaml@2.6.1)
+ postcss-load-config: 6.0.1(postcss@8.5.6)(yaml@2.8.0)
resolve-from: 5.0.0
- rollup: 4.30.1
+ rollup: 4.45.1
source-map: 0.8.0-beta.0
sucrase: 3.35.0
tinyexec: 0.3.2
- tinyglobby: 0.2.10
+ tinyglobby: 0.2.14
tree-kill: 1.2.2
optionalDependencies:
- postcss: 8.5.1
- typescript: 5.7.3
+ postcss: 8.5.6
+ typescript: 5.8.3
transitivePeerDependencies:
- jiti
- supports-color
- tsx
- yaml
- turbo-darwin-64@2.3.3:
+ turbo-darwin-64@2.5.4:
optional: true
- turbo-darwin-arm64@2.3.3:
+ turbo-darwin-arm64@2.5.4:
optional: true
- turbo-linux-64@2.3.3:
+ turbo-linux-64@2.5.4:
optional: true
- turbo-linux-arm64@2.3.3:
+ turbo-linux-arm64@2.5.4:
optional: true
- turbo-windows-64@2.3.3:
+ turbo-windows-64@2.5.4:
optional: true
- turbo-windows-arm64@2.3.3:
+ turbo-windows-arm64@2.5.4:
optional: true
- turbo@2.3.3:
+ turbo@2.5.4:
optionalDependencies:
- turbo-darwin-64: 2.3.3
- turbo-darwin-arm64: 2.3.3
- turbo-linux-64: 2.3.3
- turbo-linux-arm64: 2.3.3
- turbo-windows-64: 2.3.3
- turbo-windows-arm64: 2.3.3
+ turbo-darwin-64: 2.5.4
+ turbo-darwin-arm64: 2.5.4
+ turbo-linux-64: 2.5.4
+ turbo-linux-arm64: 2.5.4
+ turbo-windows-64: 2.5.4
+ turbo-windows-arm64: 2.5.4
type-check@0.4.0:
dependencies:
@@ -4792,18 +4967,18 @@ snapshots:
type-fest@0.21.3: {}
- type-fest@4.32.0: {}
+ type-fest@4.41.0: {}
typed-array-buffer@1.0.3:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
es-errors: 1.3.0
is-typed-array: 1.1.15
typed-array-byte-length@1.0.3:
dependencies:
call-bind: 1.0.8
- for-each: 0.3.3
+ for-each: 0.3.5
gopd: 1.2.0
has-proto: 1.2.0
is-typed-array: 1.1.15
@@ -4812,7 +4987,7 @@ snapshots:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
- for-each: 0.3.3
+ for-each: 0.3.5
gopd: 1.2.0
has-proto: 1.2.0
is-typed-array: 1.1.15
@@ -4821,17 +4996,19 @@ snapshots:
typed-array-length@1.0.7:
dependencies:
call-bind: 1.0.8
- for-each: 0.3.3
+ for-each: 0.3.5
gopd: 1.2.0
is-typed-array: 1.1.15
- possible-typed-array-names: 1.0.0
+ possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript@5.7.3: {}
+ typescript@5.8.3: {}
+
+ ufo@1.6.1: {}
unbox-primitive@1.1.0:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
has-bigints: 1.1.0
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
@@ -4849,13 +5026,13 @@ snapshots:
querystringify: 2.2.0
requires-port: 1.0.0
- vite-node@3.0.0(@types/node@12.20.55)(yaml@2.6.1):
+ vite-node@3.2.4(yaml@2.8.0):
dependencies:
cac: 6.7.14
- debug: 4.4.0
- es-module-lexer: 1.6.0
- pathe: 2.0.1
- vite: 6.0.7(@types/node@12.20.55)(yaml@2.6.1)
+ debug: 4.4.1
+ es-module-lexer: 1.7.0
+ pathe: 2.0.3
+ vite: 7.0.4(yaml@2.8.0)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -4870,51 +5047,54 @@ snapshots:
- tsx
- yaml
- vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.0.7(@types/node@12.20.55)(yaml@2.6.1)):
+ vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.0.4(yaml@2.8.0)):
dependencies:
- debug: 4.4.0
+ debug: 4.4.1
globrex: 0.1.2
- tsconfck: 3.1.4(typescript@5.7.3)
+ tsconfck: 3.1.6(typescript@5.8.3)
optionalDependencies:
- vite: 6.0.7(@types/node@12.20.55)(yaml@2.6.1)
+ vite: 7.0.4(yaml@2.8.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@6.0.7(@types/node@12.20.55)(yaml@2.6.1):
+ vite@7.0.4(yaml@2.8.0):
dependencies:
- esbuild: 0.24.2
- postcss: 8.5.1
- rollup: 4.30.1
+ esbuild: 0.25.6
+ fdir: 6.4.6(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.6
+ rollup: 4.45.1
+ tinyglobby: 0.2.14
optionalDependencies:
- '@types/node': 12.20.55
fsevents: 2.3.3
- yaml: 2.6.1
-
- vitest@3.0.0(@types/node@12.20.55)(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(yaml@2.6.1):
- dependencies:
- '@vitest/expect': 3.0.0
- '@vitest/mocker': 3.0.0(msw@2.7.0(@types/node@12.20.55)(typescript@5.7.3))(vite@6.0.7(@types/node@12.20.55)(yaml@2.6.1))
- '@vitest/pretty-format': 3.0.0
- '@vitest/runner': 3.0.0
- '@vitest/snapshot': 3.0.0
- '@vitest/spy': 3.0.0
- '@vitest/utils': 3.0.0
- chai: 5.1.2
- debug: 4.4.0
- expect-type: 1.1.0
+ yaml: 2.8.0
+
+ vitest@3.2.4(msw@2.10.4(typescript@5.8.3))(yaml@2.8.0):
+ dependencies:
+ '@types/chai': 5.2.2
+ '@vitest/expect': 3.2.4
+ '@vitest/mocker': 3.2.4(msw@2.10.4(typescript@5.8.3))(vite@7.0.4(yaml@2.8.0))
+ '@vitest/pretty-format': 3.2.4
+ '@vitest/runner': 3.2.4
+ '@vitest/snapshot': 3.2.4
+ '@vitest/spy': 3.2.4
+ '@vitest/utils': 3.2.4
+ chai: 5.2.1
+ debug: 4.4.1
+ expect-type: 1.2.2
magic-string: 0.30.17
- pathe: 2.0.1
- std-env: 3.8.0
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ std-env: 3.9.0
tinybench: 2.9.0
tinyexec: 0.3.2
- tinypool: 1.0.2
+ tinyglobby: 0.2.14
+ tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 6.0.7(@types/node@12.20.55)(yaml@2.6.1)
- vite-node: 3.0.0(@types/node@12.20.55)(yaml@2.6.1)
+ vite: 7.0.4(yaml@2.8.0)
+ vite-node: 3.2.4(yaml@2.8.0)
why-is-node-running: 2.3.0
- optionalDependencies:
- '@types/node': 12.20.55
transitivePeerDependencies:
- jiti
- less
@@ -4940,26 +5120,26 @@ snapshots:
which-boxed-primitive@1.1.1:
dependencies:
is-bigint: 1.1.0
- is-boolean-object: 1.2.1
+ is-boolean-object: 1.2.2
is-number-object: 1.1.1
is-string: 1.1.1
is-symbol: 1.1.1
which-builtin-type@1.2.1:
dependencies:
- call-bound: 1.0.3
+ call-bound: 1.0.4
function.prototype.name: 1.1.8
has-tostringtag: 1.0.2
- is-async-function: 2.1.0
+ is-async-function: 2.1.1
is-date-object: 1.1.0
is-finalizationregistry: 1.1.1
is-generator-function: 1.1.0
is-regex: 1.2.1
- is-weakref: 1.1.0
+ is-weakref: 1.1.1
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.18
+ which-typed-array: 1.1.19
which-collection@1.0.2:
dependencies:
@@ -4968,12 +5148,13 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.18:
+ which-typed-array@1.1.19:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
- call-bound: 1.0.3
- for-each: 0.3.3
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
gopd: 1.2.0
has-tostringtag: 1.0.2
@@ -5014,7 +5195,7 @@ snapshots:
y18n@5.0.8: {}
- yaml@2.6.1: {}
+ yaml@2.8.0: {}
yargs-parser@21.1.1: {}