diff --git a/.gitignore b/.gitignore index b57d3733f..4dfac5074 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ yarn-error.log* dist coverage .env +.nuxt .svelte-kit # test files diff --git a/.prettierignore b/.prettierignore index 6609980c4..b49b9a6d2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,7 @@ **/node_modules **/templates **/dist +**/.nuxt **/.svelte-kit **/.vitepress/cache **/.vitepress/dist diff --git a/docs/openapi-ts/configuration.md b/docs/openapi-ts/configuration.md index cabf1f74c..847a894e5 100644 --- a/docs/openapi-ts/configuration.md +++ b/docs/openapi-ts/configuration.md @@ -46,7 +46,7 @@ Alternatively, you can use `openapi-ts.config.js` and configure the export state Input is the first thing you must define. It can be a path, URL, or a string content resolving to an OpenAPI specification. Hey API supports all valid OpenAPI versions and file formats. ::: info -We use [`@hey-api/json-schema-ref-parser`](https://github.com/hey-api/json-schema-ref-parser) to resolve file locations. Please note that accessing a HTTPS URL on localhost has a known [workaround](https://github.com/hey-api/openapi-ts/issues/276). +If you use an HTTPS URL with a self-signed certificate in development, you will need to set [`NODE_TLS_REJECT_UNAUTHORIZED=0`](https://github.com/hey-api/openapi-ts/issues/276#issuecomment-2043143501) in your environment. ::: ## Output diff --git a/eslint.config.js b/eslint.config.js index d56078d74..0133a50ca 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -65,6 +65,7 @@ export default tseslint.config( '**/test/e2e/generated/', '**/test/generated/', '**/__snapshots__/', + '**/.nuxt/', '**/.svelte-kit/', '**/.vitepress/cache', '**/.vitepress/dist', diff --git a/examples/openapi-ts-nuxt/.gitignore b/examples/openapi-ts-nuxt/.gitignore new file mode 100644 index 000000000..4a7f73a2e --- /dev/null +++ b/examples/openapi-ts-nuxt/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/examples/openapi-ts-nuxt/README.md b/examples/openapi-ts-nuxt/README.md new file mode 100644 index 000000000..25b58212c --- /dev/null +++ b/examples/openapi-ts-nuxt/README.md @@ -0,0 +1,75 @@ +# Nuxt Minimal Starter + +Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install dependencies: + +```bash +# npm +npm install + +# pnpm +pnpm install + +# yarn +yarn install + +# bun +bun install +``` + +## Development Server + +Start the development server on `http://localhost:3000`: + +```bash +# npm +npm run dev + +# pnpm +pnpm dev + +# yarn +yarn dev + +# bun +bun run dev +``` + +## Production + +Build the application for production: + +```bash +# npm +npm run build + +# pnpm +pnpm build + +# yarn +yarn build + +# bun +bun run build +``` + +Locally preview production build: + +```bash +# npm +npm run preview + +# pnpm +pnpm preview + +# yarn +yarn preview + +# bun +bun run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/examples/openapi-ts-nuxt/app.vue b/examples/openapi-ts-nuxt/app.vue new file mode 100644 index 000000000..e237d556f --- /dev/null +++ b/examples/openapi-ts-nuxt/app.vue @@ -0,0 +1,7 @@ + diff --git a/examples/openapi-ts-nuxt/client/index.ts b/examples/openapi-ts-nuxt/client/index.ts new file mode 100644 index 000000000..688e3c912 --- /dev/null +++ b/examples/openapi-ts-nuxt/client/index.ts @@ -0,0 +1,3 @@ +// This file is auto-generated by @hey-api/openapi-ts +export * from './sdk.gen'; +export * from './types.gen'; diff --git a/examples/openapi-ts-nuxt/client/schemas.gen.ts b/examples/openapi-ts-nuxt/client/schemas.gen.ts new file mode 100644 index 000000000..8cd80ffc5 --- /dev/null +++ b/examples/openapi-ts-nuxt/client/schemas.gen.ts @@ -0,0 +1,244 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export const OrderSchema = { + properties: { + complete: { + type: 'boolean', + }, + id: { + example: 10, + format: 'int64', + type: 'integer', + }, + petId: { + example: 198772, + format: 'int64', + type: 'integer', + }, + quantity: { + example: 7, + format: 'int32', + type: 'integer', + }, + shipDate: { + format: 'date-time', + type: 'string', + }, + status: { + description: 'Order Status', + enum: ['placed', 'approved', 'delivered'], + example: 'approved', + type: 'string', + }, + }, + type: 'object', + 'x-swagger-router-model': 'io.swagger.petstore.model.Order', + xml: { + name: 'order', + }, +} as const; + +export const CustomerSchema = { + properties: { + address: { + items: { + $ref: '#/components/schemas/Address', + }, + type: 'array', + xml: { + name: 'addresses', + wrapped: true, + }, + }, + id: { + example: 100000, + format: 'int64', + type: 'integer', + }, + username: { + example: 'fehguy', + type: 'string', + }, + }, + type: 'object', + xml: { + name: 'customer', + }, +} as const; + +export const AddressSchema = { + properties: { + city: { + example: 'Palo Alto', + type: 'string', + }, + state: { + example: 'CA', + type: 'string', + }, + street: { + example: '437 Lytton', + type: 'string', + }, + zip: { + example: 94301, + type: 'string', + }, + }, + type: 'object', + xml: { + name: 'address', + }, +} as const; + +export const CategorySchema = { + properties: { + id: { + example: 1, + format: 'int64', + type: 'integer', + }, + name: { + example: 'Dogs', + type: 'string', + }, + }, + type: 'object', + 'x-swagger-router-model': 'io.swagger.petstore.model.Category', + xml: { + name: 'category', + }, +} as const; + +export const UserSchema = { + properties: { + email: { + example: 'john@email.com', + type: 'string', + }, + firstName: { + example: 'John', + type: 'string', + }, + id: { + example: 10, + format: 'int64', + type: 'integer', + }, + lastName: { + example: 'James', + type: 'string', + }, + password: { + example: 12345, + type: 'string', + }, + phone: { + example: 12345, + type: 'string', + }, + userStatus: { + description: 'User Status', + example: 1, + format: 'int32', + type: 'integer', + }, + username: { + example: 'theUser', + type: 'string', + }, + }, + type: 'object', + 'x-swagger-router-model': 'io.swagger.petstore.model.User', + xml: { + name: 'user', + }, +} as const; + +export const TagSchema = { + properties: { + id: { + format: 'int64', + type: 'integer', + }, + name: { + type: 'string', + }, + }, + type: 'object', + 'x-swagger-router-model': 'io.swagger.petstore.model.Tag', + xml: { + name: 'tag', + }, +} as const; + +export const PetSchema = { + properties: { + category: { + $ref: '#/components/schemas/Category', + }, + id: { + example: 10, + format: 'int64', + type: 'integer', + }, + name: { + example: 'doggie', + type: 'string', + }, + photoUrls: { + items: { + type: 'string', + xml: { + name: 'photoUrl', + }, + }, + type: 'array', + xml: { + wrapped: true, + }, + }, + status: { + description: 'pet status in the store', + enum: ['available', 'pending', 'sold'], + type: 'string', + }, + tags: { + items: { + $ref: '#/components/schemas/Tag', + xml: { + name: 'tag', + }, + }, + type: 'array', + xml: { + wrapped: true, + }, + }, + }, + required: ['name', 'photoUrls'], + type: 'object', + 'x-swagger-router-model': 'io.swagger.petstore.model.Pet', + xml: { + name: 'pet', + }, +} as const; + +export const ApiResponseSchema = { + properties: { + code: { + format: 'int32', + type: 'integer', + }, + message: { + type: 'string', + }, + type: { + type: 'string', + }, + }, + type: 'object', + xml: { + name: '##default', + }, +} as const; diff --git a/examples/openapi-ts-nuxt/client/sdk.gen.ts b/examples/openapi-ts-nuxt/client/sdk.gen.ts new file mode 100644 index 000000000..f7ef83d89 --- /dev/null +++ b/examples/openapi-ts-nuxt/client/sdk.gen.ts @@ -0,0 +1,321 @@ +// @ts-nocheck +// This file is auto-generated by @hey-api/openapi-ts + +import { + type Composable, + createClient, + createConfig, + type Options, +} from '@hey-api/client-nuxt'; + +import type { + AddPetData, + AddPetResponse, + CreateUserData, + CreateUserResponse, + CreateUsersWithListInputData, + CreateUsersWithListInputResponse, + DeleteOrderData, + DeletePetData, + DeleteUserData, + FindPetsByStatusData, + FindPetsByStatusResponse, + FindPetsByTagsData, + FindPetsByTagsResponse, + GetInventoryData, + GetInventoryResponse, + GetOrderByIdData, + GetOrderByIdResponse, + GetPetByIdData, + GetPetByIdResponse, + GetUserByNameData, + GetUserByNameResponse, + LoginUserData, + LoginUserResponse, + LogoutUserData, + PlaceOrderData, + PlaceOrderResponse, + UpdatePetData, + UpdatePetResponse, + UpdatePetWithFormData, + UpdateUserData, + UploadFileData, + UploadFileResponse, +} from './types.gen'; + +export const client = createClient(createConfig()); + +/** + * Add a new pet to the store + * Add a new pet to the store + */ +export const addPet = ( + options: Options, +) => + (options?.client ?? client).post({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/pet', + }); + +/** + * Update an existing pet + * Update an existing pet by Id + */ +export const updatePet = ( + options: Options, +) => + (options?.client ?? client).put({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/pet', + }); + +/** + * Finds Pets by status + * Multiple status values can be provided with comma separated strings + */ +export const findPetsByStatus = ( + options?: Options, +) => + (options?.client ?? client).get< + FindPetsByStatusResponse, + unknown, + TComposable + >({ + ...options, + url: '/pet/findByStatus', + }); + +/** + * Finds Pets by tags + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + */ +export const findPetsByTags = ( + options?: Options, +) => + (options?.client ?? client).get( + { + ...options, + url: '/pet/findByTags', + }, + ); + +/** + * Deletes a pet + */ +export const deletePet = ( + options: Options, +) => + (options?.client ?? client).delete({ + ...options, + url: '/pet/{petId}', + }); + +/** + * Find pet by ID + * Returns a single pet + */ +export const getPetById = ( + options: Options, +) => + (options?.client ?? client).get({ + ...options, + security: [ + { + fn: 'apiKey', + in: 'header', + name: 'api_key', + }, + ], + // url: '/pet/{petId}', + url: '/pet/8', + }); + +/** + * Updates a pet in the store with form data + */ +export const updatePetWithForm = ( + options: Options, +) => + (options?.client ?? client).post({ + ...options, + url: '/pet/{petId}', + }); + +/** + * uploads an image + */ +export const uploadFile = ( + options: Options, +) => + (options?.client ?? client).post({ + ...options, + headers: { + 'Content-Type': 'application/octet-stream', + ...options?.headers, + }, + url: '/pet/{petId}/uploadImage', + }); + +/** + * Returns pet inventories by status + * Returns a map of status codes to quantities + */ +export const getInventory = ( + options?: Options, +) => + (options?.client ?? client).get({ + ...options, + security: [ + { + fn: 'apiKey', + in: 'header', + name: 'api_key', + }, + ], + url: '/store/inventory', + }); + +/** + * Place an order for a pet + * Place a new order in the store + */ +export const placeOrder = ( + options?: Options, +) => + (options?.client ?? client).post({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/store/order', + }); + +/** + * Delete purchase order by ID + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + */ +export const deleteOrder = ( + options: Options, +) => + (options?.client ?? client).delete({ + ...options, + url: '/store/order/{orderId}', + }); + +/** + * Find purchase order by ID + * For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. + */ +export const getOrderById = ( + options: Options, +) => + (options?.client ?? client).get({ + ...options, + url: '/store/order/{orderId}', + }); + +/** + * Create user + * This can only be done by the logged in user. + */ +export const createUser = ( + options?: Options, +) => + (options?.client ?? client).post({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/user', + }); + +/** + * Creates list of users with given input array + * Creates list of users with given input array + */ +export const createUsersWithListInput = ( + options?: Options, +) => + (options?.client ?? client).post< + CreateUsersWithListInputResponse, + unknown, + TComposable + >({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/user/createWithList', + }); + +/** + * Logs user into the system + */ +export const loginUser = ( + options?: Options, +) => + (options?.client ?? client).get({ + ...options, + url: '/user/login', + }); + +/** + * Logs out current logged in user session + */ +export const logoutUser = ( + options?: Options, +) => + (options?.client ?? client).get({ + ...options, + url: '/user/logout', + }); + +/** + * Delete user + * This can only be done by the logged in user. + */ +export const deleteUser = ( + options: Options, +) => + (options?.client ?? client).delete({ + ...options, + url: '/user/{username}', + }); + +/** + * Get user by user name + */ +export const getUserByName = ( + options: Options, +) => + (options?.client ?? client).get({ + ...options, + url: '/user/{username}', + }); + +/** + * Update user + * This can only be done by the logged in user. + */ +export const updateUser = ( + options: Options, +) => + (options?.client ?? client).put({ + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers, + }, + url: '/user/{username}', + }); diff --git a/examples/openapi-ts-nuxt/client/types.gen.ts b/examples/openapi-ts-nuxt/client/types.gen.ts new file mode 100644 index 000000000..afa2bda0d --- /dev/null +++ b/examples/openapi-ts-nuxt/client/types.gen.ts @@ -0,0 +1,563 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type Order = { + complete?: boolean; + id?: number; + petId?: number; + quantity?: number; + shipDate?: string; + /** + * Order Status + */ + status?: 'placed' | 'approved' | 'delivered'; +}; + +export type Customer = { + address?: Array
; + id?: number; + username?: string; +}; + +export type Address = { + city?: string; + state?: string; + street?: string; + zip?: string; +}; + +export type Category = { + id?: number; + name?: string; +}; + +export type User = { + email?: string; + firstName?: string; + id?: number; + lastName?: string; + password?: string; + phone?: string; + /** + * User Status + */ + userStatus?: number; + username?: string; +}; + +export type Tag = { + id?: number; + name?: string; +}; + +export type Pet = { + category?: Category; + id?: number; + name: string; + photoUrls: Array; + /** + * pet status in the store + */ + status?: 'available' | 'pending' | 'sold'; + tags?: Array; +}; + +export type ApiResponse = { + code?: number; + message?: string; + type?: string; +}; + +export type Pet2 = Pet; + +/** + * List of user object + */ +export type UserArray = Array; + +export type AddPetData = { + /** + * Create a new pet in the store + */ + body: Pet; + path?: never; + query?: never; + url: '/pet'; +}; + +export type AddPetErrors = { + /** + * Invalid input + */ + 405: unknown; +}; + +export type AddPetResponses = { + /** + * Successful operation + */ + 200: Pet; +}; + +export type AddPetResponse = AddPetResponses[keyof AddPetResponses]; + +export type UpdatePetData = { + /** + * Update an existent pet in the store + */ + body: Pet; + path?: never; + query?: never; + url: '/pet'; +}; + +export type UpdatePetErrors = { + /** + * Invalid ID supplied + */ + 400: unknown; + /** + * Pet not found + */ + 404: unknown; + /** + * Validation exception + */ + 405: unknown; +}; + +export type UpdatePetResponses = { + /** + * Successful operation + */ + 200: Pet; +}; + +export type UpdatePetResponse = UpdatePetResponses[keyof UpdatePetResponses]; + +export type FindPetsByStatusData = { + body?: never; + path?: never; + query?: { + /** + * Status values that need to be considered for filter + */ + status?: 'available' | 'pending' | 'sold'; + }; + url: '/pet/findByStatus'; +}; + +export type FindPetsByStatusErrors = { + /** + * Invalid status value + */ + 400: unknown; +}; + +export type FindPetsByStatusResponses = { + /** + * successful operation + */ + 200: Array; +}; + +export type FindPetsByStatusResponse = + FindPetsByStatusResponses[keyof FindPetsByStatusResponses]; + +export type FindPetsByTagsData = { + body?: never; + path?: never; + query?: { + /** + * Tags to filter by + */ + tags?: Array; + }; + url: '/pet/findByTags'; +}; + +export type FindPetsByTagsErrors = { + /** + * Invalid tag value + */ + 400: unknown; +}; + +export type FindPetsByTagsResponses = { + /** + * successful operation + */ + 200: Array; +}; + +export type FindPetsByTagsResponse = + FindPetsByTagsResponses[keyof FindPetsByTagsResponses]; + +export type DeletePetData = { + body?: never; + headers?: { + api_key?: string; + }; + path: { + /** + * Pet id to delete + */ + petId: number; + }; + query?: never; + url: '/pet/{petId}'; +}; + +export type DeletePetErrors = { + /** + * Invalid pet value + */ + 400: unknown; +}; + +export type GetPetByIdData = { + body?: never; + path: { + /** + * ID of pet to return + */ + petId: number; + }; + query?: never; + url: '/pet/{petId}'; +}; + +export type GetPetByIdErrors = { + /** + * Invalid ID supplied + */ + 400: unknown; + /** + * Pet not found + */ + 404: unknown; +}; + +export type GetPetByIdResponses = { + /** + * successful operation + */ + 200: Pet; +}; + +export type GetPetByIdResponse = GetPetByIdResponses[keyof GetPetByIdResponses]; + +export type UpdatePetWithFormData = { + body?: never; + path: { + /** + * ID of pet that needs to be updated + */ + petId: number; + }; + query?: { + /** + * Name of pet that needs to be updated + */ + name?: string; + /** + * Status of pet that needs to be updated + */ + status?: string; + }; + url: '/pet/{petId}'; +}; + +export type UpdatePetWithFormErrors = { + /** + * Invalid input + */ + 405: unknown; +}; + +export type UploadFileData = { + body?: Blob | File; + path: { + /** + * ID of pet to update + */ + petId: number; + }; + query?: { + /** + * Additional Metadata + */ + additionalMetadata?: string; + }; + url: '/pet/{petId}/uploadImage'; +}; + +export type UploadFileResponses = { + /** + * successful operation + */ + 200: ApiResponse; +}; + +export type UploadFileResponse = UploadFileResponses[keyof UploadFileResponses]; + +export type GetInventoryData = { + body?: never; + path?: never; + query?: never; + url: '/store/inventory'; +}; + +export type GetInventoryResponses = { + /** + * successful operation + */ + 200: { + [key: string]: number; + }; +}; + +export type GetInventoryResponse = + GetInventoryResponses[keyof GetInventoryResponses]; + +export type PlaceOrderData = { + body?: Order; + path?: never; + query?: never; + url: '/store/order'; +}; + +export type PlaceOrderErrors = { + /** + * Invalid input + */ + 405: unknown; +}; + +export type PlaceOrderResponses = { + /** + * successful operation + */ + 200: Order; +}; + +export type PlaceOrderResponse = PlaceOrderResponses[keyof PlaceOrderResponses]; + +export type DeleteOrderData = { + body?: never; + path: { + /** + * ID of the order that needs to be deleted + */ + orderId: number; + }; + query?: never; + url: '/store/order/{orderId}'; +}; + +export type DeleteOrderErrors = { + /** + * Invalid ID supplied + */ + 400: unknown; + /** + * Order not found + */ + 404: unknown; +}; + +export type GetOrderByIdData = { + body?: never; + path: { + /** + * ID of order that needs to be fetched + */ + orderId: number; + }; + query?: never; + url: '/store/order/{orderId}'; +}; + +export type GetOrderByIdErrors = { + /** + * Invalid ID supplied + */ + 400: unknown; + /** + * Order not found + */ + 404: unknown; +}; + +export type GetOrderByIdResponses = { + /** + * successful operation + */ + 200: Order; +}; + +export type GetOrderByIdResponse = + GetOrderByIdResponses[keyof GetOrderByIdResponses]; + +export type CreateUserData = { + /** + * Created user object + */ + body?: User; + path?: never; + query?: never; + url: '/user'; +}; + +export type CreateUserResponses = { + /** + * successful operation + */ + default: User; +}; + +export type CreateUserResponse = CreateUserResponses[keyof CreateUserResponses]; + +export type CreateUsersWithListInputData = { + body?: Array; + path?: never; + query?: never; + url: '/user/createWithList'; +}; + +export type CreateUsersWithListInputResponses = { + /** + * Successful operation + */ + 200: User; + /** + * successful operation + */ + default: unknown; +}; + +export type CreateUsersWithListInputResponse = + CreateUsersWithListInputResponses[keyof CreateUsersWithListInputResponses]; + +export type LoginUserData = { + body?: never; + path?: never; + query?: { + /** + * The password for login in clear text + */ + password?: string; + /** + * The user name for login + */ + username?: string; + }; + url: '/user/login'; +}; + +export type LoginUserErrors = { + /** + * Invalid username/password supplied + */ + 400: unknown; +}; + +export type LoginUserResponses = { + /** + * successful operation + */ + 200: Blob | File; +}; + +export type LoginUserResponse = LoginUserResponses[keyof LoginUserResponses]; + +export type LogoutUserData = { + body?: never; + path?: never; + query?: never; + url: '/user/logout'; +}; + +export type LogoutUserResponses = { + /** + * successful operation + */ + default: unknown; +}; + +export type DeleteUserData = { + body?: never; + path: { + /** + * The name that needs to be deleted + */ + username: string; + }; + query?: never; + url: '/user/{username}'; +}; + +export type DeleteUserErrors = { + /** + * Invalid username supplied + */ + 400: unknown; + /** + * User not found + */ + 404: unknown; +}; + +export type GetUserByNameData = { + body?: never; + path: { + /** + * The name that needs to be fetched. Use user1 for testing. + */ + username: string; + }; + query?: never; + url: '/user/{username}'; +}; + +export type GetUserByNameErrors = { + /** + * Invalid username supplied + */ + 400: unknown; + /** + * User not found + */ + 404: unknown; +}; + +export type GetUserByNameResponses = { + /** + * successful operation + */ + 200: User; +}; + +export type GetUserByNameResponse = + GetUserByNameResponses[keyof GetUserByNameResponses]; + +export type UpdateUserData = { + /** + * Update an existent user in the store + */ + body?: User; + path: { + /** + * name that needs to be updated + */ + username: string; + }; + query?: never; + url: '/user/{username}'; +}; + +export type UpdateUserResponses = { + /** + * successful operation + */ + default: unknown; +}; diff --git a/examples/openapi-ts-nuxt/components/home.vue b/examples/openapi-ts-nuxt/components/home.vue new file mode 100644 index 000000000..5712c0459 --- /dev/null +++ b/examples/openapi-ts-nuxt/components/home.vue @@ -0,0 +1,95 @@ + + + diff --git a/examples/openapi-ts-nuxt/nuxt.config.ts b/examples/openapi-ts-nuxt/nuxt.config.ts new file mode 100644 index 000000000..725f0d42c --- /dev/null +++ b/examples/openapi-ts-nuxt/nuxt.config.ts @@ -0,0 +1,7 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + compatibilityDate: '2024-11-01', + devtools: { + enabled: true, + }, +}); diff --git a/examples/openapi-ts-nuxt/openapi-ts.config.ts b/examples/openapi-ts-nuxt/openapi-ts.config.ts new file mode 100644 index 000000000..081fdc11d --- /dev/null +++ b/examples/openapi-ts-nuxt/openapi-ts.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from '@hey-api/openapi-ts'; + +export default defineConfig({ + client: '@hey-api/client-nuxt', + experimentalParser: true, + input: + 'https://raw.githubusercontent.com/swagger-api/swagger-petstore/master/src/main/resources/openapi.yaml', + output: { + format: 'prettier', + lint: 'eslint', + path: './client', + }, + plugins: [ + '@hey-api/schemas', + '@hey-api/sdk', + { + enums: 'javascript', + name: '@hey-api/typescript', + }, + ], +}); diff --git a/examples/openapi-ts-nuxt/package.json b/examples/openapi-ts-nuxt/package.json new file mode 100644 index 000000000..72bd2fc89 --- /dev/null +++ b/examples/openapi-ts-nuxt/package.json @@ -0,0 +1,24 @@ +{ + "name": "@example/openapi-ts-nuxt", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "openapi-ts": "openapi-ts", + "postinstall": "nuxt prepare", + "preview": "nuxt preview", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@hey-api/client-nuxt": "workspace:*", + "nuxt": "3.15.0", + "vue": "3.5.13", + "vue-router": "4.5.0" + }, + "devDependencies": { + "@hey-api/openapi-ts": "workspace:*" + } +} diff --git a/examples/openapi-ts-nuxt/public/favicon.ico b/examples/openapi-ts-nuxt/public/favicon.ico new file mode 100644 index 000000000..18993ad91 Binary files /dev/null and b/examples/openapi-ts-nuxt/public/favicon.ico differ diff --git a/examples/openapi-ts-nuxt/public/robots.txt b/examples/openapi-ts-nuxt/public/robots.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/openapi-ts-nuxt/public/robots.txt @@ -0,0 +1 @@ + diff --git a/examples/openapi-ts-nuxt/server/tsconfig.json b/examples/openapi-ts-nuxt/server/tsconfig.json new file mode 100644 index 000000000..b9ed69c19 --- /dev/null +++ b/examples/openapi-ts-nuxt/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/examples/openapi-ts-nuxt/tsconfig.json b/examples/openapi-ts-nuxt/tsconfig.json new file mode 100644 index 000000000..a746f2a70 --- /dev/null +++ b/examples/openapi-ts-nuxt/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/package.json b/package.json index 3280fa870..e7ff3e33d 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,8 @@ "license": "MIT", "author": { "email": "lubos@heyapi.dev", - "name": "Lubos Menus", - "url": "https://lmen.us" + "name": "Hey API", + "url": "https://heyapi.dev" }, "funding": "https://github.com/sponsors/hey-api", "type": "module", @@ -61,5 +61,6 @@ "typescript": "5.5.3", "typescript-eslint": "7.15.0", "vitest": "1.6.0" - } + }, + "packageManager": "pnpm@9.15.1+sha512.1acb565e6193efbebda772702950469150cf12bcc764262e7587e71d19dc98a423dff9536e57ea44c49bdf790ff694e83c27be5faa23d67e0c033b583be4bfcf" } diff --git a/packages/client-axios/package.json b/packages/client-axios/package.json index 366334dea..a21161a85 100644 --- a/packages/client-axios/package.json +++ b/packages/client-axios/package.json @@ -13,8 +13,8 @@ "license": "MIT", "author": { "email": "lubos@heyapi.dev", - "name": "Lubos Menus", - "url": "https://lmen.us" + "name": "Hey API", + "url": "https://heyapi.dev" }, "funding": "https://github.com/sponsors/hey-api", "keywords": [ diff --git a/packages/client-fetch/package.json b/packages/client-fetch/package.json index 90d1be59e..5cf395535 100644 --- a/packages/client-fetch/package.json +++ b/packages/client-fetch/package.json @@ -13,8 +13,8 @@ "license": "MIT", "author": { "email": "lubos@heyapi.dev", - "name": "Lubos Menus", - "url": "https://lmen.us" + "name": "Hey API", + "url": "https://heyapi.dev" }, "funding": "https://github.com/sponsors/hey-api", "keywords": [ diff --git a/packages/client-nuxt/LICENSE.md b/packages/client-nuxt/LICENSE.md new file mode 100644 index 000000000..6acd8004b --- /dev/null +++ b/packages/client-nuxt/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Hey API + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/client-nuxt/README.md b/packages/client-nuxt/README.md new file mode 100644 index 000000000..d751f5579 --- /dev/null +++ b/packages/client-nuxt/README.md @@ -0,0 +1,41 @@ +
+ Hey API logo +

Nuxt Client

+

๐Ÿš€ Nuxt client for `@hey-api/openapi-ts` codegen.

+
+ + + +[Live demo](https://stackblitz.com/edit/hey-api-client-fetch-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fsdk.gen.ts,src%2Fclient%2Ftypes.gen.ts,src%2FApp.tsx) + +## Features + +- seamless integration with `@hey-api/openapi-ts` ecosystem +- type-safe response data and errors +- response data validation and transformation +- access to the original request and response +- granular request and response customization options +- minimal learning curve thanks to extending the underlying technology +- support bundling inside the generated output + +## Documentation + +Please visit our [website](https://heyapi.dev/) for documentation, guides, migrating, and more. + +## Sponsors + +Love Hey API? Become our [sponsor](https://github.com/sponsors/hey-api). + +

+ + Stainless logo + +

+ +## GitHub Integration (coming soon) + +Automatically update your code when the APIs it depends on change. [Find out more](https://heyapi.dev/openapi-ts/integrations.html). + +## Migration Guides + +[OpenAPI Typescript Codegen](https://heyapi.dev/openapi-ts/migrating.html#openapi-typescript-codegen) diff --git a/packages/client-nuxt/package.json b/packages/client-nuxt/package.json new file mode 100644 index 000000000..ad328a6be --- /dev/null +++ b/packages/client-nuxt/package.json @@ -0,0 +1,74 @@ +{ + "name": "@hey-api/client-nuxt", + "version": "0.1.0", + "description": "๐Ÿš€ Nuxt client for `@hey-api/openapi-ts` codegen.", + "homepage": "https://heyapi.dev/", + "repository": { + "type": "git", + "url": "git+https://github.com/hey-api/openapi-ts.git" + }, + "bugs": { + "url": "https://github.com/hey-api/openapi-ts/issues" + }, + "license": "MIT", + "author": { + "email": "lubos@heyapi.dev", + "name": "Hey API", + "url": "https://heyapi.dev" + }, + "funding": "https://github.com/sponsors/hey-api", + "keywords": [ + "client", + "fetch", + "http", + "javascript", + "nuxt", + "openapi", + "react", + "rest", + "svelte", + "swagger", + "typescript", + "vue" + ], + "type": "module", + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + }, + "./package.json": "./package.json" + }, + "sideEffects": false, + "files": [ + "dist", + "LICENSE.md", + "src" + ], + "scripts": { + "build": "tsup && pnpm check-exports", + "check-exports": "attw --pack .", + "dev": "tsup --watch", + "prepublishOnly": "pnpm build", + "test:coverage": "vitest run --coverage", + "test:update": "vitest watch --update", + "test:watch": "vitest watch", + "test": "vitest run", + "typecheck": "vitest --typecheck --watch=false" + }, + "peerDependencies": { + "nuxt": ">= 3.0.0 < 4" + }, + "devDependencies": { + "nuxt": "3.15.0" + } +} diff --git a/packages/client-nuxt/src/__tests__/index.test.ts b/packages/client-nuxt/src/__tests__/index.test.ts new file mode 100644 index 000000000..de88d72d3 --- /dev/null +++ b/packages/client-nuxt/src/__tests__/index.test.ts @@ -0,0 +1,50 @@ +import { describe, expect, it } from 'vitest'; + +import { createClient } from '../index'; + +describe('buildUrl', () => { + const client = createClient(); + + const scenarios: { + options: Parameters[0]; + url: string; + }[] = [ + { + options: { + url: '', + }, + url: '/', + }, + { + options: { + url: '/foo', + }, + url: '/foo', + }, + { + options: { + path: { + fooId: 1, + }, + url: '/foo/{fooId}', + }, + url: '/foo/1', + }, + { + options: { + path: { + fooId: 1, + }, + query: { + bar: 'baz', + }, + url: '/foo/{fooId}', + }, + url: '/foo/1?bar=baz', + }, + ]; + + it.each(scenarios)('returns $url', ({ options, url }) => { + expect(client.buildUrl(options)).toBe(url); + }); +}); diff --git a/packages/client-nuxt/src/__tests__/utils.test.ts b/packages/client-nuxt/src/__tests__/utils.test.ts new file mode 100644 index 000000000..74cd0c986 --- /dev/null +++ b/packages/client-nuxt/src/__tests__/utils.test.ts @@ -0,0 +1,238 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { getAuthToken, getParseAs, setAuthParams } from '../utils'; + +describe('getAuthToken', () => { + it('returns access token', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue('bar'); + const token = await getAuthToken( + { + fn: 'accessToken', + in: 'header', + name: 'baz', + }, + { + accessToken, + apiKey, + }, + ); + expect(accessToken).toHaveBeenCalled(); + expect(token).toBe('Bearer foo'); + }); + + it('returns nothing when accessToken function is undefined', async () => { + const apiKey = vi.fn().mockReturnValue('bar'); + const token = await getAuthToken( + { + fn: 'accessToken', + in: 'header', + name: 'baz', + }, + { + apiKey, + }, + ); + expect(token).toBeUndefined(); + }); + + it('returns API key', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue('bar'); + const token = await getAuthToken( + { + fn: 'apiKey', + in: 'header', + name: 'baz', + }, + { + accessToken, + apiKey, + }, + ); + expect(apiKey).toHaveBeenCalled(); + expect(token).toBe('bar'); + }); + + it('returns nothing when apiKey function is undefined', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const token = await getAuthToken( + { + fn: 'apiKey', + in: 'header', + name: 'baz', + }, + { + accessToken, + }, + ); + expect(token).toBeUndefined(); + }); +}); + +describe('getParseAs', () => { + const scenarios: Array<{ + content: Parameters[0]; + parseAs: ReturnType; + }> = [ + { + content: null, + parseAs: 'stream', + }, + { + content: 'application/json', + parseAs: 'json', + }, + { + content: 'application/ld+json', + parseAs: 'json', + }, + { + content: 'application/ld+json;charset=utf-8', + parseAs: 'json', + }, + { + content: 'application/ld+json; charset=utf-8', + parseAs: 'json', + }, + { + content: 'multipart/form-data', + parseAs: 'formData', + }, + { + content: 'application/*', + parseAs: 'blob', + }, + { + content: 'audio/*', + parseAs: 'blob', + }, + { + content: 'image/*', + parseAs: 'blob', + }, + { + content: 'video/*', + parseAs: 'blob', + }, + { + content: 'text/*', + parseAs: 'text', + }, + { + content: 'unsupported', + parseAs: undefined, + }, + ]; + + it.each(scenarios)( + 'detects $content as $parseAs', + async ({ content, parseAs }) => { + expect(getParseAs(content)).toEqual(parseAs); + }, + ); +}); + +describe('setAuthParams', () => { + it('sets access token in headers', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue('bar'); + const headers = new Headers(); + const query: Record = {}; + await setAuthParams({ + accessToken, + apiKey, + headers, + query, + security: [ + { + fn: 'accessToken', + in: 'header', + name: 'baz', + }, + ], + }); + expect(accessToken).toHaveBeenCalled(); + expect(headers.get('baz')).toBe('Bearer foo'); + expect(Object.keys(query).length).toBe(0); + }); + + it('sets access token in query', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue('bar'); + const headers = new Headers(); + const query: Record = {}; + await setAuthParams({ + accessToken, + apiKey, + headers, + query, + security: [ + { + fn: 'accessToken', + in: 'query', + name: 'baz', + }, + ], + }); + expect(accessToken).toHaveBeenCalled(); + expect(headers.get('baz')).toBeNull(); + expect(query.baz).toBe('Bearer foo'); + }); + + it('sets first scheme only', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue('bar'); + const headers = new Headers(); + const query: Record = {}; + await setAuthParams({ + accessToken, + apiKey, + headers, + query, + security: [ + { + fn: 'accessToken', + in: 'header', + name: 'baz', + }, + { + fn: 'accessToken', + in: 'query', + name: 'baz', + }, + ], + }); + expect(accessToken).toHaveBeenCalled(); + expect(headers.get('baz')).toBe('Bearer foo'); + expect(Object.keys(query).length).toBe(0); + }); + + it('sets first scheme with token', async () => { + const accessToken = vi.fn().mockReturnValue('foo'); + const apiKey = vi.fn().mockReturnValue(undefined); + const headers = new Headers(); + const query: Record = {}; + await setAuthParams({ + accessToken, + apiKey, + headers, + query, + security: [ + { + fn: 'apiKey', + in: 'header', + name: 'baz', + }, + { + fn: 'accessToken', + in: 'query', + name: 'baz', + }, + ], + }); + expect(accessToken).toHaveBeenCalled(); + expect(headers.get('baz')).toBeNull(); + expect(query.baz).toBe('Bearer foo'); + }); +}); diff --git a/packages/client-nuxt/src/index.ts b/packages/client-nuxt/src/index.ts new file mode 100644 index 000000000..1412a04a5 --- /dev/null +++ b/packages/client-nuxt/src/index.ts @@ -0,0 +1,244 @@ +import type { NuxtApp } from 'nuxt/app'; +import { + useAsyncData, + useFetch, + useLazyAsyncData, + useLazyFetch, +} from 'nuxt/app'; + +import type { Client, Config, RequestOptions } from './types'; +import { + buildUrl, + createConfig, + createInterceptors, + getParseAs, + mergeConfigs, + mergeHeaders, + setAuthParams, +} from './utils'; + +type ReqInit = Omit & { + body?: any; + headers: ReturnType; +}; + +export const createClient = (config: Config = {}): Client => { + let _config = mergeConfigs(createConfig(), config); + + const getConfig = (): Config => ({ ..._config }); + + const setConfig = (config: Config): Config => { + _config = mergeConfigs(_config, config); + return getConfig(); + }; + + const interceptors = createInterceptors< + Request, + Response, + unknown, + RequestOptions + >(); + + const clientRequest: Client['clientRequest'] = ({ + asyncDataOptions, + composable, + fetchOptions, + key, + requestFetch, + url, + ...opts + }) => { + const fetchFn = requestFetch ?? $fetch; + const baseUrl = 'https://petstore3.swagger.io/api/v3'; + const finalUrl = `${baseUrl}${url}`; + + if (composable === '$fetch') { + return fetchFn(finalUrl, opts); + } + + if (composable === 'useFetch') { + return useFetch(finalUrl, { + ...opts, + ...fetchOptions, + }); + } + + if (composable === 'useLazyFetch') { + return useLazyFetch(finalUrl, { + ...opts, + ...fetchOptions, + }); + } + + const handler: (ctx?: NuxtApp) => Promise = () => + fetchFn(finalUrl, opts); + + if (composable === 'useAsyncData') { + return key + ? useAsyncData(key, handler, asyncDataOptions) + : useAsyncData(handler, asyncDataOptions); + } + + if (composable === 'useLazyAsyncData') { + return key + ? useLazyAsyncData(key, handler, asyncDataOptions) + : useLazyAsyncData(handler, asyncDataOptions); + } + + return undefined as any; + }; + + // @ts-expect-error + const request: Client['request'] = async (options) => { + const opts = { + ..._config, + ...options, + fetch: options.fetch ?? _config.fetch ?? globalThis.fetch, + headers: mergeHeaders(_config.headers, options.headers), + }; + + if (opts.security) { + await setAuthParams({ + ...opts, + security: opts.security, + }); + } + + if (opts.body && opts.bodySerializer) { + opts.body = opts.bodySerializer(opts.body); + } + + // remove Content-Type header if body is empty to avoid sending invalid requests + if (!opts.body) { + opts.headers.delete('Content-Type'); + } + + const url = buildUrl(opts); + const requestInit: ReqInit = { + redirect: 'follow', + ...opts, + }; + + let request = new Request(url, requestInit); + + for (const fn of interceptors.request._fns) { + request = await fn(request, opts); + } + + // fetch must be assigned here, otherwise it would throw the error: + // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation + const _fetch = opts.fetch!; + let response = await _fetch(request); + + for (const fn of interceptors.response._fns) { + response = await fn(response, request, opts); + } + + const result = { + request, + response, + }; + + if (response.ok) { + if ( + response.status === 204 || + response.headers.get('Content-Length') === '0' + ) { + return { + data: {}, + ...result, + }; + } + + const parseAs = + (opts.parseAs === 'auto' + ? getParseAs(response.headers.get('Content-Type')) + : opts.parseAs) ?? 'json'; + + if (parseAs === 'stream') { + return { + data: response.body, + ...result, + }; + } + + let data = await response[parseAs](); + if (parseAs === 'json') { + if (opts.responseValidator) { + await opts.responseValidator(data); + } + + if (opts.responseTransformer) { + data = await opts.responseTransformer(data); + } + } + + return { + data, + ...result, + }; + } + + let error = await response.text(); + + try { + error = JSON.parse(error); + } catch { + // noop + } + + let finalError = error; + + for (const fn of interceptors.error._fns) { + finalError = (await fn(error, response, request, opts)) as string; + } + + finalError = finalError || ({} as string); + + if (opts.throwOnError) { + throw finalError; + } + + return { + error: finalError, + ...result, + }; + }; + + return { + buildUrl, + clientRequest, + connect: (options) => clientRequest({ ...options, method: 'CONNECT' }), + delete: (options) => clientRequest({ ...options, method: 'DELETE' }), + get: (options) => clientRequest({ ...options, method: 'GET' }), + getConfig, + head: (options) => clientRequest({ ...options, method: 'HEAD' }), + interceptors, + options: (options) => clientRequest({ ...options, method: 'OPTIONS' }), + patch: (options) => clientRequest({ ...options, method: 'PATCH' }), + post: (options) => clientRequest({ ...options, method: 'POST' }), + put: (options) => clientRequest({ ...options, method: 'PUT' }), + request, + setConfig, + trace: (options) => clientRequest({ ...options, method: 'TRACE' }), + }; +}; + +export type { + Client, + Composable, + Config, + Options, + OptionsLegacyParser, + OptionsOld, + RequestOptions, + RequestResult, + Security, +} from './types'; +export { + createConfig, + formDataBodySerializer, + jsonBodySerializer, + type QuerySerializerOptions, + urlSearchParamsBodySerializer, +} from './utils'; diff --git a/packages/client-nuxt/src/types.ts b/packages/client-nuxt/src/types.ts new file mode 100644 index 000000000..9f5afc188 --- /dev/null +++ b/packages/client-nuxt/src/types.ts @@ -0,0 +1,300 @@ +import type { + AsyncDataOptions, + useAsyncData, + useFetch, + UseFetchOptions, + useLazyAsyncData, + useLazyFetch, + useRequestFetch, +} from 'nuxt/app'; + +import type { + BodySerializer, + Middleware, + QuerySerializer, + QuerySerializerOptions, +} from './utils'; + +type OmitKeys = Pick>; + +export interface Config + extends Omit { + /** + * **This feature works only with the [experimental parser](https://heyapi.dev/openapi-ts/configuration#parser)** + * + * Access token or a function returning access token. The resolved token + * will be added to request headers where it's required. + */ + accessToken?: (() => Promise) | string | undefined; + /** + * **This feature works only with the [experimental parser](https://heyapi.dev/openapi-ts/configuration#parser)** + * + * API key or a function returning API key. The resolved key will be added + * to the request payload as required. + */ + apiKey?: (() => Promise) | string | undefined; + /** + * Base URL for all requests made by this client. + * + * @default '' + */ + baseUrl?: string; + /** + * A function for serializing request body parameter. By default, + * {@link JSON.stringify()} will be used. + */ + bodySerializer?: BodySerializer; + /** + * Fetch API implementation. You can use this option to provide a custom + * fetch instance. + * + * @default globalThis.fetch + */ + fetch?: (request: Request) => ReturnType; + /** + * An object containing any HTTP headers that you want to pre-populate your + * `Headers` object with. + * + * {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more} + */ + headers?: + | RequestInit['headers'] + | Record< + string, + | string + | number + | boolean + | (string | number | boolean)[] + | null + | undefined + | unknown + >; + /** + * The request method. + * + * {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more} + */ + method?: + | 'CONNECT' + | 'DELETE' + | 'GET' + | 'HEAD' + | 'OPTIONS' + | 'PATCH' + | 'POST' + | 'PUT' + | 'TRACE'; + /** + * Return the response data parsed in a specified format. By default, `auto` + * will infer the appropriate method from the `Content-Type` response header. + * You can override this behavior with any of the {@link Body} methods. + * Select `stream` if you don't want to parse response data at all. + * + * @default 'auto' + */ + parseAs?: Exclude | 'auto' | 'stream'; + /** + * A function for serializing request query parameters. By default, arrays + * will be exploded in form style, objects will be exploded in deepObject + * style, and reserved characters are percent-encoded. + * + * {@link https://swagger.io/docs/specification/serialization/#query View examples} + */ + querySerializer?: QuerySerializer | QuerySerializerOptions; + /** + * A function transforming response data before it's returned. This is useful + * for post-processing data, e.g. converting ISO strings into Date objects. + */ + responseTransformer?: (data: unknown) => Promise; + /** + * **This feature works only with the [experimental parser](https://heyapi.dev/openapi-ts/configuration#parser)** + * + * A function validating response data. This is useful if you want to ensure + * the response conforms to the desired shape, so it can be safely passed to + * the transformers and returned to the user. + */ + responseValidator?: (data: unknown) => Promise; + /** + * Throw an error instead of returning it in the response? + * + * @default false + */ + throwOnError?: ThrowOnError; +} + +export interface RequestOptions< + ThrowOnError extends boolean = boolean, + Url extends string = string, +> extends Config { + /** + * Any body that you want to add to your request. + * + * {@link https://developer.mozilla.org/docs/Web/API/fetch#body} + */ + body?: + | RequestInit['body'] + | Record + | Array> + | Array + | number; + /** + * You can provide a client instance returned by `createClient()` instead of + * individual options. This might be also useful if you want to implement a + * custom client. + */ + client?: Client; + path?: Record; + query?: Record; + /** + * Security mechanism(s) to use for the request. + */ + security?: ReadonlyArray; + url: Url; +} + +export type RequestResult< + Data = unknown, + TError = unknown, + ThrowOnError extends boolean = boolean, +> = ThrowOnError extends true + ? Promise<{ + data: Data; + request: Request; + response: Response; + }> + : Promise< + ( + | { data: Data; error: undefined } + | { data: undefined; error: TError } + ) & { + request: Request; + response: Response; + } + >; + +export interface Security { + fn: 'accessToken' | 'apiKey'; + in: 'header' | 'query'; + name: string; +} + +type MethodFn = < + TData = unknown, + TError = unknown, + TComposable extends Composable = Composable, +>( + options: Omit, 'method'> & { + url: string; + }, +) => RequestResultNuxt; + +type RequestFn = < + Data = unknown, + TError = unknown, + ThrowOnError extends boolean = false, +>( + options: Omit, 'method'> & + Pick>, 'method'>, +) => RequestResult; + +export type Composable = + | '$fetch' + | 'useAsyncData' + | 'useFetch' + | 'useLazyAsyncData' + | 'useLazyFetch'; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export type Options = Parameters< + typeof $fetch +>['1'] & + Pick, 'client'> & { + asyncDataOptions?: AsyncDataOptions; + composable: TComposable; + fetchOptions?: UseFetchOptions; + key?: string; + requestFetch?: ReturnType; + }; + +type RequestResultNuxt = + TComposable extends '$fetch' + ? ReturnType> + : TComposable extends 'useAsyncData' + ? ReturnType> + : TComposable extends 'useFetch' + ? ReturnType> + : TComposable extends 'useLazyAsyncData' + ? ReturnType> + : TComposable extends 'useLazyFetch' + ? ReturnType> + : never; + +type ClientRequestFn = ( + options: Options & { + url: string; + }, +) => RequestResultNuxt; + +export interface Client< + Req = Request, + Res = Response, + Err = unknown, + Opts = RequestOptions, +> { + /** + * Returns the final request URL. This method works only with experimental parser. + */ + buildUrl: < + Data extends { + body?: unknown; + path?: Record; + query?: Record; + url: string; + }, + >( + options: Pick & OptionsOld, + ) => string; + clientRequest: ClientRequestFn; + connect: MethodFn; + delete: MethodFn; + get: MethodFn; + getConfig: () => Config; + head: MethodFn; + interceptors: Middleware; + options: MethodFn; + patch: MethodFn; + post: MethodFn; + put: MethodFn; + request: RequestFn; + setConfig: (config: Config) => Config; + trace: MethodFn; +} + +interface DataShape { + body?: unknown; + headers?: unknown; + path?: unknown; + query?: unknown; + url: string; +} + +export type OptionsOld< + Data extends DataShape = DataShape, + ThrowOnError extends boolean = boolean, +> = OmitKeys, 'body' | 'path' | 'query' | 'url'> & + Omit; + +export type OptionsLegacyParser< + Data = unknown, + ThrowOnError extends boolean = boolean, +> = Data extends { body?: any } + ? Data extends { headers?: any } + ? OmitKeys, 'body' | 'headers' | 'url'> & Data + : OmitKeys, 'body' | 'url'> & + Data & + Pick, 'headers'> + : Data extends { headers?: any } + ? OmitKeys, 'headers' | 'url'> & + Data & + Pick, 'body'> + : OmitKeys, 'url'> & Data; diff --git a/packages/client-nuxt/src/utils.ts b/packages/client-nuxt/src/utils.ts new file mode 100644 index 000000000..fec0d26d9 --- /dev/null +++ b/packages/client-nuxt/src/utils.ts @@ -0,0 +1,652 @@ +import type { Client, Config, RequestOptions, Security } from './types'; + +interface PathSerializer { + path: Record; + url: string; +} + +const PATH_PARAM_RE = /\{[^{}]+\}/g; + +type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited'; +type MatrixStyle = 'label' | 'matrix' | 'simple'; +type ArraySeparatorStyle = ArrayStyle | MatrixStyle; +type ObjectStyle = 'form' | 'deepObject'; +type ObjectSeparatorStyle = ObjectStyle | MatrixStyle; + +export type QuerySerializer = (query: Record) => string; + +export type BodySerializer = (body: any) => any; + +interface SerializerOptions { + /** + * @default true + */ + explode: boolean; + style: T; +} + +interface SerializeOptions + extends SerializePrimitiveOptions, + SerializerOptions {} +interface SerializePrimitiveOptions { + allowReserved?: boolean; + name: string; +} +interface SerializePrimitiveParam extends SerializePrimitiveOptions { + value: string; +} + +export interface QuerySerializerOptions { + allowReserved?: boolean; + array?: SerializerOptions; + object?: SerializerOptions; +} + +const serializePrimitiveParam = ({ + allowReserved, + name, + value, +}: SerializePrimitiveParam) => { + if (value === undefined || value === null) { + return ''; + } + + if (typeof value === 'object') { + throw new Error( + 'Deeply-nested arrays/objects arenโ€™t supported. Provide your own `querySerializer()` to handle these.', + ); + } + + return `${name}=${allowReserved ? value : encodeURIComponent(value)}`; +}; + +const separatorArrayExplode = (style: ArraySeparatorStyle) => { + switch (style) { + case 'label': + return '.'; + case 'matrix': + return ';'; + case 'simple': + return ','; + default: + return '&'; + } +}; + +const separatorArrayNoExplode = (style: ArraySeparatorStyle) => { + switch (style) { + case 'form': + return ','; + case 'pipeDelimited': + return '|'; + case 'spaceDelimited': + return '%20'; + default: + return ','; + } +}; + +const separatorObjectExplode = (style: ObjectSeparatorStyle) => { + switch (style) { + case 'label': + return '.'; + case 'matrix': + return ';'; + case 'simple': + return ','; + default: + return '&'; + } +}; + +const serializeArrayParam = ({ + allowReserved, + explode, + name, + style, + value, +}: SerializeOptions & { + value: unknown[]; +}) => { + if (!explode) { + const joinedValues = ( + allowReserved ? value : value.map((v) => encodeURIComponent(v as string)) + ).join(separatorArrayNoExplode(style)); + switch (style) { + case 'label': + return `.${joinedValues}`; + case 'matrix': + return `;${name}=${joinedValues}`; + case 'simple': + return joinedValues; + default: + return `${name}=${joinedValues}`; + } + } + + const separator = separatorArrayExplode(style); + const joinedValues = value + .map((v) => { + if (style === 'label' || style === 'simple') { + return allowReserved ? v : encodeURIComponent(v as string); + } + + return serializePrimitiveParam({ + allowReserved, + name, + value: v as string, + }); + }) + .join(separator); + return style === 'label' || style === 'matrix' + ? separator + joinedValues + : joinedValues; +}; + +const serializeObjectParam = ({ + allowReserved, + explode, + name, + style, + value, +}: SerializeOptions & { + value: Record | Date; +}) => { + if (value instanceof Date) { + return `${name}=${value.toISOString()}`; + } + + if (style !== 'deepObject' && !explode) { + let values: string[] = []; + Object.entries(value).forEach(([key, v]) => { + values = [ + ...values, + key, + allowReserved ? (v as string) : encodeURIComponent(v as string), + ]; + }); + const joinedValues = values.join(','); + switch (style) { + case 'form': + return `${name}=${joinedValues}`; + case 'label': + return `.${joinedValues}`; + case 'matrix': + return `;${name}=${joinedValues}`; + default: + return joinedValues; + } + } + + const separator = separatorObjectExplode(style); + const joinedValues = Object.entries(value) + .map(([key, v]) => + serializePrimitiveParam({ + allowReserved, + name: style === 'deepObject' ? `${name}[${key}]` : key, + value: v as string, + }), + ) + .join(separator); + return style === 'label' || style === 'matrix' + ? separator + joinedValues + : joinedValues; +}; + +const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => { + let url = _url; + const matches = _url.match(PATH_PARAM_RE); + if (matches) { + for (const match of matches) { + let explode = false; + let name = match.substring(1, match.length - 1); + let style: ArraySeparatorStyle = 'simple'; + + if (name.endsWith('*')) { + explode = true; + name = name.substring(0, name.length - 1); + } + + if (name.startsWith('.')) { + name = name.substring(1); + style = 'label'; + } else if (name.startsWith(';')) { + name = name.substring(1); + style = 'matrix'; + } + + const value = path[name]; + + if (value === undefined || value === null) { + continue; + } + + if (Array.isArray(value)) { + url = url.replace( + match, + serializeArrayParam({ explode, name, style, value }), + ); + continue; + } + + if (typeof value === 'object') { + url = url.replace( + match, + serializeObjectParam({ + explode, + name, + style, + value: value as Record, + }), + ); + continue; + } + + if (style === 'matrix') { + url = url.replace( + match, + `;${serializePrimitiveParam({ + name, + value: value as string, + })}`, + ); + continue; + } + + const replaceValue = encodeURIComponent( + style === 'label' ? `.${value as string}` : (value as string), + ); + url = url.replace(match, replaceValue); + } + } + return url; +}; + +export const createQuerySerializer = ({ + allowReserved, + array, + object, +}: QuerySerializerOptions = {}) => { + const querySerializer = (queryParams: T) => { + let search: string[] = []; + if (queryParams && typeof queryParams === 'object') { + for (const name in queryParams) { + const value = queryParams[name]; + + if (value === undefined || value === null) { + continue; + } + + if (Array.isArray(value)) { + search = [ + ...search, + serializeArrayParam({ + allowReserved, + explode: true, + name, + style: 'form', + value, + ...array, + }), + ]; + continue; + } + + if (typeof value === 'object') { + search = [ + ...search, + serializeObjectParam({ + allowReserved, + explode: true, + name, + style: 'deepObject', + value: value as Record, + ...object, + }), + ]; + continue; + } + + search = [ + ...search, + serializePrimitiveParam({ + allowReserved, + name, + value: value as string, + }), + ]; + } + } + return search.join('&'); + }; + return querySerializer; +}; + +/** + * Infers parseAs value from provided Content-Type header. + */ +export const getParseAs = ( + contentType: string | null, +): Exclude => { + if (!contentType) { + // If no Content-Type header is provided, the best we can do is return the raw response body, + // which is effectively the same as the 'stream' option. + return 'stream'; + } + + const cleanContent = contentType.split(';')[0]?.trim(); + + if (!cleanContent) { + return; + } + + if ( + cleanContent.startsWith('application/json') || + cleanContent.endsWith('+json') + ) { + return 'json'; + } + + if (cleanContent === 'multipart/form-data') { + return 'formData'; + } + + if ( + ['application/', 'audio/', 'image/', 'video/'].some((type) => + cleanContent.startsWith(type), + ) + ) { + return 'blob'; + } + + if (cleanContent.startsWith('text/')) { + return 'text'; + } +}; + +export const getAuthToken = async ( + security: Security, + options: Pick, +): Promise => { + if (security.fn === 'accessToken') { + const token = + typeof options.accessToken === 'function' + ? await options.accessToken() + : options.accessToken; + return token ? `Bearer ${token}` : undefined; + } + + if (security.fn === 'apiKey') { + return typeof options.apiKey === 'function' + ? await options.apiKey() + : options.apiKey; + } +}; + +export const setAuthParams = async ({ + security, + ...options +}: Pick, 'security'> & + Pick & { + headers: Headers; + }) => { + for (const scheme of security) { + const token = await getAuthToken(scheme, options); + + if (!token) { + continue; + } + + if (scheme.in === 'header') { + options.headers.set(scheme.name, token); + } else if (scheme.in === 'query') { + if (!options.query) { + options.query = {}; + } + + options.query[scheme.name] = token; + } + + return; + } +}; + +export const buildUrl: Client['buildUrl'] = (options) => { + const url = getUrl({ + baseUrl: options.baseUrl ?? '', + path: options.path, + query: options.query, + querySerializer: + typeof options.querySerializer === 'function' + ? options.querySerializer + : createQuerySerializer(options.querySerializer), + url: options.url, + }); + return url; +}; + +export const getUrl = ({ + baseUrl, + path, + query, + querySerializer, + url: _url, +}: { + baseUrl: string; + path?: Record; + query?: Record; + querySerializer: QuerySerializer; + url: string; +}) => { + const pathUrl = _url.startsWith('/') ? _url : `/${_url}`; + let url = baseUrl + pathUrl; + if (path) { + url = defaultPathSerializer({ path, url }); + } + let search = query ? querySerializer(query) : ''; + if (search.startsWith('?')) { + search = search.substring(1); + } + if (search) { + url += `?${search}`; + } + return url; +}; + +export const mergeConfigs = (a: Config, b: Config): Config => { + const config = { ...a, ...b }; + if (config.baseUrl?.endsWith('/')) { + config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1); + } + config.headers = mergeHeaders(a.headers, b.headers); + return config; +}; + +export const mergeHeaders = ( + ...headers: Array['headers'] | undefined> +): Headers => { + const mergedHeaders = new Headers(); + for (const header of headers) { + if (!header || typeof header !== 'object') { + continue; + } + + const iterator = + header instanceof Headers ? header.entries() : Object.entries(header); + + for (const [key, value] of iterator) { + if (value === null) { + mergedHeaders.delete(key); + } else if (Array.isArray(value)) { + for (const v of value) { + mergedHeaders.append(key, v as string); + } + } else if (value !== undefined) { + // assume object headers are meant to be JSON stringified, i.e. their + // content value in OpenAPI specification is 'application/json' + mergedHeaders.set( + key, + typeof value === 'object' ? JSON.stringify(value) : (value as string), + ); + } + } + } + return mergedHeaders; +}; + +type ErrInterceptor = ( + error: Err, + response: Res, + request: Req, + options: Options, +) => Err | Promise; + +type ReqInterceptor = ( + request: Req, + options: Options, +) => Req | Promise; + +type ResInterceptor = ( + response: Res, + request: Req, + options: Options, +) => Res | Promise; + +class Interceptors { + _fns: Interceptor[]; + + constructor() { + this._fns = []; + } + + clear() { + this._fns = []; + } + + exists(fn: Interceptor) { + return this._fns.indexOf(fn) !== -1; + } + + eject(fn: Interceptor) { + const index = this._fns.indexOf(fn); + if (index !== -1) { + this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; + } + } + + use(fn: Interceptor) { + this._fns = [...this._fns, fn]; + } +} + +// `createInterceptors()` response, meant for external use as it does not +// expose internals +export interface Middleware { + error: Pick< + Interceptors>, + 'eject' | 'use' + >; + request: Pick>, 'eject' | 'use'>; + response: Pick< + Interceptors>, + 'eject' | 'use' + >; +} + +// do not add `Middleware` as return type so we can use _fns internally +export const createInterceptors = () => ({ + error: new Interceptors>(), + request: new Interceptors>(), + response: new Interceptors>(), +}); + +const serializeFormDataPair = (data: FormData, key: string, value: unknown) => { + if (typeof value === 'string' || value instanceof Blob) { + data.append(key, value); + } else { + data.append(key, JSON.stringify(value)); + } +}; + +export const formDataBodySerializer = { + bodySerializer: | Array>>( + body: T, + ) => { + const data = new FormData(); + + Object.entries(body).forEach(([key, value]) => { + if (value === undefined || value === null) { + return; + } + if (Array.isArray(value)) { + value.forEach((v) => serializeFormDataPair(data, key, v)); + } else { + serializeFormDataPair(data, key, value); + } + }); + + return data; + }, +}; + +export const jsonBodySerializer = { + bodySerializer: (body: T) => JSON.stringify(body), +}; + +const serializeUrlSearchParamsPair = ( + data: URLSearchParams, + key: string, + value: unknown, +) => { + if (typeof value === 'string') { + data.append(key, value); + } else { + data.append(key, JSON.stringify(value)); + } +}; + +export const urlSearchParamsBodySerializer = { + bodySerializer: | Array>>( + body: T, + ) => { + const data = new URLSearchParams(); + + Object.entries(body).forEach(([key, value]) => { + if (value === undefined || value === null) { + return; + } + if (Array.isArray(value)) { + value.forEach((v) => serializeUrlSearchParamsPair(data, key, v)); + } else { + serializeUrlSearchParamsPair(data, key, value); + } + }); + + return data; + }, +}; + +const defaultQuerySerializer = createQuerySerializer({ + allowReserved: false, + array: { + explode: true, + style: 'form', + }, + object: { + explode: true, + style: 'deepObject', + }, +}); + +const defaultHeaders = { + 'Content-Type': 'application/json', +}; + +export const createConfig = (override: Config = {}): Config => ({ + ...jsonBodySerializer, + baseUrl: '', + headers: defaultHeaders, + parseAs: 'auto', + querySerializer: defaultQuerySerializer, + ...override, +}); diff --git a/packages/client-nuxt/tsconfig.base.json b/packages/client-nuxt/tsconfig.base.json new file mode 100644 index 000000000..4ae154dda --- /dev/null +++ b/packages/client-nuxt/tsconfig.base.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "declaration": true, + "esModuleInterop": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "noImplicitOverride": true, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "strict": true, + "target": "ES2022", + "useUnknownInCatchVariables": false + } +} diff --git a/packages/client-nuxt/tsconfig.json b/packages/client-nuxt/tsconfig.json new file mode 100644 index 000000000..faaf0992f --- /dev/null +++ b/packages/client-nuxt/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "declaration": false, + "esModuleInterop": true + } +} diff --git a/packages/client-nuxt/tsup.config.ts b/packages/client-nuxt/tsup.config.ts new file mode 100644 index 000000000..77dfaf864 --- /dev/null +++ b/packages/client-nuxt/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig((options) => ({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + minify: !options.watch, + shims: false, + sourcemap: true, + treeshake: true, +})); diff --git a/packages/client-nuxt/vitest.config.ts b/packages/client-nuxt/vitest.config.ts new file mode 100644 index 000000000..0431940e9 --- /dev/null +++ b/packages/client-nuxt/vitest.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath } from 'node:url'; + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + coverage: { + exclude: ['dist', 'src/**/*.d.ts'], + include: ['src/**/*.ts'], + provider: 'v8', + }, + root: fileURLToPath(new URL('./', import.meta.url)), + }, +}); diff --git a/packages/openapi-ts/src/generate/files.ts b/packages/openapi-ts/src/generate/files.ts index ddb8558c2..492198046 100644 --- a/packages/openapi-ts/src/generate/files.ts +++ b/packages/openapi-ts/src/generate/files.ts @@ -204,6 +204,7 @@ export class TypeScriptFile { const outputParts = thisRelativePath.split(path.sep); const relativePath = new Array(outputParts.length).fill('').join('../') || './'; + // TODO: parser - cache responses return `${relativePath}${splitNameAndExtension(fileRelativePath).name}`; } diff --git a/packages/openapi-ts/src/index.ts b/packages/openapi-ts/src/index.ts index 1ed6f85c9..22b660f4e 100644 --- a/packages/openapi-ts/src/index.ts +++ b/packages/openapi-ts/src/index.ts @@ -641,7 +641,10 @@ export async function createClient( if (!config.dryRun) { processOutput({ config }); - console.log(`๐Ÿš€ Done! Your output is in ${config.output.path}`); + const outputPath = process.env.INIT_CWD + ? `./${path.relative(process.env.INIT_CWD, config.output.path)}` + : config.output.path; + console.log(`๐Ÿš€ Done! Your output is in ${outputPath}`); } Performance.end('postprocess'); } diff --git a/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts b/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts index c993862ff..dc33e990b 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/sdk/plugin.ts @@ -3,6 +3,7 @@ import type ts from 'typescript'; import { compiler } from '../../../compiler'; import type { ObjectValue } from '../../../compiler/types'; import { clientApi, clientModulePath } from '../../../generate/client'; +import type { TypeScriptFile } from '../../../generate/files'; import { hasOperationDataRequired, statusCodeToGroup, @@ -18,22 +19,37 @@ import { operationTransformerIrRef, transformersId, } from '../transformers/plugin'; +import { + importIdentifierData, + importIdentifierError, + importIdentifierResponse, +} from '../typescript/ref'; import { serviceFunctionIdentifier } from './plugin-legacy'; import type { Config } from './types'; export const operationOptionsType = ({ - importedType, + context, + identifierData, + identifierError, throwOnError, }: { - importedType?: string | false; + context: IR.Context; + identifierData?: ReturnType; + identifierError?: ReturnType; throwOnError?: string; }) => { const optionsName = clientApi.Options.name; + if (context.config.client.name === '@hey-api/client-nuxt') { + return `${optionsName}<${identifierData?.name || 'unknown'}, ${identifierError?.name || 'unknown'}, TComposable>`; + } + // TODO: refactor this to be more generic, works for now if (throwOnError) { - return `${optionsName}<${importedType || 'unknown'}, ${throwOnError}>`; + return `${optionsName}<${identifierData?.name || 'unknown'}, ${throwOnError}>`; } - return importedType ? `${optionsName}<${importedType}>` : optionsName; + return identifierData + ? `${optionsName}<${identifierData.name}>` + : optionsName; }; const sdkId = 'sdk'; @@ -103,31 +119,13 @@ const operationStatements = ({ }): Array => { const file = context.file({ id: sdkId })!; const sdkOutput = file.nameWithoutExtension(); - const typesModule = file.relativePathToFile({ context, id: 'types' }); - - const identifierError = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'error' }), - namespace: 'type', - }); - if (identifierError.name) { - file.import({ - asType: true, - module: typesModule, - name: identifierError.name, - }); - } - const identifierResponse = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'response' }), - namespace: 'type', + const identifierError = importIdentifierError({ context, file, operation }); + const identifierResponse = importIdentifierResponse({ + context, + file, + operation, }); - if (identifierResponse.name) { - file.import({ - asType: true, - module: typesModule, - name: identifierResponse.name, - }); - } // TODO: transform parameters // const query = { @@ -364,6 +362,8 @@ const operationStatements = ({ value: operation.path, }); + const isNuxtClient = context.config.client.name === '@hey-api/client-nuxt'; + return [ compiler.returnFunctionCall({ args: [ @@ -376,7 +376,7 @@ const operationStatements = ({ types: [ identifierResponse.name || 'unknown', identifierError.name || 'unknown', - 'ThrowOnError', + isNuxtClient ? 'TComposable' : 'ThrowOnError', ], }), ]; @@ -390,22 +390,13 @@ const generateClassSdk = ({ plugin: Plugin.Instance; }) => { const file = context.file({ id: sdkId })!; - const typesModule = file.relativePathToFile({ context, id: 'types' }); - const sdks = new Map>(); context.subscribe('operation', ({ operation }) => { - const identifierData = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'data' }), - namespace: 'type', - }); - if (identifierData.name) { - file.import({ - asType: true, - module: typesModule, - name: identifierData.name, - }); - } + const identifierData = importIdentifierData({ context, file, operation }); + const identifierError = importIdentifierError({ context, file, operation }); + + const isNuxtClient = context.config.client.name === '@hey-api/client-nuxt'; const node = compiler.methodDeclaration({ accessLevel: 'public', @@ -426,8 +417,10 @@ const generateClassSdk = ({ isRequired: hasOperationDataRequired(operation), name: 'options', type: operationOptionsType({ - importedType: identifierData.name, - throwOnError: 'ThrowOnError', + context, + identifierData, + identifierError, + throwOnError: isNuxtClient ? undefined : 'ThrowOnError', }), }, ], @@ -437,13 +430,20 @@ const generateClassSdk = ({ operation, plugin, }), - types: [ - { - default: plugin.throwOnError, - extends: 'boolean', - name: 'ThrowOnError', - }, - ], + types: isNuxtClient + ? [ + { + extends: compiler.typeNode('Composable'), + name: 'TComposable', + }, + ] + : [ + { + default: plugin.throwOnError, + extends: 'boolean', + name: 'ThrowOnError', + }, + ], }); const uniqueTags = Array.from(new Set(operation.tags)); @@ -482,20 +482,12 @@ const generateFlatSdk = ({ plugin: Plugin.Instance; }) => { const file = context.file({ id: sdkId })!; - const typesModule = file.relativePathToFile({ context, id: 'types' }); context.subscribe('operation', ({ operation }) => { - const identifierData = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'data' }), - namespace: 'type', - }); - if (identifierData.name) { - file.import({ - asType: true, - module: typesModule, - name: identifierData.name, - }); - } + const identifierData = importIdentifierData({ context, file, operation }); + const identifierError = importIdentifierError({ context, file, operation }); + + const isNuxtClient = context.config.client.name === '@hey-api/client-nuxt'; const node = compiler.constVariable({ comment: [ @@ -510,8 +502,10 @@ const generateFlatSdk = ({ isRequired: hasOperationDataRequired(operation), name: 'options', type: operationOptionsType({ - importedType: identifierData.name, - throwOnError: 'ThrowOnError', + context, + identifierData, + identifierError, + throwOnError: isNuxtClient ? undefined : 'ThrowOnError', }), }, ], @@ -521,13 +515,20 @@ const generateFlatSdk = ({ operation, plugin, }), - types: [ - { - default: plugin.throwOnError, - extends: 'boolean', - name: 'ThrowOnError', - }, - ], + types: isNuxtClient + ? [ + { + extends: compiler.typeNode('Composable'), + name: 'TComposable', + }, + ] + : [ + { + default: plugin.throwOnError, + extends: 'boolean', + name: 'ThrowOnError', + }, + ], }), name: serviceFunctionIdentifier({ config: context.config, @@ -555,26 +556,26 @@ export const handler: Plugin.Handler = ({ context, plugin }) => { const sdkOutput = file.nameWithoutExtension(); // import required packages and core files + const clientModule = clientModulePath({ + config: context.config, + sourceOutput: sdkOutput, + }); file.import({ - module: clientModulePath({ - config: context.config, - sourceOutput: sdkOutput, - }), + module: clientModule, name: 'createClient', }); file.import({ - module: clientModulePath({ - config: context.config, - sourceOutput: sdkOutput, - }), + module: clientModule, name: 'createConfig', }); file.import({ ...clientApi.Options, - module: clientModulePath({ - config: context.config, - sourceOutput: sdkOutput, - }), + module: clientModule, + }); + file.import({ + asType: true, + module: clientModule, + name: 'Composable', }); // define client first diff --git a/packages/openapi-ts/src/plugins/@hey-api/typescript/plugin.ts b/packages/openapi-ts/src/plugins/@hey-api/typescript/plugin.ts index 1f99a6f16..4fb060496 100644 --- a/packages/openapi-ts/src/plugins/@hey-api/typescript/plugin.ts +++ b/packages/openapi-ts/src/plugins/@hey-api/typescript/plugin.ts @@ -12,6 +12,7 @@ import { stringCase } from '../../../utils/stringCase'; import { fieldName } from '../../shared/utils/case'; import { operationIrRef } from '../../shared/utils/ref'; import type { Plugin } from '../../types'; +import { typesId } from './ref'; import type { Config } from './types'; interface SchemaWithType['type']> @@ -19,8 +20,6 @@ interface SchemaWithType['type']> type: Extract['type'], T>; } -const typesId = 'types'; - const parseSchemaJsDoc = ({ schema }: { schema: IR.SchemaObject }) => { const comments = [ schema.description && escapeComment(schema.description), diff --git a/packages/openapi-ts/src/plugins/@hey-api/typescript/ref.ts b/packages/openapi-ts/src/plugins/@hey-api/typescript/ref.ts new file mode 100644 index 000000000..f127485c1 --- /dev/null +++ b/packages/openapi-ts/src/plugins/@hey-api/typescript/ref.ts @@ -0,0 +1,74 @@ +import type { TypeScriptFile } from '../../../generate/files'; +import type { IR } from '../../../ir/types'; +import { operationIrRef } from '../../shared/utils/ref'; + +export const typesId = 'types'; + +export const importIdentifierData = ({ + context, + file, + operation, +}: { + context: IR.Context; + file: TypeScriptFile; + operation: IR.OperationObject; +}): ReturnType => { + const identifierData = context.file({ id: 'types' })!.identifier({ + $ref: operationIrRef({ id: operation.id, type: 'data' }), + namespace: 'type', + }); + if (identifierData.name) { + file.import({ + asType: true, + module: file.relativePathToFile({ context, id: 'types' }), + name: identifierData.name, + }); + } + return identifierData; +}; + +export const importIdentifierError = ({ + context, + file, + operation, +}: { + context: IR.Context; + file: TypeScriptFile; + operation: IR.OperationObject; +}): ReturnType => { + const identifierError = context.file({ id: 'types' })!.identifier({ + $ref: operationIrRef({ id: operation.id, type: 'error' }), + namespace: 'type', + }); + if (identifierError.name) { + file.import({ + asType: true, + module: file.relativePathToFile({ context, id: 'types' }), + name: identifierError.name, + }); + } + return identifierError; +}; + +export const importIdentifierResponse = ({ + context, + file, + operation, +}: { + context: IR.Context; + file: TypeScriptFile; + operation: IR.OperationObject; +}): ReturnType => { + const identifierResponse = context.file({ id: 'types' })!.identifier({ + $ref: operationIrRef({ id: operation.id, type: 'response' }), + namespace: 'type', + }); + if (identifierResponse.name) { + file.import({ + asType: true, + module: file.relativePathToFile({ context, id: 'types' }), + name: identifierResponse.name, + }); + } + return identifierResponse; +}; diff --git a/packages/openapi-ts/src/plugins/@tanstack/query-core/useType.ts b/packages/openapi-ts/src/plugins/@tanstack/query-core/useType.ts index bda71b38f..96f36e7f7 100644 --- a/packages/openapi-ts/src/plugins/@tanstack/query-core/useType.ts +++ b/packages/openapi-ts/src/plugins/@tanstack/query-core/useType.ts @@ -1,7 +1,11 @@ import type { ImportExportItemObject } from '../../../compiler/utils'; import type { IR } from '../../../ir/types'; import { operationOptionsType } from '../../@hey-api/sdk/plugin'; -import { operationIrRef } from '../../shared/utils/ref'; +import { + importIdentifierData, + importIdentifierError, + importIdentifierResponse, +} from '../../@hey-api/typescript/ref'; import type { PluginInstance } from './types'; export const useTypeData = ({ @@ -13,22 +17,15 @@ export const useTypeData = ({ operation: IR.OperationObject; plugin: PluginInstance; }) => { - const identifierData = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'data' }), - namespace: 'type', - }); - if (identifierData.name) { - const file = context.file({ id: plugin.name })!; - file.import({ - asType: true, - module: context - .file({ id: plugin.name })! - .relativePathToFile({ context, id: 'types' }), - name: identifierData.name, - }); - } + const file = context.file({ id: plugin.name })!; + + const identifierData = importIdentifierData({ context, file, operation }); + const identifierError = importIdentifierError({ context, file, operation }); + const typeData = operationOptionsType({ - importedType: identifierData.name, + context, + identifierData, + identifierError, }); return typeData; }; @@ -43,19 +40,7 @@ export const useTypeError = ({ plugin: PluginInstance; }) => { const file = context.file({ id: plugin.name })!; - const identifierError = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'error' }), - namespace: 'type', - }); - if (identifierError.name) { - file.import({ - asType: true, - module: context - .file({ id: plugin.name })! - .relativePathToFile({ context, id: 'types' }), - name: identifierError.name, - }); - } + const identifierError = importIdentifierError({ context, file, operation }); let typeError: ImportExportItemObject = { asType: true, name: identifierError.name || '', @@ -90,20 +75,12 @@ export const useTypeResponse = ({ operation: IR.OperationObject; plugin: PluginInstance; }) => { - const identifierResponse = context.file({ id: 'types' })!.identifier({ - $ref: operationIrRef({ id: operation.id, type: 'response' }), - namespace: 'type', + const file = context.file({ id: plugin.name })!; + const identifierResponse = importIdentifierResponse({ + context, + file, + operation, }); - if (identifierResponse.name) { - const file = context.file({ id: plugin.name })!; - file.import({ - asType: true, - module: context - .file({ id: plugin.name })! - .relativePathToFile({ context, id: 'types' }), - name: identifierResponse.name, - }); - } const typeResponse = identifierResponse.name || 'unknown'; return typeResponse; }; diff --git a/packages/openapi-ts/src/types/config.ts b/packages/openapi-ts/src/types/config.ts index eff9cee68..fd63a3f33 100644 --- a/packages/openapi-ts/src/types/config.ts +++ b/packages/openapi-ts/src/types/config.ts @@ -8,6 +8,7 @@ import type { export const CLIENTS = [ '@hey-api/client-axios', '@hey-api/client-fetch', + '@hey-api/client-nuxt', 'legacy/angular', 'legacy/axios', 'legacy/fetch', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 48c3abb85..a83d8fc3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,7 +61,7 @@ importers: version: 3.3.2 tsup: specifier: 8.3.0 - version: 8.3.0(@microsoft/api-extractor@7.47.9(@types/node@20.14.10))(jiti@2.3.1)(postcss@8.4.49)(tsx@4.19.1)(typescript@5.5.3)(yaml@2.4.5) + version: 8.3.0(@microsoft/api-extractor@7.47.9(@types/node@20.14.10))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.1)(typescript@5.5.3)(yaml@2.6.1) typescript: specifier: 5.5.3 version: 5.5.3 @@ -250,6 +250,25 @@ importers: specifier: 5.4.6 version: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + examples/openapi-ts-nuxt: + dependencies: + '@hey-api/client-nuxt': + specifier: workspace:* + version: link:../../packages/client-nuxt + nuxt: + specifier: 3.15.0 + version: 3.15.0(@parcel/watcher@2.5.0)(@types/node@22.8.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.6.0)(ioredis@5.4.2)(less@4.2.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.26.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(typescript@5.6.1-rc)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(yaml@2.6.1) + vue: + specifier: 3.5.13 + version: 3.5.13(typescript@5.6.1-rc) + vue-router: + specifier: 4.5.0 + version: 4.5.0(vue@3.5.13(typescript@5.6.1-rc)) + devDependencies: + '@hey-api/openapi-ts': + specifier: workspace:* + version: link:../../packages/openapi-ts + examples/openapi-ts-tanstack-angular-query-experimental: dependencies: '@angular/animations': @@ -300,10 +319,10 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)) + version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)) '@angular/cli': specifier: ^19.0.6 - version: 19.0.6(@types/node@22.8.5)(chokidar@4.0.1) + version: 19.0.6(@types/node@22.8.5)(chokidar@4.0.3) '@angular/compiler-cli': specifier: ^19.0.5 version: 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3) @@ -579,6 +598,12 @@ importers: packages/client-fetch: {} + packages/client-nuxt: + devDependencies: + nuxt: + specifier: 3.15.0 + version: 3.15.0(@parcel/watcher@2.5.0)(@types/node@22.8.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.6.0)(ioredis@5.4.2)(less@4.2.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.26.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(typescript@5.6.1-rc)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(yaml@2.6.1) + packages/openapi-ts: dependencies: '@hey-api/json-schema-ref-parser': @@ -586,7 +611,7 @@ importers: version: 0.0.2 c12: specifier: 2.0.1 - version: 2.0.1 + version: 2.0.1(magicast@0.3.5) commander: specifier: 12.1.0 version: 12.1.0 @@ -596,13 +621,13 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: 19.0.6 - version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)) + version: 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) '@angular/animations': specifier: 19.0.5 version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/cli': specifier: 19.0.6 - version: 19.0.6(@types/node@22.8.5)(chokidar@4.0.1) + version: 19.0.6(@types/node@22.8.5)(chokidar@4.0.3) '@angular/common': specifier: 19.0.5 version: 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1) @@ -1274,6 +1299,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1580,6 +1611,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.26.3': + resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.25.9': resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} @@ -1619,6 +1656,10 @@ packages: resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} + '@babel/standalone@7.26.4': + resolution: {integrity: sha512-SF+g7S2mhTT1b7CHyfNjDkPU1corxg4LPYsyP0x5KuCl+EbtBQHRLqr9N3q7e7+x7NQ5LYxQf8mJ2PmzebLr0A==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.0': resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1647,6 +1688,10 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1711,6 +1756,10 @@ packages: '@changesets/write@0.3.2': resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + '@cloudflare/kv-asset-handler@0.3.4': + resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} + engines: {node: '>=16.13'} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1767,6 +1816,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -1785,6 +1840,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -1803,6 +1864,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -1821,6 +1888,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -1839,6 +1912,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -1857,6 +1936,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -1875,6 +1960,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -1893,6 +1984,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -1911,6 +2008,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -1929,6 +2032,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -1947,6 +2056,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -1965,6 +2080,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -1983,6 +2104,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -2001,6 +2128,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -2019,6 +2152,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -2037,6 +2176,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -2055,6 +2200,18 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -2073,6 +2230,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.23.1': resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} @@ -2085,6 +2248,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -2103,6 +2272,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -2121,6 +2296,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -2139,6 +2320,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -2157,6 +2344,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -2175,6 +2368,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2445,6 +2644,9 @@ packages: peerDependencies: '@types/node': '>=18' + '@ioredis/commands@1.2.0': + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2509,6 +2711,12 @@ packages: peerDependencies: tslib: '2' + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -2554,6 +2762,11 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@mapbox/node-pre-gyp@2.0.0-rc.0': + resolution: {integrity: sha512-nhSMNprz3WmeRvd8iUs5JqkKr0Ncx46JtPxM3AhXes84XpSJfmIwKeWXRpsr53S7kqPkQfPhzrMFUxSNb23qSA==} + engines: {node: '>=18'} + hasBin: true + '@microsoft/api-extractor-model@7.29.8': resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==} @@ -2700,6 +2913,18 @@ packages: '@neoconfetti/svelte@2.0.0': resolution: {integrity: sha512-n/Uu7/XmHc8w0uBci0QWBjgbRzLhfWsH8yPJ5pMaseIvzSwabXvB30nb3JjzEYNBp9uGt4eCeY7LUmxAjnJV8A==} + '@netlify/functions@2.8.2': + resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} + engines: {node: '>=14.0.0'} + + '@netlify/node-cookies@0.1.0': + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} + + '@netlify/serverless-functions-api@1.26.1': + resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} + engines: {node: '>=18.0.0'} + '@ngtools/webpack@19.0.6': resolution: {integrity: sha512-eWrIb0tS1CK6+JvFS4GgTD4fN9TtmApKrlaj3pPQXKXKKd42361ec85fuQQXdb4G8eEEq0vyd/bn4NJllh/3vw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -2765,6 +2990,43 @@ packages: resolution: {integrity: sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==} engines: {node: ^18.17.0 || >=20.5.0} + '@nuxt/devalue@2.0.2': + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} + + '@nuxt/devtools-kit@1.7.0': + resolution: {integrity: sha512-+NgZ2uP5BuneqvQbe7EdOEaFEDy8762c99pLABtn7/Ur0ExEsQJMP7pYjjoTfKubhBqecr5Vo9yHkPBj1eHulQ==} + peerDependencies: + vite: '*' + + '@nuxt/devtools-wizard@1.7.0': + resolution: {integrity: sha512-86Gd92uEw0Dh2ErIYT9TMIrMOISE96fCRN4rxeryTvyiowQOsyrbkCeMNYrEehoRL+lohoyK6iDmFajadPNwWQ==} + hasBin: true + + '@nuxt/devtools@1.7.0': + resolution: {integrity: sha512-uvnjt5Zowkz7tZmnks2cGreg1XZIiSyVzQ2MYiRXACodlXcwJ0dpUS3WTxu8BR562K+772oRdvKie9AQlyZUgg==} + hasBin: true + peerDependencies: + vite: '*' + + '@nuxt/kit@3.15.0': + resolution: {integrity: sha512-Q7k11wDTLIbBgoTfRYNrciK7PvjKklewrKd5PRMJCpn9Lmuqkq59HErNfJXFrBKHsE3Ld0DB6WUtpPGOvWJZoQ==} + engines: {node: '>=18.20.5'} + + '@nuxt/schema@3.15.0': + resolution: {integrity: sha512-sAgLgSOj/SZxUmlJ/Q3TLRwIAqmiiZ5gCBrT+eq9CowIj7bgxX92pT720pDLEDs4wlXiTTsqC8nyqXQis8pPyA==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/telemetry@2.6.2': + resolution: {integrity: sha512-UReyqp35ZFcsyMuP+DmDj/0W/odANCuObdqYyAIR+/Z/9yDHtBO6Cc/wWbjjhrt41yhhco7/+vILELPHWD+wxg==} + engines: {node: ^14.18.0 || >=16.10.0} + hasBin: true + + '@nuxt/vite-builder@3.15.0': + resolution: {integrity: sha512-cNwX/Q4nqM4hOHbaLUQWdd/cPn8U00GqkTxdxrpzZqTs+A8d8aJQMpuAY+rXclXoU2t0z90HTdSwtgehHGersQ==} + engines: {node: ^18.20.5 || ^20.9.0 || >=22.0.0} + peerDependencies: + vue: ^3.3.4 + '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} @@ -2828,6 +3090,12 @@ packages: cpu: [x64] os: [linux] + '@parcel/watcher-wasm@2.5.0': + resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + '@parcel/watcher-win32-arm64@2.5.0': resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} engines: {node: '>= 10.0.0'} @@ -3498,8 +3766,81 @@ packages: '@types/react-dom': optional: true - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.17.1': + resolution: {integrity: sha512-CEmvaJuG7pm2ylQg53emPmtgm4nW2nxBgwXzbVEHpGas/lGnMyN8Zlkgiz6rPw0unASg6VW3wlz27SOL5XFHYQ==} + + '@redocly/openapi-core@1.26.1': + resolution: {integrity: sha512-xRuVZqMVRFzqjbUCpOTra4tbnmQMWsya996omZMV3WgD084Z6OWB3FXflhAp93E/yAmbWlWZpddw758AyoaLSw==} + engines: {node: '>=14.19.0', npm: '>=7.0.0'} + + '@rollup/plugin-alias@5.1.1': + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@28.0.2': + resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -3844,6 +4185,10 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -3969,6 +4314,9 @@ packages: '@types/node@22.8.5': resolution: {integrity: sha512-5iYk6AMPtsMbkZqCO1UGF9W5L38twq11S2pYWkybGHH2ogPUvXWNlQqJBzuEZWKj/WRH+QTeiv6ySWqJtvIEgA==} + '@types/parse-path@7.0.3': + resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==} + '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} @@ -3990,6 +4338,9 @@ packages: '@types/react@19.0.1': resolution: {integrity: sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} @@ -4171,6 +4522,28 @@ packages: resolution: {integrity: sha512-oN0K4nkHuOyF3PVMyETbpP5zp6wfyOvm7tWhTMfoqxSSsPmJIh6JNASuZDlODE8eE+0EB9uar+6+vxr9DBTYOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@unhead/dom@1.11.14': + resolution: {integrity: sha512-FaHCWo9JR4h7PCpSRaXuMC6ifXOuBzlI0PD1MmUcxND2ayDl1d6DauIbN8TUf9TDRxNkrK1Ehb0OCXjC1ZJtrg==} + + '@unhead/schema@1.11.14': + resolution: {integrity: sha512-V9W9u5tF1/+TiLqxu+Qvh1ShoMDkPEwHoEo4DKdDG6ko7YlbzFfDxV6el9JwCren45U/4Vy/4Xi7j8OH02wsiA==} + + '@unhead/shared@1.11.14': + resolution: {integrity: sha512-41Qt4PJKYVrEGOTXgBJLRYrEu3S7n5stoB4TFC6312CIBVedXqg7voHQurn32LVDjpfJftjLa2ggCjpqdqoRDw==} + + '@unhead/ssr@1.11.14': + resolution: {integrity: sha512-JBF2f5PWPtpqBx/dan+4vL/dartSp8Nmd011zkT9qPYmizxO+/fsB1WQalbis1KszkfFatb6c4rO+hm0d6acOA==} + + '@unhead/vue@1.11.14': + resolution: {integrity: sha512-6nfi7FsZ936gscmj+1nUB1pybiFMFbnuEFo7B/OY2klpLWsYDUOVvpsJhbu7C3u7wkTlJXglmAk6jdd8I7WgZA==} + peerDependencies: + vue: '>=2.7 || >=3' + + '@vercel/nft@0.27.10': + resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} + engines: {node: '>=16'} + hasBin: true + '@vitejs/plugin-basic-ssl@1.1.0': resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} engines: {node: '>=14.6.0'} @@ -4190,6 +4563,13 @@ packages: vite: ^5.0.0 vue: ^3.0.0 + '@vitejs/plugin-vue-jsx@4.1.1': + resolution: {integrity: sha512-uMJqv/7u1zz/9NbWAD3XdjaY20tKTf17XVfQ9zq4wY1BjsB/PjpJPMe2xiG39QpP4ZdhYNhm4Hvo66uJrykNLA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.0.0 + '@vitejs/plugin-vue@5.0.5': resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4197,6 +4577,13 @@ packages: vite: ^5.0.0 vue: ^3.2.25 + '@vitejs/plugin-vue@5.2.1': + resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + '@vitest/coverage-v8@1.6.0': resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} peerDependencies: @@ -4270,9 +4657,21 @@ packages: '@volar/typescript@2.4.0-alpha.18': resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} + '@vue-macros/common@1.15.1': + resolution: {integrity: sha512-O0ZXaladWXwHplQnSjxLbB/G1KpdWCUNJPNYVHIxHonGex1BGpoB4fBZZLgddHgAiy18VZG/Iu5L0kwG+SV7JQ==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + '@vue/babel-helper-vue-transform-on@1.2.2': resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + '@vue/babel-helper-vue-transform-on@1.2.5': + resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} + '@vue/babel-plugin-jsx@1.2.2': resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} peerDependencies: @@ -4281,11 +4680,24 @@ packages: '@babel/core': optional: true + '@vue/babel-plugin-jsx@1.2.5': + resolution: {integrity: sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + '@vue/babel-plugin-resolve-type@1.2.2': resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} peerDependencies: '@babel/core': ^7.0.0-0 + '@vue/babel-plugin-resolve-type@1.2.5': + resolution: {integrity: sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.5.12': resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} @@ -4324,15 +4736,26 @@ packages: peerDependencies: vue: ^3.0.0 + '@vue/devtools-core@7.6.8': + resolution: {integrity: sha512-8X4roysTwzQ94o7IobjVcOd1aZF5iunikrMrHPI2uUdigZCi2kFTQc7ffYiFiTNaLElCpjOhCnM7bo7aK1yU7A==} + peerDependencies: + vue: ^3.0.0 + '@vue/devtools-kit@7.3.5': resolution: {integrity: sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww==} '@vue/devtools-kit@7.3.7': resolution: {integrity: sha512-ktHhhjI4CoUrwdSUF5b/MFfjrtAtK8r4vhOkFyRN5Yp9kdXTwsRBYcwarHuP+wFPKf4/KM7DVBj2ELO8SBwdsw==} + '@vue/devtools-kit@7.6.8': + resolution: {integrity: sha512-JhJ8M3sPU+v0P2iZBF2DkdmR9L0dnT5RXJabJqX6o8KtFs3tebdvfoXV2Dm3BFuqeECuMJIfF1aCzSt+WQ4wrw==} + '@vue/devtools-shared@7.3.7': resolution: {integrity: sha512-M9EU1/bWi5GNS/+IZrAhwGOVZmUTN4MH22Hvh35nUZZg9AZP2R2OhfCb+MG4EtAsrUEYlu3R43/SIj3G7EZYtQ==} + '@vue/devtools-shared@7.6.8': + resolution: {integrity: sha512-9MBPO5Z3X1nYGFqTJyohl6Gmf/J7UNN1oicHdyzBVZP4jnhZ4c20MgtaHDIzWmHDHCMYVS5bwKxT3jxh7gOOKA==} + '@vue/eslint-config-prettier@9.0.0': resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==} peerDependencies: @@ -4509,6 +4932,10 @@ packages: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + abstract-logging@2.0.1: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} @@ -4516,6 +4943,11 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4530,11 +4962,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -4653,6 +5080,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -4686,11 +5121,25 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-kit@1.3.2: + resolution: {integrity: sha512-gdvX700WVC6sHCJQ7bJGfDvtuKAh6Sa6weIZROxfzUZKP7BjvB8y0SMlM/o4omSQ3L60PQSJROBJsb0vEViVnA==} + engines: {node: '>=16.14.0'} + ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - asynckit@0.4.0: + ast-walker-scope@0.6.2: + resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} + engines: {node: '>=16.14.0'} + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} atomic-sleep@1.0.0: @@ -4792,9 +5241,15 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4846,6 +5301,9 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -4900,6 +5358,9 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-lite@1.0.30001636: resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==} @@ -4933,6 +5394,9 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -4955,6 +5419,10 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -5022,6 +5490,10 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -5037,6 +5509,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} @@ -5060,6 +5536,12 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -5082,9 +5564,27 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -5102,6 +5602,9 @@ packages: confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -5117,6 +5620,10 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + consola@3.3.3: + resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} + engines: {node: ^14.18.0 || >=16.10.0} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -5131,6 +5638,9 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -5178,9 +5688,26 @@ packages: typescript: optional: true + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + croner@9.0.0: + resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} + engines: {node: '>=18.0'} + + cronstrue@2.52.0: + resolution: {integrity: sha512-NKgHbWkSZXJUcaBHSsyzC8eegD6bBd4O0oCI6XMIJ+y4Bq3v4w7sY3wfWoKPuVlq9pQHRB6od0lmKpIqi8TlKA==} + hasBin: true + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -5188,6 +5715,15 @@ packages: resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-loader@7.1.2: resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} engines: {node: '>= 18.12.0'} @@ -5203,6 +5739,10 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -5216,6 +5756,28 @@ packages: engines: {node: '>=4'} hasBin: true + cssnano-preset-default@7.0.6: + resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.6: + resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + cssstyle@4.0.1: resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} engines: {node: '>=18'} @@ -5245,6 +5807,26 @@ packages: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} + db0@0.2.1: + resolution: {integrity: sha512-BWSFmLaCkfyqbSEZBQINMVNjCVfrogi7GQ2RSy1tmtfK9OXlsup6lUMwLsqSD7FbAjD04eWFdXowSHHUp6SE/Q==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -5316,6 +5898,10 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -5331,6 +5917,10 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -5389,6 +5979,10 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -5416,14 +6010,25 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + dotenv@8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -5519,6 +6124,9 @@ packages: error-stack-parser-es@0.1.5: resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -5553,6 +6161,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5568,6 +6181,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -5739,6 +6356,10 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -5753,6 +6374,10 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -5778,6 +6403,9 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + externality@1.0.2: + resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} + extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -5808,6 +6436,9 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-npm-meta@0.2.2: + resolution: {integrity: sha512-E+fdxeaOQGo/CMWc9f4uHFfgUPJRAu7N3uB8GBvB3SDPAIWJK4GKyYhkAGFq+GYrcbKNfQIz5VVQyJnDuPPCrg==} + fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -5850,6 +6481,14 @@ packages: picomatch: optional: true + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -5861,6 +6500,9 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -5904,6 +6546,9 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} @@ -5993,6 +6638,9 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -6016,6 +6664,16 @@ packages: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true + git-config-path@2.0.0: + resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} + engines: {node: '>=4'} + + git-up@8.0.0: + resolution: {integrity: sha512-uBI8Zdt1OZlrYfGcSVroLJKgyNNXlgusYFzHk614lTasz35yg2PVpL1RMy0LOO2dcvF9msYW3pRfUSmafZNrjg==} + + git-url-parse@16.0.0: + resolution: {integrity: sha512-Y8iAF0AmCaqXc6a5GYgPQW9ESbncNLOL+CeQAJRhmWUOmnPkKpBYeWYp4mFd3LA5j53CdGDdslzX12yEBVHQQg==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -6036,6 +6694,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -6079,6 +6741,13 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} @@ -6182,10 +6851,17 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + httpxy@0.1.5: + resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} + human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} @@ -6193,6 +6869,10 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -6231,6 +6911,13 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@7.0.0: + resolution: {integrity: sha512-lcX8PNQygAa22u/0BysEY8VhaFRzlOkvdlKczDPnJvrkJD1EuqzEky5VYYKM2iySIuaVIDv9N190DfSreSLw2A==} + engines: {node: '>= 4'} + + image-meta@0.2.1: + resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} + image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -6250,6 +6937,9 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + impound@0.2.0: + resolution: {integrity: sha512-gXgeSyp9Hf7qG2/PLKmywHXyQf2xFrw+mJGpoj9DsAB9L7/MIKn+DeEx98UryWXdmbv8wUUPdcQof6qXnZoCGg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -6258,6 +6948,10 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + index-to-position@0.1.2: + resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -6271,6 +6965,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@5.0.0: resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -6278,6 +6976,10 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ioredis@5.4.2: + resolution: {integrity: sha512-0SZXGNGZ+WzISQ67QDyZ2x0+wVxjjUndtD8oSeik/4ajifeiRufed8fCb8QW8VMyi4MXcS+UO1k/0NGhvq1PAg==} + engines: {node: '>=12.22.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -6290,6 +6992,9 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -6304,6 +7009,11 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6334,6 +7044,10 @@ packages: engines: {node: '>=14.16'} hasBin: true + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -6341,6 +7055,9 @@ packages: is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-network-error@1.1.0: resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} engines: {node: '>=16'} @@ -6353,6 +7070,10 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -6368,9 +7089,15 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -6398,10 +7125,18 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -6470,6 +7205,10 @@ packages: resolution: {integrity: sha512-xPZ6pPzUifI8XDBBxIL4OB1w1ZKmBpmNEeKwNt2d0Spn8XisAIZhWrlOHq5seBrFGTxVx9PbrWvEMyrk4IO5bA==} hasBin: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -6486,12 +7225,19 @@ packages: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-tokens@9.0.0: resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + 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 @@ -6599,10 +7345,21 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.2.0: + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + known-css-properties@0.30.0: resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} @@ -6612,6 +7369,13 @@ packages: launch-editor@2.8.0: resolution: {integrity: sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==} + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + less-loader@12.2.0: resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} engines: {node: '>= 18.12.0'} @@ -6661,6 +7425,10 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + listr2@8.2.3: resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} engines: {node: '>=18.0.0'} @@ -6693,6 +7461,10 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -6711,6 +7483,15 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -6720,6 +7501,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -6773,15 +7557,25 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + magic-string-ast@0.6.3: + resolution: {integrity: sha512-C9sgUzVZtUtzCBoMdYtwrIRQ4IucGRFGgdhkjL7PXsVfPYmTuWtewqzk7dlipaCMWH/gOYehW9rgMoa4Oebtpw==} + engines: {node: '>=16.14.0'} + magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} magic-string@0.30.12: resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6815,6 +7609,9 @@ packages: engines: {node: '>= 16'} hasBin: true + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} @@ -6870,6 +7667,16 @@ packages: engines: {node: '>=4.0.0'} hasBin: true + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.0.6: + resolution: {integrity: sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==} + engines: {node: '>=16'} + hasBin: true + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -6901,6 +7708,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} @@ -6979,6 +7790,9 @@ packages: mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -7026,6 +7840,14 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + engines: {node: ^18 || >=20} + hasBin: true + + nanotar@0.1.1: + resolution: {integrity: sha512-AiJsGsSF3O0havL1BydvI4+wR76sKT+okKRwWIaK96cZUnXqH0uNBOsHlbwZq3+m2BR1VKqHDVudl3gO4mYjpQ==} + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -7052,6 +7874,16 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} + nitropack@2.10.4: + resolution: {integrity: sha512-sJiG/MIQlZCVSw2cQrFG1H6mLeSqHlYfFerRjLKz69vUfdu0EL2l0WdOxlQbzJr3mMv/l4cOlCCLzVRzjzzF/g==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} @@ -7090,6 +7922,10 @@ packages: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + node-gyp@10.1.0: resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -7106,6 +7942,11 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true + nopt@8.0.0: + resolution: {integrity: sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + normalize-package-data@7.0.0: resolution: {integrity: sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -7166,6 +8007,24 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nuxi@3.17.2: + resolution: {integrity: sha512-JDVtBBwEe9VjVkhxwR/crtGJnyLHzvl2F1pjtglekjTVeiMThfhQHcvsI/u007gBAfPpmaCIdRGnoeTF4VKS8w==} + engines: {node: ^16.10.0 || >=18.0.0} + hasBin: true + + nuxt@3.15.0: + resolution: {integrity: sha512-pjP/2zEjr57ensZZ1F4b7KldocM9S4SOtukgi9zau1OFlyolUmEgMFbHnwmEKqzuZ1OPTaRS3/1S6B7GUVbbRg==} + engines: {node: ^18.20.5 || ^20.9.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true + nwsapi@2.2.12: resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} @@ -7174,6 +8033,11 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true + nypm@0.4.1: + resolution: {integrity: sha512-1b9mihliBh8UCcKtcGRu//G50iHpjxIQVUqkdhPT/SDVE7KdJKoHXLS0heuYTQCx95dFqiyUbXZB9r8ikn+93g==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -7189,6 +8053,9 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + ohash@1.1.4: resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} @@ -7227,6 +8094,16 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openapi-typescript@7.4.4: + resolution: {integrity: sha512-7j3nktnRzlQdlHnHsrcr6Gqz8f80/RhfA2I8s1clPI+jkY0hLNmnYVKBfuUEli5EEgK1B6M+ibdS5REasPlsUw==} + hasBin: true + peerDependencies: + typescript: ^5.x + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -7311,6 +8188,9 @@ packages: package-manager-detector@0.2.0: resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + package-manager-detector@0.2.8: + resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} + pacote@20.0.0: resolution: {integrity: sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -7320,14 +8200,29 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-git-config@3.0.0: + resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} + engines: {node: '>=8'} + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parse-json@8.1.0: + resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} + engines: {node: '>=18'} + parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} + parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + + parse-url@9.2.0: + resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} + engines: {node: '>=14.13.0'} + parse5-html-rewriting-stream@7.0.0: resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==} @@ -7473,6 +8368,55 @@ packages: pkg-types@1.2.0: resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + pkg-types@1.3.0: + resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-calc@10.0.2: + resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.4: + resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.3: + resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -7543,6 +8487,42 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + postcss-merge-longhand@7.0.4: + resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.4: + resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.4: + resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} @@ -7573,6 +8553,78 @@ packages: peerDependencies: postcss: ^8.2.14 + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-safe-parser@6.0.0: resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -7589,6 +8641,22 @@ packages: resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.3: + resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -7640,6 +8708,10 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7662,6 +8734,10 @@ packages: process-warning@4.0.0: resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -7678,9 +8754,16 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - proto-list@1.2.4: + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + protocols@2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -7740,6 +8823,9 @@ packages: quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -7827,6 +8913,13 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.6.0: + resolution: {integrity: sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -7839,6 +8932,14 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -7956,6 +9057,19 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true + rollup-plugin-visualizer@5.13.1: + resolution: {integrity: sha512-vMg8i6BprL8aFm9DKvL2c8AwS8324EgymYQo9o6E26wgVvwMhsJxS37aNL6ZsU7X9iAcMYwdME7gItLfG5fwJg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.22.0: resolution: {integrity: sha512-W21MUIFPZ4+O2Je/EU+GP3iz7PH4pVPUXSbEZdatQnxo29+3rsUjgrJmzuAZU24z7yRAnFN6ukxeAhZh/c7hzg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -8052,6 +9166,9 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + search-insights@2.14.0: resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} @@ -8114,6 +9231,9 @@ packages: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} engines: {node: '>= 0.8.0'} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -8179,6 +9299,9 @@ packages: resolution: {integrity: sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==} engines: {node: ^18.17.0 || >=20.5.0} + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -8190,6 +9313,9 @@ packages: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} @@ -8214,6 +9340,9 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -8322,6 +9451,9 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -8396,6 +9528,15 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + strip-literal@2.1.1: + resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + + stylehacks@7.0.4: + resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -8417,6 +9558,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + supports-hyperlinks@3.1.0: resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} engines: {node: '>=14.18'} @@ -8490,6 +9635,11 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} @@ -8501,6 +9651,10 @@ packages: resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} @@ -8592,6 +9746,9 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} @@ -8601,6 +9758,10 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.6: resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} engines: {node: '>=12.0.0'} @@ -8764,6 +9925,10 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + type-fest@4.31.0: + resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -8809,23 +9974,38 @@ packages: resolution: {integrity: sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==} hasBin: true - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} uglify-js@3.18.0: resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} engines: {node: '>=0.8.0'} hasBin: true + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.4.1: + resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unhead@1.11.14: + resolution: {integrity: sha512-XmXW0aZyX9kGk9ejCKCSvv/J4T3Rt4hoAe2EofM+nhG+zwZ7AArUMK/0F/fj6FTkfgY0u0/JryE00qUDULgygA==} + unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} @@ -8850,6 +10030,9 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unimport@3.14.5: + resolution: {integrity: sha512-tn890SwFFZxqaJSKQPPd+yygfKSATbM8BZWW1aCR2TJBTs1SDrmLamBueaFtYsGjHtQaRgqEbQflOjN2iW12gA==} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8882,6 +10065,96 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin-vue-router@0.10.9: + resolution: {integrity: sha512-DXmC0GMcROOnCmN56GRvi1bkkG1BnVs4xJqNvucBUeZkmB245URvtxOfbo3H6q4SOUQQbLPYWd6InzvjRh363A==} + peerDependencies: + vue-router: ^4.4.0 + peerDependenciesMeta: + vue-router: + optional: true + + unplugin@1.16.0: + resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} + engines: {node: '>=14.0.0'} + + unplugin@2.0.0-beta.1: + resolution: {integrity: sha512-2qzQo5LN2DmUZXkWDHvGKLF5BP0WN+KthD6aPnPJ8plRBIjv4lh5O07eYcSxgO2znNw9s4MNhEO1sB+JDllDbQ==} + engines: {node: '>=18.12.0'} + + unplugin@2.1.0: + resolution: {integrity: sha512-us4j03/499KhbGP8BU7Hrzrgseo+KdfJYWcbcajCOqsAyb8Gk0Yn2kiUIcZISYCb1JFaZfIuG3b42HmguVOKCQ==} + engines: {node: '>=18.12.0'} + + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@1.5.2: + resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} + hasBin: true + + unwasm@0.3.9: + resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} + update-browserslist-db@1.0.16: resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true @@ -8900,6 +10173,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -8909,6 +10188,9 @@ packages: urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -8963,6 +10245,11 @@ packages: peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + vite-hot-client@0.2.4: + resolution: {integrity: sha512-a1nzURqO7DDmnXqabFOliz908FRmIppkBKsJthS8rbe8hBEXwEwe4C3Pp33Z1JoFCYfVL4kTOMLKk0ZZxREIeA==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + vite-node@1.6.0: resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8978,6 +10265,45 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-plugin-checker@0.8.0: + resolution: {integrity: sha512-UA5uzOGm97UvZRTdZHiQVYFnd86AVn8EVaD4L3PoVzxH+IZSfaAw14WGFwX9QS23UW3lV/5bVKZn6l0w+q9P0g==} + engines: {node: '>=14.16'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: ~2.1.6 + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + vite-plugin-inspect@0.8.5: resolution: {integrity: sha512-JvTUqsP1JNDw0lMZ5Z/r5cSj81VK2B7884LO1DC3GMBhdcjcsAnJjdWq7bzQL01Xbh+v60d3lju3g+z7eAtNew==} engines: {node: '>=14'} @@ -8988,6 +10314,16 @@ packages: '@nuxt/kit': optional: true + vite-plugin-inspect@0.8.9: + resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + vite-plugin-vue-devtools@7.3.1: resolution: {integrity: sha512-KuksceHlb5QZtb5gRB4wuRiquZRX74//i0X5jzvy5QzY11qwK44goyVrhPupZbsNfqwmZWNi3CQAe0RhLBUylg==} engines: {node: '>=v14.21.3'} @@ -8999,6 +10335,11 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + vite-plugin-vue-inspector@5.3.1: + resolution: {integrity: sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 + vite@5.4.11: resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -9061,6 +10402,46 @@ packages: terser: optional: true + vite@6.0.6: + resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@0.2.5: resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -9160,9 +10541,33 @@ packages: resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} engines: {node: '>=0.10.0'} + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-bundle-renderer@2.1.1: + resolution: {integrity: sha512-+qALLI5cQncuetYOXp4yScwYvqh8c6SMXee3B+M7oTZxOgtESP0l4j/fXdEJoZ+EdMxkGWIj+aSEyjXkOdmd7g==} + vue-component-type-helpers@2.0.29: resolution: {integrity: sha512-58i+ZhUAUpwQ+9h5Hck0D+jr1qbYl4voRt5KffBx8qzELViQ4XdT/Tuo+mzq8u63teAG8K0lLaOiL5ofqW38rg==} @@ -9177,6 +10582,9 @@ packages: '@vue/composition-api': optional: true + vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + vue-eslint-parser@9.4.3: resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} engines: {node: ^14.17.0 || >=16.0.0} @@ -9281,6 +10689,9 @@ packages: html-webpack-plugin: optional: true + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack@5.96.1: resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} engines: {node: '>=10.13.0'} @@ -9326,6 +10737,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} @@ -9427,6 +10843,9 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -9436,6 +10855,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -9471,6 +10895,13 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + zhead@2.2.4: + resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -9592,20 +11023,20 @@ snapshots: '@andrewbranch/untar.js@1.0.3': {} - '@angular-devkit/architect@0.1900.6(chokidar@4.0.1)': + '@angular-devkit/architect@0.1900.6(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.1) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.1)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': + '@angular-devkit/build-angular@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.1) - '@angular-devkit/build-webpack': 0.1900.6(chokidar@4.0.1)(webpack-dev-server@5.1.0(webpack@5.96.1(esbuild@0.24.0)))(webpack@5.96.1(esbuild@0.24.0)) - '@angular-devkit/core': 19.0.6(chokidar@4.0.1) - '@angular/build': 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.1)(less@4.2.0)(postcss@8.4.49)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(terser@5.36.0)(typescript@5.5.3) + '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.1900.6(chokidar@4.0.3)(webpack-dev-server@5.1.0(webpack@5.96.1(esbuild@0.24.0)))(webpack@5.96.1(esbuild@0.24.0)) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular/build': 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(less@4.2.0)(postcss@8.4.49)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(terser@5.36.0)(typescript@5.5.3) '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3) '@babel/core': 7.26.0 '@babel/generator': 7.26.2 @@ -9682,16 +11113,99 @@ snapshots: - vite - webpack-cli - '@angular-devkit/build-webpack@0.1900.6(chokidar@4.0.1)(webpack-dev-server@5.1.0(webpack@5.96.1(esbuild@0.24.0)))(webpack@5.96.1(esbuild@0.24.0))': + '@angular-devkit/build-angular@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(typescript@5.5.3)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) + '@angular-devkit/build-webpack': 0.1900.6(chokidar@4.0.3)(webpack-dev-server@5.1.0(webpack@5.96.1(esbuild@0.24.0)))(webpack@5.96.1(esbuild@0.24.0)) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular/build': 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(less@4.2.0)(postcss@8.4.49)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(terser@5.36.0)(typescript@5.5.3) + '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3) + '@babel/core': 7.26.0 + '@babel/generator': 7.26.2 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/runtime': 7.26.0 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(typescript@5.5.3)(webpack@5.96.1(esbuild@0.24.0)) + '@vitejs/plugin-basic-ssl': 1.1.0(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.20(postcss@8.4.49) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.96.1(esbuild@0.24.0)) + browserslist: 4.24.2 + copy-webpack-plugin: 12.0.2(webpack@5.96.1(esbuild@0.24.0)) + css-loader: 7.1.2(webpack@5.96.1(esbuild@0.24.0)) + esbuild-wasm: 0.24.0 + fast-glob: 3.3.2 + http-proxy-middleware: 3.0.3 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.2.0 + less-loader: 12.2.0(less@4.2.0)(webpack@5.96.1(esbuild@0.24.0)) + license-webpack-plugin: 4.0.2(webpack@5.96.1(esbuild@0.24.0)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.9.2(webpack@5.96.1(esbuild@0.24.0)) + open: 10.1.0 + ora: 5.4.1 + picomatch: 4.0.2 + piscina: 4.7.0 + postcss: 8.4.49 + postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.5.3)(webpack@5.96.1(esbuild@0.24.0)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.1 + sass: 1.80.7 + sass-loader: 16.0.3(sass@1.80.7)(webpack@5.96.1(esbuild@0.24.0)) + semver: 7.6.3 + source-map-loader: 5.0.0(webpack@5.96.1(esbuild@0.24.0)) + source-map-support: 0.5.21 + terser: 5.36.0 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 5.5.3 + webpack: 5.96.1(esbuild@0.23.1) + webpack-dev-middleware: 7.4.2(webpack@5.96.1(esbuild@0.24.0)) + webpack-dev-server: 5.1.0(webpack@5.96.1(esbuild@0.24.0)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(webpack@5.96.1(esbuild@0.24.0)) + optionalDependencies: + esbuild: 0.24.0 + karma: 6.4.4 + tailwindcss: 3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)) + transitivePeerDependencies: + - '@angular/compiler' + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - uglify-js + - utf-8-validate + - vite + - webpack-cli + + '@angular-devkit/build-webpack@0.1900.6(chokidar@4.0.3)(webpack-dev-server@5.1.0(webpack@5.96.1(esbuild@0.24.0)))(webpack@5.96.1(esbuild@0.24.0))': dependencies: - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.1) + '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) rxjs: 7.8.1 webpack: 5.96.1(esbuild@0.23.1) webpack-dev-server: 5.1.0(webpack@5.96.1(esbuild@0.24.0)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@19.0.6(chokidar@4.0.1)': + '@angular-devkit/core@19.0.6(chokidar@4.0.3)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -9700,11 +11214,11 @@ snapshots: rxjs: 7.8.1 source-map: 0.7.4 optionalDependencies: - chokidar: 4.0.1 + chokidar: 4.0.3 - '@angular-devkit/schematics@19.0.6(chokidar@4.0.1)': + '@angular-devkit/schematics@19.0.6(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.1) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) jsonc-parser: 3.3.1 magic-string: 0.30.12 ora: 5.4.1 @@ -9717,10 +11231,10 @@ snapshots: '@angular/core': 19.0.5(rxjs@7.8.1)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.1)(less@4.2.0)(postcss@8.4.49)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(terser@5.36.0)(typescript@5.5.3)': + '@angular/build@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.8.5)(chokidar@4.0.3)(less@4.2.0)(postcss@8.4.49)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)))(terser@5.36.0)(typescript@5.5.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.1) + '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) '@angular/compiler': 19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)) '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3) '@babel/core': 7.26.0 @@ -9733,7 +11247,7 @@ snapshots: browserslist: 4.24.2 esbuild: 0.24.0 fast-glob: 3.3.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) istanbul-lib-instrument: 6.0.3 listr2: 8.2.5 magic-string: 0.30.12 @@ -9771,14 +11285,14 @@ snapshots: optionalDependencies: parse5: 7.1.2 - '@angular/cli@19.0.6(@types/node@22.8.5)(chokidar@4.0.1)': + '@angular/cli@19.0.6(@types/node@22.8.5)(chokidar@4.0.3)': dependencies: - '@angular-devkit/architect': 0.1900.6(chokidar@4.0.1) - '@angular-devkit/core': 19.0.6(chokidar@4.0.1) - '@angular-devkit/schematics': 19.0.6(chokidar@4.0.1) + '@angular-devkit/architect': 0.1900.6(chokidar@4.0.3) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular-devkit/schematics': 19.0.6(chokidar@4.0.3) '@inquirer/prompts': 7.1.0(@types/node@22.8.5) '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.1.0(@types/node@22.8.5)) - '@schematics/angular': 19.0.6(chokidar@4.0.1) + '@schematics/angular': 19.0.6(chokidar@4.0.3) '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 @@ -9940,7 +11454,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9962,7 +11476,7 @@ snapshots: '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color @@ -10033,7 +11547,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -10041,25 +11555,25 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/helper-member-expression-to-functions@7.24.8': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.22.15': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/helper-module-imports@7.25.9': dependencies: @@ -10090,11 +11604,11 @@ snapshots: '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/helper-plugin-utils@7.24.7': {} @@ -10141,28 +11655,28 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-simple-access@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color @@ -10186,7 +11700,7 @@ snapshots: dependencies: '@babel/template': 7.25.9 '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color @@ -10312,6 +11826,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10662,6 +12181,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10771,6 +12301,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/standalone@7.26.4': {} + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.26.2 @@ -10790,7 +12322,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -10802,7 +12334,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -10824,6 +12356,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@bcoe/v8-coverage@0.2.3': {} '@changesets/apply-release-plan@7.0.5': @@ -10985,6 +12522,10 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 + '@colors/colors@1.5.0': {} '@cspotcode/source-map-support@0.8.1': @@ -11034,6 +12575,9 @@ snapshots: '@esbuild/aix-ppc64@0.24.0': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true @@ -11043,6 +12587,9 @@ snapshots: '@esbuild/android-arm64@0.24.0': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.21.5': optional: true @@ -11052,6 +12599,9 @@ snapshots: '@esbuild/android-arm@0.24.0': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.21.5': optional: true @@ -11061,6 +12611,9 @@ snapshots: '@esbuild/android-x64@0.24.0': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true @@ -11070,6 +12623,9 @@ snapshots: '@esbuild/darwin-arm64@0.24.0': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true @@ -11079,6 +12635,9 @@ snapshots: '@esbuild/darwin-x64@0.24.0': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true @@ -11088,6 +12647,9 @@ snapshots: '@esbuild/freebsd-arm64@0.24.0': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true @@ -11097,6 +12659,9 @@ snapshots: '@esbuild/freebsd-x64@0.24.0': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true @@ -11106,6 +12671,9 @@ snapshots: '@esbuild/linux-arm64@0.24.0': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true @@ -11115,6 +12683,9 @@ snapshots: '@esbuild/linux-arm@0.24.0': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true @@ -11124,6 +12695,9 @@ snapshots: '@esbuild/linux-ia32@0.24.0': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true @@ -11133,6 +12707,9 @@ snapshots: '@esbuild/linux-loong64@0.24.0': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true @@ -11142,6 +12719,9 @@ snapshots: '@esbuild/linux-mips64el@0.24.0': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true @@ -11151,6 +12731,9 @@ snapshots: '@esbuild/linux-ppc64@0.24.0': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true @@ -11160,6 +12743,9 @@ snapshots: '@esbuild/linux-riscv64@0.24.0': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true @@ -11169,6 +12755,9 @@ snapshots: '@esbuild/linux-s390x@0.24.0': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true @@ -11178,6 +12767,12 @@ snapshots: '@esbuild/linux-x64@0.24.0': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true @@ -11187,12 +12782,18 @@ snapshots: '@esbuild/netbsd-x64@0.24.0': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + '@esbuild/openbsd-arm64@0.23.1': optional: true '@esbuild/openbsd-arm64@0.24.0': optional: true + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true @@ -11202,6 +12803,9 @@ snapshots: '@esbuild/openbsd-x64@0.24.0': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true @@ -11211,6 +12815,9 @@ snapshots: '@esbuild/sunos-x64@0.24.0': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true @@ -11220,6 +12827,9 @@ snapshots: '@esbuild/win32-arm64@0.24.0': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true @@ -11229,6 +12839,9 @@ snapshots: '@esbuild/win32-ia32@0.24.0': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true @@ -11238,6 +12851,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@9.0.0)': dependencies: eslint: 9.0.0 @@ -11253,7 +12869,7 @@ snapshots: '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -11518,6 +13134,8 @@ snapshots: dependencies: '@types/node': 22.8.5 + '@ioredis/commands@1.2.0': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -11584,6 +13202,14 @@ snapshots: dependencies: tslib: 2.8.1 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@leichtgewicht/ip-codec@2.0.5': {} '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.1.0(@types/node@22.8.5))': @@ -11625,6 +13251,19 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 + '@mapbox/node-pre-gyp@2.0.0-rc.0(encoding@0.1.13)': + dependencies: + consola: 3.3.3 + detect-libc: 2.0.3 + https-proxy-agent: 7.0.5(supports-color@9.4.0) + node-fetch: 2.7.0(encoding@0.1.13) + nopt: 8.0.0 + semver: 7.6.3 + tar: 7.4.3 + transitivePeerDependencies: + - encoding + - supports-color + '@microsoft/api-extractor-model@7.29.8(@types/node@20.14.10)': dependencies: '@microsoft/tsdoc': 0.15.1 @@ -11752,6 +13391,17 @@ snapshots: '@neoconfetti/svelte@2.0.0': {} + '@netlify/functions@2.8.2': + dependencies: + '@netlify/serverless-functions-api': 1.26.1 + + '@netlify/node-cookies@0.1.0': {} + + '@netlify/serverless-functions-api@1.26.1': + dependencies: + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + '@ngtools/webpack@19.0.6(@angular/compiler-cli@19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3))(typescript@5.5.3)(webpack@5.96.1(esbuild@0.24.0))': dependencies: '@angular/compiler-cli': 19.0.5(@angular/compiler@19.0.5(@angular/core@19.0.5(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.5.3) @@ -11772,9 +13422,9 @@ snapshots: '@npmcli/agent@2.2.2': dependencies: - agent-base: 7.1.1 + agent-base: 7.1.1(supports-color@9.4.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) lru-cache: 10.4.3 socks-proxy-agent: 8.0.3 transitivePeerDependencies: @@ -11782,9 +13432,9 @@ snapshots: '@npmcli/agent@3.0.0': dependencies: - agent-base: 7.1.1 + agent-base: 7.1.1(supports-color@9.4.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) lru-cache: 10.4.3 socks-proxy-agent: 8.0.3 transitivePeerDependencies: @@ -11849,6 +13499,206 @@ snapshots: - bluebird - supports-color + '@nuxt/devalue@2.0.2': {} + + '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))': + dependencies: + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + '@nuxt/schema': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + execa: 7.2.0 + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/devtools-wizard@1.7.0': + dependencies: + consola: 3.3.3 + diff: 7.0.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.5 + pathe: 1.1.2 + pkg-types: 1.3.0 + prompts: 2.4.2 + rc9: 2.1.2 + semver: 7.6.3 + + '@nuxt/devtools@1.7.0(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@antfu/utils': 0.7.10 + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + '@nuxt/devtools-wizard': 1.7.0 + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + '@vue/devtools-core': 7.6.8(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc)) + '@vue/devtools-kit': 7.6.8 + birpc: 0.2.19 + consola: 3.3.3 + cronstrue: 2.52.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.5 + execa: 7.2.0 + fast-npm-meta: 0.2.2 + flatted: 3.3.2 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.1 + is-installed-globally: 1.0.0 + launch-editor: 2.9.1 + local-pkg: 0.5.1 + magicast: 0.3.5 + nypm: 0.4.1 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.3 + simple-git: 3.27.0 + sirv: 3.0.0 + tinyglobby: 0.2.10 + unimport: 3.14.5(rollup@4.26.0) + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.0(magicast@0.3.5)(rollup@4.26.0))(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + vite-plugin-vue-inspector: 5.3.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + which: 3.0.1 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - rollup + - supports-color + - utf-8-validate + - vue + + '@nuxt/kit@3.15.0(magicast@0.3.5)(rollup@4.26.0)': + dependencies: + '@nuxt/schema': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + c12: 2.0.1(magicast@0.3.5) + consola: 3.3.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + ignore: 7.0.0 + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + mlly: 1.7.3 + ohash: 1.1.4 + pathe: 1.1.2 + pkg-types: 1.3.0 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.4 + unctx: 2.4.1 + unimport: 3.14.5(rollup@4.26.0) + untyped: 1.5.2 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/schema@3.15.0(magicast@0.3.5)(rollup@4.26.0)': + dependencies: + c12: 2.0.1(magicast@0.3.5) + compatx: 0.1.8 + consola: 3.3.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.3.0 + scule: 1.3.0 + std-env: 3.8.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unimport: 3.14.5(rollup@4.26.0) + untyped: 1.5.2 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/telemetry@2.6.2(magicast@0.3.5)(rollup@4.26.0)': + dependencies: + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + citty: 0.1.6 + consola: 3.3.3 + destr: 2.0.3 + dotenv: 16.4.7 + git-url-parse: 16.0.0 + is-docker: 3.0.0 + jiti: 2.4.2 + ofetch: 1.4.1 + package-manager-detector: 0.2.8 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.2 + std-env: 3.8.0 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/vite-builder@3.15.0(@types/node@22.8.5)(eslint@9.6.0)(less@4.2.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.26.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(typescript@5.6.1-rc)(vue@3.5.13(typescript@5.6.1-rc))(yaml@2.6.1)': + dependencies: + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + '@rollup/plugin-replace': 6.0.2(rollup@4.26.0) + '@vitejs/plugin-vue': 5.2.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc)) + '@vitejs/plugin-vue-jsx': 4.1.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc)) + autoprefixer: 10.4.20(postcss@8.4.49) + consola: 3.3.3 + cssnano: 7.0.6(postcss@8.4.49) + defu: 6.1.4 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + externality: 1.0.2 + get-port-please: 3.1.2 + h3: 1.13.0 + jiti: 2.4.2 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.3 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.0 + postcss: 8.4.49 + rollup-plugin-visualizer: 5.13.1(rollup@4.26.0) + std-env: 3.8.0 + ufo: 1.5.4 + unenv: 1.10.0 + unplugin: 2.1.0 + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vite-node: 2.1.8(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + vite-plugin-checker: 0.8.0(eslint@9.6.0)(optionator@0.9.4)(typescript@5.6.1-rc)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + vue: 3.5.13(typescript@5.6.1-rc) + vue-bundle-renderer: 2.1.1 + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vls + - vti + - vue-tsc + - yaml + '@one-ini/wasm@0.1.1': {} '@parcel/watcher-android-arm64@2.5.0': @@ -11881,6 +13731,11 @@ snapshots: '@parcel/watcher-linux-x64-musl@2.5.0': optional: true + '@parcel/watcher-wasm@2.5.0': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + '@parcel/watcher-win32-arm64@2.5.0': optional: true @@ -11910,7 +13765,6 @@ snapshots: '@parcel/watcher-win32-arm64': 2.5.0 '@parcel/watcher-win32-ia32': 2.5.0 '@parcel/watcher-win32-x64': 2.5.0 - optional: true '@pkgjs/parseargs@0.11.0': optional: true @@ -12610,11 +14464,91 @@ snapshots: '@types/react': 19.0.1 '@types/react-dom': 19.0.1 - '@rollup/pluginutils@5.1.0(rollup@4.26.0)': + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.17.1': {} + + '@redocly/openapi-core@1.26.1(encoding@0.1.13)(supports-color@9.4.0)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.17.1 + colorette: 1.4.0 + https-proxy-agent: 7.0.5(supports-color@9.4.0) + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + minimatch: 5.1.6 + node-fetch: 2.7.0(encoding@0.1.13) + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - encoding + - supports-color + + '@rollup/plugin-alias@5.1.1(rollup@4.26.0)': + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-commonjs@28.0.2(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.4.2(picomatch@4.0.2) + is-reference: 1.2.1 + magic-string: 0.30.17 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-inject@5.0.5(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + estree-walker: 2.0.2 + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-json@6.1.0(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-node-resolve@15.3.1(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-replace@6.0.2(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.26.0 + + '@rollup/plugin-terser@0.4.4(rollup@4.26.0)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.36.0 + optionalDependencies: + rollup: 4.26.0 + + '@rollup/pluginutils@5.1.4(rollup@4.26.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: rollup: 4.26.0 @@ -12760,10 +14694,10 @@ snapshots: - '@types/node' optional: true - '@schematics/angular@19.0.6(chokidar@4.0.1)': + '@schematics/angular@19.0.6(chokidar@4.0.3)': dependencies: - '@angular-devkit/core': 19.0.6(chokidar@4.0.1) - '@angular-devkit/schematics': 19.0.6(chokidar@4.0.1) + '@angular-devkit/core': 19.0.6(chokidar@4.0.3) + '@angular-devkit/schematics': 19.0.6(chokidar@4.0.3) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -12926,6 +14860,8 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trysound/sax@0.2.0': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -12991,7 +14927,7 @@ snapshots: '@types/cors@2.8.17': dependencies: - '@types/node': 22.8.5 + '@types/node': 20.14.10 '@types/cross-spawn@6.0.6': dependencies: @@ -13074,6 +15010,8 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/parse-path@7.0.3': {} + '@types/prop-types@15.7.14': optional: true @@ -13097,6 +15035,8 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/resolve@1.20.2': {} + '@types/retry@0.12.2': {} '@types/semver@7.5.8': {} @@ -13236,7 +15176,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.0.0(typescript@5.5.3) '@typescript-eslint/utils': 8.0.0(eslint@9.0.0)(typescript@5.5.3) - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: typescript: 5.5.3 @@ -13254,7 +15194,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -13283,7 +15223,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.0.0 '@typescript-eslint/visitor-keys': 8.0.0 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -13346,24 +15286,75 @@ snapshots: '@typescript-eslint/types': 8.0.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': + '@unhead/dom@1.11.14': dependencies: - vite: 5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + '@unhead/schema': 1.11.14 + '@unhead/shared': 1.11.14 - '@vitejs/plugin-react@4.3.1(vite@5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': + '@unhead/schema@1.11.14': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) - transitivePeerDependencies: - - supports-color + hookable: 5.5.3 + zhead: 2.2.4 - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))(vue@3.5.13(typescript@5.5.3))': + '@unhead/shared@1.11.14': dependencies: - '@babel/core': 7.24.7 + '@unhead/schema': 1.11.14 + + '@unhead/ssr@1.11.14': + dependencies: + '@unhead/schema': 1.11.14 + '@unhead/shared': 1.11.14 + + '@unhead/vue@1.11.14(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@unhead/schema': 1.11.14 + '@unhead/shared': 1.11.14 + defu: 6.1.4 + hookable: 5.5.3 + unhead: 1.11.14 + vue: 3.5.13(typescript@5.6.1-rc) + + '@vercel/nft@0.27.10(encoding@0.1.13)(rollup@4.26.0)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0-rc.0(encoding@0.1.13) + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.2 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': + dependencies: + vite: 5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + + '@vitejs/plugin-basic-ssl@1.1.0(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))': + dependencies: + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + + '@vitejs/plugin-react@4.3.1(vite@5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': + dependencies: + '@babel/core': 7.24.7 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))(vue@3.5.13(typescript@5.5.3))': + dependencies: + '@babel/core': 7.24.7 '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.24.7) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) vite: 5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) @@ -13371,6 +15362,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vue: 3.5.13(typescript@5.6.1-rc) + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-vue@5.0.5(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))(vue@3.5.13(typescript@5.5.3))': dependencies: vite: 5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) @@ -13381,6 +15382,11 @@ snapshots: vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) vue: 3.5.12(typescript@5.5.3) + '@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vue: 3.5.13(typescript@5.6.1-rc) + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.10)(jsdom@24.1.0)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -13423,7 +15429,7 @@ snapshots: dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 - magic-string: 0.30.12 + magic-string: 0.30.17 optionalDependencies: vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) @@ -13455,14 +15461,14 @@ snapshots: '@vitest/snapshot@2.0.0': dependencies: - magic-string: 0.30.12 + magic-string: 0.30.17 pathe: 1.1.2 pretty-format: 29.7.0 '@vitest/snapshot@2.1.5': dependencies: '@vitest/pretty-format': 2.1.5 - magic-string: 0.30.12 + magic-string: 0.30.17 pathe: 1.1.2 '@vitest/spy@1.6.0': @@ -13509,8 +15515,23 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.0.8 + '@vue-macros/common@1.15.1(rollup@4.26.0)(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@babel/types': 7.26.3 + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + '@vue/compiler-sfc': 3.5.13 + ast-kit: 1.3.2 + local-pkg: 0.5.1 + magic-string-ast: 0.6.3 + optionalDependencies: + vue: 3.5.13(typescript@5.6.1-rc) + transitivePeerDependencies: + - rollup + '@vue/babel-helper-vue-transform-on@1.2.2': {} + '@vue/babel-helper-vue-transform-on@1.2.5': {} + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': dependencies: '@babel/helper-module-imports': 7.22.15 @@ -13547,6 +15568,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.26.0)': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.26.0) + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.3 + '@vue/babel-helper-vue-transform-on': 1.2.5 + '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.26.0) + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.26.0 + transitivePeerDependencies: + - supports-color + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': dependencies: '@babel/code-frame': 7.26.2 @@ -13565,6 +15603,17 @@ snapshots: '@babel/parser': 7.26.2 '@vue/compiler-sfc': 3.5.13 + '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.26.0)': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/parser': 7.26.2 + '@vue/compiler-sfc': 3.5.13 + transitivePeerDependencies: + - supports-color + '@vue/compiler-core@3.5.12': dependencies: '@babel/parser': 7.26.2 @@ -13599,7 +15648,7 @@ snapshots: '@vue/compiler-ssr': 3.5.12 '@vue/shared': 3.5.12 estree-walker: 2.0.2 - magic-string: 0.30.12 + magic-string: 0.30.17 postcss: 8.4.49 source-map-js: 1.2.1 @@ -13611,7 +15660,7 @@ snapshots: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.12 + magic-string: 0.30.17 postcss: 8.4.49 source-map-js: 1.2.1 @@ -13648,6 +15697,18 @@ snapshots: transitivePeerDependencies: - vite + '@vue/devtools-core@7.6.8(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@vue/devtools-kit': 7.6.8 + '@vue/devtools-shared': 7.6.8 + mitt: 3.0.1 + nanoid: 5.0.9 + pathe: 1.1.2 + vite-hot-client: 0.2.4(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)) + vue: 3.5.13(typescript@5.6.1-rc) + transitivePeerDependencies: + - vite + '@vue/devtools-kit@7.3.5': dependencies: '@vue/devtools-shared': 7.3.7 @@ -13668,10 +15729,24 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 + '@vue/devtools-kit@7.6.8': + dependencies: + '@vue/devtools-shared': 7.6.8 + birpc: 0.2.19 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + '@vue/devtools-shared@7.3.7': dependencies: rfdc: 1.4.1 + '@vue/devtools-shared@7.6.8': + dependencies: + rfdc: 1.4.1 + '@vue/eslint-config-prettier@9.0.0(@types/eslint@9.6.0)(eslint@9.6.0)(prettier@3.3.2)': dependencies: eslint: 9.6.0 @@ -13698,7 +15773,7 @@ snapshots: '@volar/language-core': 2.4.0-alpha.18 '@vue/compiler-dom': 3.5.12 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.12 + '@vue/shared': 3.5.13 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -13750,6 +15825,12 @@ snapshots: '@vue/shared': 3.5.13 vue: 3.5.13(typescript@5.5.3) + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.1-rc))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.6.1-rc) + '@vue/shared@3.4.31': {} '@vue/shared@3.5.12': {} @@ -13878,6 +15959,10 @@ snapshots: abbrev@2.0.0: {} + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + abstract-logging@2.0.1: {} accepts@1.3.8: @@ -13885,6 +15970,10 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + acorn-import-attributes@1.9.5(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 @@ -13899,8 +15988,6 @@ snapshots: acorn@7.4.1: {} - acorn@8.12.1: {} - acorn@8.14.0: {} adjust-sourcemap-loader@4.0.0: @@ -13908,9 +15995,9 @@ snapshots: loader-utils: 2.0.4 regex-parser: 2.3.0 - agent-base@7.1.1: + agent-base@7.1.1(supports-color@9.4.0): dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -14035,6 +16122,26 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + archiver-utils@5.0.2: + dependencies: + glob: 10.4.3 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.6.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.6.0 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 + arg@4.1.3: {} arg@5.0.2: {} @@ -14061,10 +16168,24 @@ snapshots: assertion-error@2.0.1: {} + ast-kit@1.3.2: + dependencies: + '@babel/parser': 7.26.2 + pathe: 1.1.2 + ast-types@0.13.4: dependencies: tslib: 2.8.1 + ast-walker-scope@0.6.2: + dependencies: + '@babel/parser': 7.26.2 + ast-kit: 1.3.2 + + async-sema@3.1.1: {} + + async@3.2.6: {} + asynckit@0.4.0: {} atomic-sleep@1.0.0: {} @@ -14199,8 +16320,14 @@ snapshots: binary-extensions@2.3.0: {} + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + birpc@0.2.17: {} + birpc@0.2.19: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -14276,6 +16403,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 @@ -14289,7 +16421,7 @@ snapshots: bytes@3.1.2: {} - c12@2.0.1: + c12@2.0.1(magicast@0.3.5): dependencies: chokidar: 4.0.1 confbox: 0.1.7 @@ -14303,6 +16435,8 @@ snapshots: perfect-debounce: 1.0.0 pkg-types: 1.2.0 rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 cac@6.7.14: {} @@ -14350,6 +16484,13 @@ snapshots: camelcase@6.3.0: {} + caniuse-api@3.0.0: + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001676 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + caniuse-lite@1.0.30001636: {} caniuse-lite@1.0.30001651: {} @@ -14395,6 +16536,8 @@ snapshots: chalk@5.3.0: {} + change-case@5.4.4: {} + char-regex@1.0.2: {} chardet@0.7.0: {} @@ -14421,6 +16564,10 @@ snapshots: dependencies: readdirp: 4.0.2 + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + chownr@2.0.0: {} chownr@3.0.0: {} @@ -14438,7 +16585,7 @@ snapshots: citty@0.1.6: dependencies: - consola: 3.2.3 + consola: 3.3.3 cjs-module-lexer@1.4.1: {} @@ -14482,6 +16629,12 @@ snapshots: cli-width@4.1.0: {} + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -14502,6 +16655,8 @@ snapshots: clone@1.0.4: {} + cluster-key-slot@1.1.2: {} + code-red@1.0.4: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -14532,6 +16687,10 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colord@2.9.3: {} + + colorette@1.4.0: {} + colorette@2.0.20: {} combined-stream@1.0.8: @@ -14546,8 +16705,24 @@ snapshots: commander@4.1.1: {} + commander@7.2.0: {} + + commander@8.3.0: {} + common-path-prefix@3.0.0: {} + commondir@1.0.1: {} + + compatx@0.1.8: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.6.0 + compressible@2.0.18: dependencies: mime-db: 1.52.0 @@ -14570,6 +16745,8 @@ snapshots: confbox@0.1.7: {} + confbox@0.1.8: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -14588,6 +16765,8 @@ snapshots: consola@3.2.3: {} + consola@3.3.3: {} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -14598,6 +16777,8 @@ snapshots: convert-source-map@2.0.0: {} + cookie-es@1.2.2: {} + cookie-signature@1.0.6: {} cookie@0.6.0: {} @@ -14644,8 +16825,19 @@ snapshots: optionalDependencies: typescript: 5.5.3 + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.6.0 + create-require@1.1.1: {} + croner@9.0.0: {} + + cronstrue@2.52.0: {} + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -14658,6 +16850,14 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 + + css-declaration-sorter@7.2.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + css-loader@7.1.2(webpack@5.96.1(esbuild@0.24.0)): dependencies: icss-utils: 5.1.0(postcss@8.4.41) @@ -14679,6 +16879,11 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 @@ -14688,6 +16893,54 @@ snapshots: cssesc@3.0.0: {} + cssnano-preset-default@7.0.6(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + css-declaration-sorter: 7.2.0(postcss@8.4.49) + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-calc: 10.0.2(postcss@8.4.49) + postcss-colormin: 7.0.2(postcss@8.4.49) + postcss-convert-values: 7.0.4(postcss@8.4.49) + postcss-discard-comments: 7.0.3(postcss@8.4.49) + postcss-discard-duplicates: 7.0.1(postcss@8.4.49) + postcss-discard-empty: 7.0.0(postcss@8.4.49) + postcss-discard-overridden: 7.0.0(postcss@8.4.49) + postcss-merge-longhand: 7.0.4(postcss@8.4.49) + postcss-merge-rules: 7.0.4(postcss@8.4.49) + postcss-minify-font-values: 7.0.0(postcss@8.4.49) + postcss-minify-gradients: 7.0.0(postcss@8.4.49) + postcss-minify-params: 7.0.2(postcss@8.4.49) + postcss-minify-selectors: 7.0.4(postcss@8.4.49) + postcss-normalize-charset: 7.0.0(postcss@8.4.49) + postcss-normalize-display-values: 7.0.0(postcss@8.4.49) + postcss-normalize-positions: 7.0.0(postcss@8.4.49) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) + postcss-normalize-string: 7.0.0(postcss@8.4.49) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) + postcss-normalize-unicode: 7.0.2(postcss@8.4.49) + postcss-normalize-url: 7.0.0(postcss@8.4.49) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) + postcss-ordered-values: 7.0.1(postcss@8.4.49) + postcss-reduce-initial: 7.0.2(postcss@8.4.49) + postcss-reduce-transforms: 7.0.0(postcss@8.4.49) + postcss-svgo: 7.0.1(postcss@8.4.49) + postcss-unique-selectors: 7.0.3(postcss@8.4.49) + + cssnano-utils@5.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + cssnano@7.0.6(postcss@8.4.49): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.4.49) + lilconfig: 3.1.2 + postcss: 8.4.49 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + cssstyle@4.0.1: dependencies: rrweb-cssom: 0.6.0 @@ -14709,6 +16962,8 @@ snapshots: date-format@4.0.14: {} + db0@0.2.1: {} + de-indent@1.0.2: {} debug@2.6.9: @@ -14723,9 +16978,11 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.7: + debug@4.3.7(supports-color@9.4.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 decimal.js@10.4.3: {} @@ -14756,6 +17013,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} defu@6.1.4: {} @@ -14768,6 +17027,8 @@ snapshots: delayed-stream@1.0.0: {} + denque@2.1.0: {} + depd@1.1.2: {} depd@2.0.0: {} @@ -14780,8 +17041,7 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@1.0.3: - optional: true + detect-libc@1.0.3: {} detect-libc@2.0.3: {} @@ -14801,6 +17061,8 @@ snapshots: diff@4.0.2: {} + diff@7.0.0: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -14836,10 +17098,18 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dot-prop@9.0.0: + dependencies: + type-fest: 4.31.0 + dotenv@16.4.5: {} + dotenv@16.4.7: {} + dotenv@8.6.0: {} + duplexer@0.1.2: {} + eastasianwidth@0.2.0: {} editorconfig@1.0.4: @@ -14886,12 +17156,12 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.8.5 + '@types/node': 20.14.10 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 cors: 2.8.5 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) engine.io-parser: 5.2.3 ws: 8.17.1 transitivePeerDependencies: @@ -14932,6 +17202,8 @@ snapshots: error-stack-parser-es@0.1.5: {} + errx@0.1.0: {} + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -15024,6 +17296,34 @@ snapshots: '@esbuild/win32-ia32': 0.24.0 '@esbuild/win32-x64': 0.24.0 + esbuild@0.24.2: + 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 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -15032,6 +17332,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -15219,7 +17521,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.5 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) escape-string-regexp: 4.0.0 eslint-scope: 8.0.1 eslint-visitor-keys: 4.0.0 @@ -15289,6 +17591,8 @@ snapshots: etag@1.8.1: {} + event-target-shim@5.0.1: {} + eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -15307,6 +17611,18 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@7.2.0: + dependencies: + cross-spawn: 7.0.5 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.5 @@ -15369,9 +17685,16 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + externality@1.0.2: + dependencies: + enhanced-resolve: 5.17.1 + mlly: 1.7.3 + pathe: 1.1.2 + ufo: 1.5.4 + extract-zip@2.0.1: dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15409,6 +17732,8 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-npm-meta@0.2.2: {} + fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 @@ -15462,6 +17787,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -15473,6 +17802,8 @@ snapshots: dependencies: flat-cache: 4.0.1 + file-uri-to-path@1.0.0: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -15536,13 +17867,15 @@ snapshots: flatted@3.3.1: {} + flatted@3.3.2: {} + focus-trap@7.5.4: dependencies: tabbable: 6.2.0 follow-redirects@1.15.6(debug@4.3.7): optionalDependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) foreground-child@3.2.1: dependencies: @@ -15616,6 +17949,8 @@ snapshots: get-nonce@1.0.1: {} + get-port-please@3.1.2: {} + get-stream@5.2.0: dependencies: pump: 3.0.0 @@ -15633,7 +17968,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -15641,7 +17976,7 @@ snapshots: giget@1.2.3: dependencies: citty: 0.1.6 - consola: 3.2.3 + consola: 3.3.3 defu: 6.1.4 node-fetch-native: 1.6.4 nypm: 0.3.8 @@ -15649,6 +17984,17 @@ snapshots: pathe: 1.1.2 tar: 6.2.1 + git-config-path@2.0.0: {} + + git-up@8.0.0: + dependencies: + is-ssh: 1.4.0 + parse-url: 9.2.0 + + git-url-parse@16.0.0: + dependencies: + git-up: 8.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -15677,6 +18023,10 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + globals@11.12.0: {} globals@13.24.0: @@ -15719,6 +18069,23 @@ snapshots: graphemer@1.4.0: {} + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + h3@1.13.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.1 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + handle-thing@2.0.1: {} handlebars@4.7.8: @@ -15803,8 +18170,8 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -15823,7 +18190,7 @@ snapshots: http-proxy-middleware@3.0.3: dependencies: '@types/http-proxy': 1.17.15 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) http-proxy: 1.18.1(debug@4.3.7) is-glob: 4.0.3 is-plain-object: 5.0.0 @@ -15839,17 +18206,23 @@ snapshots: transitivePeerDependencies: - debug - https-proxy-agent@7.0.5: + http-shutdown@1.2.2: {} + + https-proxy-agent@7.0.5(supports-color@9.4.0): dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color + httpxy@0.1.5: {} + human-id@1.0.2: {} human-signals@2.1.0: {} + human-signals@4.3.1: {} + human-signals@5.0.0: {} husky@9.0.11: {} @@ -15876,6 +18249,10 @@ snapshots: ignore@5.3.1: {} + ignore@7.0.0: {} + + image-meta@0.2.1: {} + image-size@0.5.5: optional: true @@ -15891,10 +18268,22 @@ snapshots: import-meta-resolve@4.1.0: {} - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - + impound@0.2.0(rollup@4.26.0): + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + mlly: 1.7.3 + pathe: 1.1.2 + unenv: 1.10.0 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + index-to-position@0.1.2: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -15906,12 +18295,28 @@ snapshots: ini@1.3.8: {} + ini@4.1.1: {} + ini@5.0.0: {} invariant@2.2.4: dependencies: loose-envify: 1.4.0 + ioredis@5.4.2: + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.7(supports-color@9.4.0) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -15921,6 +18326,8 @@ snapshots: ipaddr.js@2.2.0: {} + iron-webcrypto@1.2.1: {} + is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} @@ -15933,6 +18340,8 @@ snapshots: dependencies: hasown: 2.0.2 + is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -15953,16 +18362,25 @@ snapshots: dependencies: is-docker: 3.0.0 + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + is-interactive@1.0.0: {} is-lambda@1.0.1: {} + is-module@1.0.0: {} + is-network-error@1.1.0: {} is-number@7.0.0: {} is-path-inside@3.0.3: {} + is-path-inside@4.0.0: {} + is-plain-obj@3.0.0: {} is-plain-object@2.0.4: @@ -15973,10 +18391,18 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.6 + is-reference@3.0.2: dependencies: '@types/estree': 1.0.6 + is-ssh@1.4.0: + dependencies: + protocols: 2.0.1 + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -15993,10 +18419,18 @@ snapshots: is-windows@1.0.2: {} + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + isarray@1.0.0: {} isbinaryfile@4.0.10: {} @@ -16076,6 +18510,8 @@ snapshots: jiti@2.3.1: {} + jiti@2.4.2: {} + jju@1.4.0: optional: true @@ -16091,10 +18527,14 @@ snapshots: js-cookie@3.0.5: {} + js-levenshtein@1.1.6: {} + js-tokens@4.0.0: {} js-tokens@9.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -16114,7 +18554,7 @@ snapshots: form-data: 4.0.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.12 parse5: 7.1.2 @@ -16240,8 +18680,14 @@ snapshots: kind-of@6.0.3: {} + kleur@3.0.3: {} + kleur@4.1.5: {} + klona@2.0.6: {} + + knitwork@1.2.0: {} + known-css-properties@0.30.0: {} kolorist@1.8.0: {} @@ -16251,6 +18697,15 @@ snapshots: picocolors: 1.1.1 shell-quote: 1.8.1 + launch-editor@2.9.1: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.1 + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + less-loader@12.2.0(less@4.2.0)(webpack@5.96.1(esbuild@0.24.0)): dependencies: less: 4.2.0 @@ -16309,6 +18764,27 @@ snapshots: transitivePeerDependencies: - supports-color + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.0 + '@parcel/watcher-wasm': 2.5.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.3.3 + crossws: 0.3.1 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.13.0 + http-shutdown: 1.2.2 + jiti: 2.4.2 + mlly: 1.7.3 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.8.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + listr2@8.2.3: dependencies: cli-truncate: 4.0.0 @@ -16360,6 +18836,11 @@ snapshots: mlly: 1.7.1 pkg-types: 1.2.0 + local-pkg@0.5.1: + dependencies: + mlly: 1.7.3 + pkg-types: 1.3.0 + locate-character@3.0.0: {} locate-path@5.0.0: @@ -16376,12 +18857,20 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.isarguments@3.1.0: {} + + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} + lodash.uniq@4.5.0: {} + lodash@4.17.21: {} log-symbols@4.1.0: @@ -16408,7 +18897,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) flatted: 3.3.1 rfdc: 1.4.1 streamroller: 3.1.5 @@ -16448,6 +18937,10 @@ snapshots: lru-cache@7.18.3: {} + magic-string-ast@0.6.3: + dependencies: + magic-string: 0.30.17 + magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -16456,12 +18949,22 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.4: dependencies: '@babel/parser': 7.25.3 '@babel/types': 7.25.2 source-map-js: 1.2.0 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.3 + source-map-js: 1.2.1 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -16521,6 +19024,8 @@ snapshots: marked@9.1.6: {} + mdn-data@2.0.28: {} + mdn-data@2.0.30: {} media-typer@0.3.0: {} @@ -16562,6 +19067,10 @@ snapshots: mime@2.6.0: {} + mime@3.0.0: {} + + mime@4.0.6: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -16587,6 +19096,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.1: dependencies: brace-expansion: 2.0.1 @@ -16661,10 +19174,17 @@ snapshots: mlly@1.7.1: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.3.0 + ufo: 1.5.4 + + mlly@1.7.3: + dependencies: + acorn: 8.14.0 pathe: 1.1.2 - pkg-types: 1.2.0 - ufo: 1.5.3 + pkg-types: 1.3.0 + ufo: 1.5.4 mri@1.2.0: {} @@ -16712,6 +19232,10 @@ snapshots: nanoid@3.3.7: {} + nanoid@5.0.9: {} + + nanotar@0.1.1: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -16730,11 +19254,107 @@ snapshots: netmask@2.0.2: {} + nitropack@2.10.4(encoding@0.1.13)(typescript@5.6.1-rc): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@netlify/functions': 2.8.2 + '@rollup/plugin-alias': 5.1.1(rollup@4.26.0) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.26.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.26.0) + '@rollup/plugin-json': 6.1.0(rollup@4.26.0) + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.26.0) + '@rollup/plugin-replace': 6.0.2(rollup@4.26.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.26.0) + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + '@types/http-proxy': 1.17.15 + '@vercel/nft': 0.27.10(encoding@0.1.13)(rollup@4.26.0) + archiver: 7.0.1 + c12: 2.0.1(magicast@0.3.5) + chokidar: 3.6.0 + citty: 0.1.6 + compatx: 0.1.8 + confbox: 0.1.8 + consola: 3.3.3 + cookie-es: 1.2.2 + croner: 9.0.0 + crossws: 0.3.1 + db0: 0.2.1 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 9.0.0 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.2 + gzip-size: 7.0.0 + h3: 1.13.0 + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.4.2 + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + listhen: 1.9.0 + magic-string: 0.30.17 + magicast: 0.3.5 + mime: 4.0.6 + mlly: 1.7.3 + node-fetch-native: 1.6.4 + ofetch: 1.4.1 + ohash: 1.1.4 + openapi-typescript: 7.4.4(encoding@0.1.13)(typescript@5.6.1-rc) + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.0 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.26.0 + rollup-plugin-visualizer: 5.13.1(rollup@4.26.0) + scule: 1.3.0 + semver: 7.6.3 + serve-placeholder: 2.0.2 + serve-static: 1.16.2 + std-env: 3.8.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 1.10.0 + unimport: 3.14.5(rollup@4.26.0) + unstorage: 1.14.4(db0@0.2.1)(ioredis@5.4.2) + untyped: 1.5.2 + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - rolldown + - supports-color + - typescript + - uploadthing + node-addon-api@6.1.0: optional: true - node-addon-api@7.1.1: - optional: true + node-addon-api@7.1.1: {} node-domexception@1.0.0: {} @@ -16766,6 +19386,8 @@ snapshots: detect-libc: 2.0.3 optional: true + node-gyp-build@4.8.4: {} + node-gyp@10.1.0: dependencies: env-paths: 2.2.1 @@ -16789,6 +19411,10 @@ snapshots: dependencies: abbrev: 2.0.0 + nopt@8.0.0: + dependencies: + abbrev: 2.0.0 + normalize-package-data@7.0.0: dependencies: hosted-git-info: 8.0.2 @@ -16864,15 +19490,147 @@ snapshots: dependencies: boolbase: 1.0.0 + nuxi@3.17.2: {} + + nuxt@3.15.0(@parcel/watcher@2.5.0)(@types/node@22.8.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.6.0)(ioredis@5.4.2)(less@4.2.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.26.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(typescript@5.6.1-rc)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(yaml@2.6.1): + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.7.0(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.1-rc)) + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + '@nuxt/schema': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + '@nuxt/telemetry': 2.6.2(magicast@0.3.5)(rollup@4.26.0) + '@nuxt/vite-builder': 3.15.0(@types/node@22.8.5)(eslint@9.6.0)(less@4.2.0)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.26.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(typescript@5.6.1-rc)(vue@3.5.13(typescript@5.6.1-rc))(yaml@2.6.1) + '@unhead/dom': 1.11.14 + '@unhead/shared': 1.11.14 + '@unhead/ssr': 1.11.14 + '@unhead/vue': 1.11.14(vue@3.5.13(typescript@5.6.1-rc)) + '@vue/shared': 3.5.13 + acorn: 8.14.0 + c12: 2.0.1(magicast@0.3.5) + chokidar: 4.0.3 + compatx: 0.1.8 + consola: 3.3.3 + cookie-es: 1.2.2 + defu: 6.1.4 + destr: 2.0.3 + devalue: 5.1.1 + errx: 0.1.0 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + globby: 14.0.2 + h3: 1.13.0 + hookable: 5.5.3 + ignore: 7.0.0 + impound: 0.2.0(rollup@4.26.0) + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.3 + nanotar: 0.1.1 + nitropack: 2.10.4(encoding@0.1.13)(typescript@5.6.1-rc) + nuxi: 3.17.2 + nypm: 0.4.1 + ofetch: 1.4.1 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.0 + radix3: 1.1.2 + scule: 1.3.0 + semver: 7.6.3 + std-env: 3.8.0 + strip-literal: 2.1.1 + tinyglobby: 0.2.10 + ufo: 1.5.4 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 1.10.0 + unhead: 1.11.14 + unimport: 3.14.5(rollup@4.26.0) + unplugin: 2.1.0 + unplugin-vue-router: 0.10.9(rollup@4.26.0)(vue-router@4.5.0(vue@3.5.13(typescript@5.6.1-rc)))(vue@3.5.13(typescript@5.6.1-rc)) + unstorage: 1.14.4(db0@0.2.1)(ioredis@5.4.2) + untyped: 1.5.2 + vue: 3.5.13(typescript@5.6.1-rc) + vue-bundle-renderer: 2.1.1 + vue-devtools-stub: 0.1.0 + vue-router: 4.5.0(vue@3.5.13(typescript@5.6.1-rc)) + optionalDependencies: + '@parcel/watcher': 2.5.0 + '@types/node': 22.8.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - bufferutil + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + - yaml + nwsapi@2.2.12: {} nypm@0.3.8: dependencies: citty: 0.1.6 - consola: 3.2.3 + consola: 3.3.3 execa: 8.0.1 pathe: 1.1.2 - ufo: 1.5.3 + ufo: 1.5.4 + + nypm@0.4.1: + dependencies: + citty: 0.1.6 + consola: 3.3.3 + pathe: 1.1.2 + pkg-types: 1.3.0 + tinyexec: 0.3.1 + ufo: 1.5.4 object-assign@4.1.1: {} @@ -16882,6 +19640,12 @@ snapshots: obuf@1.1.2: {} + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + ohash@1.1.4: {} on-exit-leak-free@2.1.2: {} @@ -16919,6 +19683,24 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + openapi-typescript@7.4.4(encoding@0.1.13)(typescript@5.6.1-rc): + dependencies: + '@redocly/openapi-core': 1.26.1(encoding@0.1.13)(supports-color@9.4.0) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.1.0 + supports-color: 9.4.0 + typescript: 5.6.1-rc + yargs-parser: 21.1.1 + transitivePeerDependencies: + - encoding + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -16998,11 +19780,11 @@ snapshots: pac-proxy-agent@7.0.1: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.7(supports-color@9.4.0) get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) pac-resolver: 7.0.1 socks-proxy-agent: 8.0.3 transitivePeerDependencies: @@ -17017,6 +19799,8 @@ snapshots: package-manager-detector@0.2.0: {} + package-manager-detector@0.2.8: {} + pacote@20.0.0: dependencies: '@npmcli/git': 6.0.1 @@ -17044,6 +19828,11 @@ snapshots: dependencies: callsites: 3.1.0 + parse-git-config@3.0.0: + dependencies: + git-config-path: 2.0.0 + ini: 1.3.8 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.26.2 @@ -17051,8 +19840,23 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-json@8.1.0: + dependencies: + '@babel/code-frame': 7.26.2 + index-to-position: 0.1.2 + type-fest: 4.31.0 + parse-node-version@1.0.1: {} + parse-path@7.0.0: + dependencies: + protocols: 2.0.1 + + parse-url@9.2.0: + dependencies: + '@types/parse-path': 7.0.3 + parse-path: 7.0.0 + parse5-html-rewriting-stream@7.0.0: dependencies: entities: 4.5.0 @@ -17177,9 +19981,54 @@ snapshots: pkg-types@1.2.0: dependencies: confbox: 0.1.7 - mlly: 1.7.1 + mlly: 1.7.3 + pathe: 1.1.2 + + pkg-types@1.3.0: + dependencies: + confbox: 0.1.8 + mlly: 1.7.3 pathe: 1.1.2 + pluralize@8.0.0: {} + + postcss-calc@10.0.2(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.3(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-discard-duplicates@7.0.1(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-discard-empty@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-discard-overridden@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-import@15.1.0(postcss@8.4.41): dependencies: postcss: 8.4.41 @@ -17216,14 +20065,14 @@ snapshots: postcss: 8.4.41 ts-node: 10.9.2(@types/node@22.8.5)(typescript@5.5.3) - postcss-load-config@6.0.1(jiti@2.3.1)(postcss@8.4.49)(tsx@4.19.1)(yaml@2.4.5): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.1)(yaml@2.6.1): dependencies: lilconfig: 3.1.2 optionalDependencies: - jiti: 2.3.1 + jiti: 2.4.2 postcss: 8.4.49 tsx: 4.19.1 - yaml: 2.4.5 + yaml: 2.6.1 postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.5.3)(webpack@5.96.1(esbuild@0.24.0)): dependencies: @@ -17238,31 +20087,132 @@ snapshots: postcss-media-query-parser@0.2.3: {} + postcss-merge-longhand@7.0.4(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.4(postcss@8.4.49) + + postcss-merge-rules@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.4.49): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.4(postcss@8.4.49): + dependencies: + cssesc: 3.0.0 + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + postcss-modules-extract-imports@3.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.41 + postcss: 8.4.41 + + postcss-modules-local-by-default@4.0.5(postcss@8.4.41): + dependencies: + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-selector-parser: 6.1.0 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.0 + + postcss-modules-values@4.0.0(postcss@8.4.41): + dependencies: + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + + postcss-nested@6.0.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.0 + + postcss-normalize-charset@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-normalize-display-values@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 - postcss-modules-local-by-default@4.0.5(postcss@8.4.41): + postcss-normalize-whitespace@7.0.0(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.4.41) - postcss: 8.4.41 - postcss-selector-parser: 6.1.0 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.41): + postcss-ordered-values@7.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.41 - postcss-selector-parser: 6.1.0 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 - postcss-modules-values@4.0.0(postcss@8.4.41): + postcss-reduce-initial@7.0.2(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.4.41) - postcss: 8.4.41 + browserslist: 4.24.2 + caniuse-api: 3.0.0 + postcss: 8.4.49 - postcss-nested@6.0.1(postcss@8.4.41): + postcss-reduce-transforms@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.41 - postcss-selector-parser: 6.1.0 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 postcss-safe-parser@6.0.0(postcss@8.4.41): dependencies: @@ -17277,6 +20227,22 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.1(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.3(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + postcss-value-parser@4.2.0: {} postcss@8.4.39: @@ -17322,6 +20288,8 @@ snapshots: prettier@3.3.2: {} + pretty-bytes@6.1.1: {} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -17338,6 +20306,8 @@ snapshots: process-warning@4.0.0: {} + process@0.11.10: {} + progress@2.0.3: {} promise-inflight@1.0.1: {} @@ -17347,8 +20317,15 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + proto-list@1.2.4: {} + protocols@2.0.1: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -17356,10 +20333,10 @@ snapshots: proxy-agent@6.4.0: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.7(supports-color@9.4.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.5(supports-color@9.4.0) lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -17423,6 +20400,8 @@ snapshots: quick-format-unescaped@4.0.4: {} + radix3@1.1.2: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -17524,6 +20503,18 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.6.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -17532,6 +20523,12 @@ snapshots: real-require@0.2.0: {} + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + reflect-metadata@0.2.2: {} regenerate-unicode-properties@10.2.0: @@ -17637,6 +20634,15 @@ snapshots: dependencies: glob: 10.4.3 + rollup-plugin-visualizer@5.13.1(rollup@4.26.0): + dependencies: + open: 8.4.2 + picomatch: 4.0.2 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.26.0 + rollup@4.22.0: dependencies: '@types/estree': 1.0.5 @@ -17762,6 +20768,8 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + scule@1.3.0: {} + search-insights@2.14.0: {} secure-json-parse@3.0.1: {} @@ -17831,6 +20839,10 @@ snapshots: transitivePeerDependencies: - supports-color + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.4 + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -17928,6 +20940,14 @@ snapshots: transitivePeerDependencies: - supports-color + simple-git@3.27.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7(supports-color@9.4.0) + transitivePeerDependencies: + - supports-color + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -17944,6 +20964,8 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sisteransi@1.0.5: {} + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 @@ -17964,9 +20986,11 @@ snapshots: smart-buffer@4.2.0: {} + smob@1.5.0: {} + socket.io-adapter@2.5.5: dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -17976,7 +21000,7 @@ snapshots: socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -17985,7 +21009,7 @@ snapshots: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) engine.io: 6.6.2 socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 @@ -18002,8 +21026,8 @@ snapshots: socks-proxy-agent@8.0.3: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.1(supports-color@9.4.0) + debug: 4.3.7(supports-color@9.4.0) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -18074,7 +21098,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -18085,7 +21109,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -18111,6 +21135,8 @@ snapshots: stackback@0.0.2: {} + standard-as-callback@2.1.0: {} + statuses@1.5.0: {} statuses@2.0.1: {} @@ -18122,7 +21148,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -18187,6 +21213,16 @@ snapshots: dependencies: js-tokens: 9.0.0 + strip-literal@2.1.1: + dependencies: + js-tokens: 9.0.1 + + stylehacks@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -18213,6 +21249,8 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@9.4.0: {} + supports-hyperlinks@3.1.0: dependencies: has-flag: 4.0.0 @@ -18260,7 +21298,7 @@ snapshots: dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.12 + magic-string: 0.30.17 sorcery: 0.11.1 strip-indent: 3.0.0 svelte: 4.2.19 @@ -18291,6 +21329,16 @@ snapshots: svg-tags@1.0.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + symbol-observable@4.0.0: {} symbol-tree@3.2.4: {} @@ -18300,6 +21348,8 @@ snapshots: '@pkgr/core': 0.1.1 tslib: 2.8.1 + system-architecture@0.1.0: {} + tabbable@6.2.0: {} tailwindcss@3.4.4(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.5.3)): @@ -18475,12 +21525,19 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 + tiny-invariant@1.3.3: {} + tinybench@2.8.0: {} tinybench@2.9.0: {} tinyexec@0.3.1: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tinyglobby@0.2.6: dependencies: fdir: 6.3.0(picomatch@4.0.2) @@ -18588,7 +21645,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.3.0(@microsoft/api-extractor@7.47.9(@types/node@20.14.10))(jiti@2.3.1)(postcss@8.4.49)(tsx@4.19.1)(typescript@5.5.3)(yaml@2.4.5): + tsup@8.3.0(@microsoft/api-extractor@7.47.9(@types/node@20.14.10))(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.1)(typescript@5.5.3)(yaml@2.6.1): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 @@ -18599,7 +21656,7 @@ snapshots: execa: 5.1.1 joycon: 3.1.1 picocolors: 1.0.1 - postcss-load-config: 6.0.1(jiti@2.3.1)(postcss@8.4.49)(tsx@4.19.1)(yaml@2.4.5) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.4.49)(tsx@4.19.1)(yaml@2.6.1) resolve-from: 5.0.0 rollup: 4.22.0 source-map: 0.8.0-beta.0 @@ -18632,7 +21689,7 @@ snapshots: tuf-js@3.0.1: dependencies: '@tufjs/models': 3.0.1 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -18647,6 +21704,8 @@ snapshots: type-fest@0.21.3: {} + type-fest@4.31.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -18685,20 +21744,46 @@ snapshots: ua-parser-js@0.7.39: {} - ufo@1.5.3: {} + ufo@1.5.4: {} uglify-js@3.18.0: optional: true + ultrahtml@1.5.3: {} + unbzip2-stream@1.4.3: dependencies: buffer: 5.7.1 through: 2.3.8 + uncrypto@0.1.3: {} + + unctx@2.4.1: + dependencies: + acorn: 8.14.0 + estree-walker: 3.0.3 + magic-string: 0.30.17 + unplugin: 2.1.0 + undici-types@5.26.5: {} undici-types@6.19.8: {} + unenv@1.10.0: + dependencies: + consola: 3.3.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + + unhead@1.11.14: + dependencies: + '@unhead/dom': 1.11.14 + '@unhead/schema': 1.11.14 + '@unhead/shared': 1.11.14 + hookable: 5.5.3 + unicode-canonical-property-names-ecmascript@2.0.0: {} unicode-emoji-modifier-base@1.0.0: {} @@ -18714,6 +21799,25 @@ snapshots: unicorn-magic@0.1.0: {} + unimport@3.14.5(rollup@4.26.0): + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + acorn: 8.14.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.1 + magic-string: 0.30.17 + mlly: 1.7.3 + pathe: 1.1.2 + picomatch: 4.0.2 + pkg-types: 1.3.0 + scule: 1.3.0 + strip-literal: 2.1.1 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -18738,6 +21842,85 @@ snapshots: unpipe@1.0.0: {} + unplugin-vue-router@0.10.9(rollup@4.26.0)(vue-router@4.5.0(vue@3.5.13(typescript@5.6.1-rc)))(vue@3.5.13(typescript@5.6.1-rc)): + dependencies: + '@babel/types': 7.26.3 + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + '@vue-macros/common': 1.15.1(rollup@4.26.0)(vue@3.5.13(typescript@5.6.1-rc)) + ast-walker-scope: 0.6.2 + chokidar: 3.6.0 + fast-glob: 3.3.2 + json5: 2.2.3 + local-pkg: 0.5.1 + magic-string: 0.30.17 + mlly: 1.7.3 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 2.0.0-beta.1 + yaml: 2.6.1 + optionalDependencies: + vue-router: 4.5.0(vue@3.5.13(typescript@5.6.1-rc)) + transitivePeerDependencies: + - rollup + - vue + + unplugin@1.16.0: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + unplugin@2.0.0-beta.1: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + unplugin@2.1.0: + dependencies: + acorn: 8.14.0 + webpack-virtual-modules: 0.6.2 + + unstorage@1.14.4(db0@0.2.1)(ioredis@5.4.2): + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.13.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.4 + ofetch: 1.4.1 + ufo: 1.5.4 + optionalDependencies: + db0: 0.2.1 + ioredis: 5.4.2 + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.3.3 + pathe: 1.1.2 + + untyped@1.5.2: + dependencies: + '@babel/core': 7.26.0 + '@babel/standalone': 7.26.4 + '@babel/types': 7.26.3 + citty: 0.1.6 + defu: 6.1.4 + jiti: 2.4.2 + knitwork: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + unwasm@0.3.9: + dependencies: + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.3 + pathe: 1.1.2 + pkg-types: 1.3.0 + unplugin: 1.16.0 + update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: browserslist: 4.23.1 @@ -18756,6 +21939,10 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uqr@0.1.2: {} + + uri-js-replace@1.0.1: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -18767,6 +21954,8 @@ snapshots: urlpattern-polyfill@10.0.0: {} + urlpattern-polyfill@8.0.2: {} + use-callback-ref@1.3.2(@types/react@19.0.1)(react@19.0.0): dependencies: react: 19.0.0 @@ -18805,6 +21994,10 @@ snapshots: dependencies: vite: 5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + vite-hot-client@0.2.4(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)): + dependencies: + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vite-node@1.6.0(@types/node@20.14.10)(less@4.2.0)(sass@1.80.7)(terser@5.36.0): dependencies: cac: 6.7.14 @@ -18862,7 +22055,25 @@ snapshots: vite-node@2.1.5(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0): dependencies: cac: 6.7.14 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) + es-module-lexer: 1.5.4 + pathe: 1.1.2 + vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.1.8(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7(supports-color@9.4.0) es-module-lexer: 1.5.4 pathe: 1.1.2 vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) @@ -18877,10 +22088,32 @@ snapshots: - supports-color - terser + vite-plugin-checker@0.8.0(eslint@9.6.0)(optionator@0.9.4)(typescript@5.6.1-rc)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)): + dependencies: + '@babel/code-frame': 7.26.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.6.0 + commander: 8.3.0 + fast-glob: 3.3.2 + fs-extra: 11.2.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.3 + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + eslint: 9.6.0 + optionator: 0.9.4 + typescript: 5.6.1-rc + vite-plugin-inspect@0.8.5(rollup@4.26.0)(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.0(rollup@4.26.0) + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) debug: 4.3.5 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 @@ -18893,6 +22126,24 @@ snapshots: - rollup - supports-color + vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.0(magicast@0.3.5)(rollup@4.26.0))(rollup@4.26.0)(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.4(rollup@4.26.0) + debug: 4.3.7(supports-color@9.4.0) + error-stack-parser-es: 0.1.5 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.1 + sirv: 3.0.0 + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + optionalDependencies: + '@nuxt/kit': 3.15.0(magicast@0.3.5)(rollup@4.26.0) + transitivePeerDependencies: + - rollup + - supports-color + vite-plugin-vue-devtools@7.3.1(rollup@4.26.0)(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))(vue@3.5.13(typescript@5.5.3)): dependencies: '@vue/devtools-core': 7.3.7(vite@5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0))(vue@3.5.13(typescript@5.5.3)) @@ -18919,11 +22170,26 @@ snapshots: '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.26.0) '@vue/compiler-dom': 3.5.12 kolorist: 1.8.0 - magic-string: 0.30.12 + magic-string: 0.30.17 vite: 5.4.6(@types/node@20.14.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) transitivePeerDependencies: - supports-color + vite-plugin-vue-inspector@5.3.1(vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1)): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + '@vue/compiler-dom': 3.5.13 + kolorist: 1.8.0 + magic-string: 0.30.17 + vite: 6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + vite@5.4.11(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0): dependencies: esbuild: 0.21.5 @@ -18972,6 +22238,21 @@ snapshots: sass: 1.80.7 terser: 5.36.0 + vite@6.0.6(@types/node@22.8.5)(jiti@2.4.2)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)(tsx@4.19.1)(yaml@2.6.1): + dependencies: + esbuild: 0.24.2 + postcss: 8.4.49 + rollup: 4.26.0 + optionalDependencies: + '@types/node': 22.8.5 + fsevents: 2.3.3 + jiti: 2.4.2 + less: 4.2.0 + sass: 1.80.7 + terser: 5.36.0 + tsx: 4.19.1 + yaml: 2.6.1 + vitefu@0.2.5(vite@5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0)): optionalDependencies: vite: 5.4.6(@types/node@22.8.5)(less@4.2.0)(sass@1.80.7)(terser@5.36.0) @@ -19137,7 +22418,7 @@ snapshots: '@vitest/spy': 2.1.5 '@vitest/utils': 2.1.5 chai: 5.1.2 - debug: 4.3.7 + debug: 4.3.7(supports-color@9.4.0) expect-type: 1.1.0 magic-string: 0.30.12 pathe: 1.1.2 @@ -19165,8 +22446,33 @@ snapshots: void-elements@2.0.1: {} + vscode-jsonrpc@6.0.0: {} + + vscode-languageclient@7.0.0: + dependencies: + minimatch: 3.1.2 + semver: 7.6.3 + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + vscode-uri@3.0.8: {} + vue-bundle-renderer@2.1.1: + dependencies: + ufo: 1.5.4 + vue-component-type-helpers@2.0.29: {} vue-demi@0.14.10(vue@3.5.12(typescript@5.5.3)): @@ -19177,6 +22483,8 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.5.3) + vue-devtools-stub@0.1.0: {} + vue-eslint-parser@9.4.3(eslint@9.6.0): dependencies: debug: 4.3.5 @@ -19195,6 +22503,11 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.13(typescript@5.5.3) + vue-router@4.5.0(vue@3.5.13(typescript@5.6.1-rc)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.6.1-rc) + vue-tsc@2.0.29(typescript@5.5.3): dependencies: '@volar/typescript': 2.4.0-alpha.18 @@ -19222,6 +22535,16 @@ snapshots: optionalDependencies: typescript: 5.5.3 + vue@3.5.13(typescript@5.6.1-rc): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.6.1-rc)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.6.1-rc + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 @@ -19312,6 +22635,8 @@ snapshots: typed-assert: 1.0.9 webpack: 5.96.1(esbuild@0.23.1) + webpack-virtual-modules@0.6.2: {} + webpack@5.96.1(esbuild@0.23.1): dependencies: '@types/eslint-scope': 3.7.7 @@ -19380,6 +22705,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@3.0.1: + dependencies: + isexe: 2.0.0 + which@4.0.0: dependencies: isexe: 3.1.1 @@ -19450,10 +22779,14 @@ snapshots: yallist@5.0.0: {} + yaml-ast-parser@0.0.43: {} + yaml@1.10.2: {} yaml@2.4.5: {} + yaml@2.6.1: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -19491,6 +22824,14 @@ snapshots: yoctocolors-cjs@2.1.2: {} + zhead@2.2.4: {} + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.6.0 + zod@3.23.8: {} zone.js@0.15.0: {}