Compare commits

...

16 Commits

Author SHA1 Message Date
paoloricciuti
48b756a21d fix: lint 2025-10-24 08:23:29 +02:00
paoloricciuti
0054d13b7e feat: analytics 2025-10-24 08:06:33 +02:00
paoloricciuti
1e83c35faa fix: update transport and cancel request only after sending it 2025-10-23 19:10:34 +02:00
Paolo Ricciuti
31edfe1b5f Merge pull request #85 from sveltejs/renovate/major-vitest-monorepo 2025-10-23 10:07:20 +02:00
paoloricciuti
3fabcc0f9b fix: add preferred-frame-size to UI resource 2025-10-23 09:57:51 +02:00
renovate[bot]
deb5f2670c chore(deps): update dependency vitest to v4 2025-10-22 19:36:46 +00:00
paoloricciuti
02c951baa8 fix: add icons to server.json 2025-10-22 21:35:01 +02:00
Paolo Ricciuti
41ceb83838 Merge pull request #79 from sveltejs/changeset-release/main 2025-10-22 17:23:40 +02:00
github-actions[bot]
3c3a26f031 Version Packages 2025-10-22 15:22:27 +00:00
Paolo Ricciuti
6589c7e250 Merge pull request #83 from sveltejs/renovate/all-minor-patch 2025-10-22 17:21:52 +02:00
Paolo Ricciuti
e09b8cd0b9 Merge pull request #84 from sveltejs/mcp-ui-playground 2025-10-22 17:21:33 +02:00
paoloricciuti
7f52a2b1be fix: use embed for mcp-ui embed 2025-10-22 14:56:24 +02:00
paoloricciuti
4eecd75759 chore: changesets 2025-10-22 09:59:39 +02:00
paoloricciuti
9015753f77 feat: return mcp ui resource for playground 2025-10-22 09:47:57 +02:00
renovate[bot]
4d6a9cb333 chore(deps): update pnpm to v10.19.0 2025-10-21 23:14:53 +00:00
Paolo Ricciuti
60aa30397f Merge pull request #80 from UltimateStarCoder/patch-1 2025-10-19 11:11:12 +02:00
23 changed files with 342 additions and 331 deletions

View File

@@ -0,0 +1,5 @@
---
'@sveltejs/mcp': patch
---
fix: add icons to `server.json`

View File

@@ -0,0 +1,5 @@
---
'@sveltejs/mcp': patch
---
fix: add `preferred-frame-size` to UI resource

View File

@@ -1,5 +0,0 @@
---
'@sveltejs/mcp': patch
---
feat: suggest against js variables in css

View File

@@ -18,7 +18,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.18.3
version: 10.19.0
- name: Setup Node.js
uses: actions/setup-node@v6

View File

@@ -18,7 +18,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.18.3
version: 10.19.0
- name: Setup Node.js
uses: actions/setup-node@v6

View File

@@ -18,7 +18,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.18.3
version: 10.19.0
- name: Setup Node.js
uses: actions/setup-node@v6

View File

@@ -59,12 +59,13 @@
"typescript": "^5.0.0",
"vite": "^7.0.4",
"vite-plugin-devtools-json": "^1.0.0",
"vitest": "^3.2.3"
"vitest": "^4.0.0"
},
"dependencies": {
"@sveltejs/mcp-schema": "workspace:^",
"@sveltejs/mcp-server": "workspace:^",
"@tmcp/transport-http": "^0.7.0",
"tmcp": "^1.15.1"
"@tmcp/transport-http": "^0.7.1",
"@vercel/analytics": "^1.5.0",
"tmcp": "^1.15.3"
}
}

View File

@@ -1,8 +1,13 @@
import { dev } from '$app/environment';
import { http_transport } from '$lib/mcp/index.js';
import { db } from '$lib/server/db/index.js';
import { redirect } from '@sveltejs/kit';
import { track } from '@vercel/analytics/server';
export async function handle({ event, resolve }) {
if (event.request.method === 'POST') {
console.log(await event.request.clone().text());
}
if (event.request.method === 'GET') {
const accept = event.request.headers.get('accept');
if (accept) {
@@ -16,6 +21,12 @@ export async function handle({ event, resolve }) {
}
const mcp_response = await http_transport.respond(event.request, {
db,
// only add analytics in production
track: dev
? undefined
: async (session_id, event, slug) => {
await track(event, { session_id, ...(slug ? { slug } : {}) });
},
});
// we are deploying on vercel the SSE connection will timeout after 5 minutes...for
// the moment we are not sending back any notifications (logs, or list changed notifications)
@@ -25,11 +36,14 @@ export async function handle({ event, resolve }) {
// 200 or the MCP client will complain)
if (mcp_response && event.request.method === 'GET') {
try {
await mcp_response.body?.cancel();
} catch {
// ignore
return mcp_response;
} finally {
try {
await mcp_response.body?.cancel();
} catch {
// ignore
}
}
return new Response('', { status: 200 });
}
return mcp_response ?? resolve(event);
}

View File

@@ -1,8 +1,6 @@
import { createClient } from '@libsql/client';
import { drizzle } from 'drizzle-orm/libsql';
import * as schema from './schema.js';
// let's disable it for the moment...i can't figure out a way to make it wotk with eslint
// eslint-disable-next-line import/extensions
import { DATABASE_TOKEN, DATABASE_URL } from '$env/static/private';
if (!DATABASE_URL) throw new Error('DATABASE_URL is not set');
if (!DATABASE_TOKEN) throw new Error('DATABASE_TOKEN is not set');

View File

@@ -48,13 +48,17 @@ export default /** @type {import("eslint").Linter.Config} */ ([
'import/no-unresolved': 'off', // this doesn't work well with typescript path mapping
'import/extensions': [
'error',
'ignorePackages',
{
js: 'always',
mjs: 'always',
cjs: 'always',
ts: 'always',
svelte: 'always',
ignorePackages: true,
pattern: {
js: 'always',
mjs: 'always',
cjs: 'always',
ts: 'always',
svelte: 'always',
svg: 'always',
json: 'always',
},
},
],
},

View File

@@ -3,7 +3,7 @@
"version": "0.0.1",
"description": "The official Svelte MCP server implementation",
"type": "module",
"packageManager": "pnpm@10.18.3",
"packageManager": "pnpm@10.19.0",
"scripts": {
"build": "pnpm -r run build",
"dev": "pnpm --filter @sveltejs/mcp-remote run dev",
@@ -46,7 +46,7 @@
"publint": "^0.3.13",
"typescript": "^5.0.0",
"typescript-eslint": "^8.44.1",
"vitest": "^3.2.3"
"vitest": "^4.0.0"
},
"pnpm": {
"onlyBuiltDependencies": [

View File

@@ -20,6 +20,7 @@
"drizzle-orm": "^0.44.0"
},
"dependencies": {
"@mcp-ui/server": "^5.12.0",
"@sveltejs/mcp-schema": "workspace:^",
"@tmcp/adapter-valibot": "^0.1.4",
"@typescript-eslint/parser": "^8.44.0",
@@ -27,11 +28,11 @@
"eslint-plugin-svelte": "^3.12.3",
"svelte": "^5.39.2",
"svelte-eslint-parser": "^1.3.2",
"tmcp": "^1.15.0",
"tmcp": "^1.15.3",
"ts-blank-space": "^0.6.2",
"typescript-eslint": "^8.44.0",
"valibot": "^1.1.0",
"vitest": "^3.2.4",
"vitest": "^4.0.0",
"zimmerframe": "^1.1.4"
},
"devDependencies": {

View File

@@ -68,6 +68,9 @@ export function setup_svelte_task(server: SvelteMcp) {
icons,
},
async ({ task }) => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'svelte-task');
}
const available_docs = await format_sections_list();
return {

View File

@@ -46,6 +46,13 @@ export async function list_sections(server: SvelteMcp) {
icons,
},
async (uri, { slug }) => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(
server.ctx.sessionId,
'svelte-doc-section',
Array.isArray(slug) ? slug.join(',') : slug,
);
}
const section = sections.find((section) => {
return slug === section.slug;
});

View File

@@ -21,6 +21,9 @@ export function get_documentation(server: SvelteMcp) {
icons,
},
async ({ section }) => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'get-documentation');
}
let sections: string[];
if (Array.isArray(section)) {

View File

@@ -12,6 +12,9 @@ export function list_sections(server: SvelteMcp) {
icons,
},
async () => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'list-sections');
}
const formatted_sections = await format_sections_list();
return {

View File

@@ -1,6 +1,7 @@
import type { SvelteMcp } from '../../index.js';
import * as v from 'valibot';
import { icons } from '../../icons/index.js';
import { createUIResource } from '@mcp-ui/server';
async function compress_and_encode_text(input: string) {
const reader = new Blob([input]).stream().pipeThrough(new CompressionStream('gzip')).getReader();
@@ -58,6 +59,9 @@ export function playground_link(server: SvelteMcp) {
icons,
},
async ({ files, name, tailwind }) => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'playground-link');
}
const playground_base = new URL('https://svelte.dev/playground');
const playground_files: File[] = [];
@@ -75,6 +79,9 @@ export function playground_link(server: SvelteMcp) {
}
if (!has_app_svelte) {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'playground-link-no-app-svelte');
}
return {
isError: true,
content: [
@@ -100,12 +107,26 @@ export function playground_link(server: SvelteMcp) {
url: playground_base.toString(),
};
// use the embed path to have a cleaner UI for mcp-ui
playground_base.pathname = '/playground/embed';
return {
content: [
{
type: 'text',
text: JSON.stringify(content),
},
createUIResource({
uri: 'ui://svelte/playground-link',
content: {
type: 'externalUrl',
iframeUrl: playground_base.toString(),
},
uiMetadata: {
'preferred-frame-size': ['100%', '1200px'],
},
encoding: 'text',
}),
],
structuredContent: content,
};

View File

@@ -46,12 +46,18 @@ export function svelte_autofixer(server: SvelteMcp) {
filename: filename_or_path,
desired_svelte_version: desired_svelte_version_unchecked,
}) => {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'svelte-autofixer');
}
// we validate manually because some clients don't support union in the input schema (looking at you cursor)
const parsed_version = v.safeParse(
v.union([v.literal(4), v.literal(5), v.literal('4'), v.literal('5')]),
desired_svelte_version_unchecked,
);
if (parsed_version.success === false) {
if (server.ctx.sessionId && server.ctx.custom?.track) {
await server.ctx.custom?.track?.(server.ctx.sessionId, 'svelte-autofixer-wrong-version');
}
return {
isError: true,
content: [

View File

@@ -24,7 +24,10 @@ export const server = new McpServer(
instructions:
'This is the official Svelte MCP server. It MUST be used whenever svelte development is involved. It can provide official documentation, code examples and correct your code. After you correct the component call this tool again to confirm all the issues are fixed.',
},
).withContext<{ db: LibSQLDatabase<Schema> }>();
).withContext<{
db: LibSQLDatabase<Schema>;
track?: (sessionId: string, event: string, slug?: string) => Promise<void>;
}>();
export type SvelteMcp = typeof server;

View File

@@ -1,5 +1,13 @@
# @sveltejs/mcp
## 0.1.9
### Patch Changes
- feat: return `mcp-ui` resource from `playground-link` ([#84](https://github.com/sveltejs/mcp/pull/84))
- feat: suggest against js variables in css ([#78](https://github.com/sveltejs/mcp/pull/78))
## 0.1.8
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@sveltejs/mcp",
"version": "0.1.8",
"version": "0.1.9",
"type": "module",
"license": "MIT",
"mcpName": "dev.svelte/mcp",
@@ -37,10 +37,10 @@
"publint": "^0.3.13",
"tsdown": "^0.15.0",
"typescript": "^5.8.3",
"vitest": "^3.1.3"
"vitest": "^4.0.0"
},
"dependencies": {
"eslint": "^9.36.0",
"tmcp": "^1.15.0"
"tmcp": "^1.15.3"
}
}

View File

@@ -8,13 +8,23 @@
"subfolder": "packages/mcp-stdio",
"source": "github"
},
"version": "0.1.8",
"version": "0.1.9",
"websiteUrl": "https://svelte.dev/docs/mcp/overview",
"icons": [
{
"src": "https://mcp.svelte.dev/logo.svg",
"mimeType": "image/svg+xml"
},
{
"src": "https://mcp.svelte.dev/logo.png",
"mimeType": "image/png"
}
],
"packages": [
{
"registryType": "npm",
"identifier": "@sveltejs/mcp",
"version": "0.1.8",
"version": "0.1.9",
"runtimeHint": "npx",
"transport": {
"type": "stdio"

520
pnpm-lock.yaml generated
View File

@@ -57,8 +57,8 @@ importers:
specifier: ^8.44.1
version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)
vitest:
specifier: ^3.2.3
version: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
specifier: ^4.0.0
version: 4.0.1(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
apps/mcp-remote:
dependencies:
@@ -69,11 +69,14 @@ importers:
specifier: workspace:^
version: link:../../packages/mcp-server
'@tmcp/transport-http':
specifier: ^0.7.0
version: 0.7.0(tmcp@1.15.1(typescript@5.9.2))
specifier: ^0.7.1
version: 0.7.1(tmcp@1.15.3(typescript@5.9.2))
'@vercel/analytics':
specifier: ^1.5.0
version: 1.5.0(@sveltejs/kit@2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)))(react@18.3.1)(svelte@5.39.6)
tmcp:
specifier: ^1.15.1
version: 1.15.1(typescript@5.9.2)
specifier: ^1.15.3
version: 1.15.3(typescript@5.9.2)
devDependencies:
'@eslint/compat':
specifier: ^1.3.2
@@ -142,8 +145,8 @@ importers:
specifier: ^1.0.0
version: 1.0.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))
vitest:
specifier: ^3.2.3
version: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
specifier: ^4.0.0
version: 4.0.1(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
packages/mcp-schema:
dependencies:
@@ -153,12 +156,15 @@ importers:
packages/mcp-server:
dependencies:
'@mcp-ui/server':
specifier: ^5.12.0
version: 5.12.0
'@sveltejs/mcp-schema':
specifier: workspace:^
version: link:../mcp-schema
'@tmcp/adapter-valibot':
specifier: ^0.1.4
version: 0.1.4(tmcp@1.15.0(typescript@5.9.2))(valibot@1.1.0(typescript@5.9.2))
version: 0.1.4(tmcp@1.15.3(typescript@5.9.2))(valibot@1.1.0(typescript@5.9.2))
'@typescript-eslint/parser':
specifier: ^8.44.0
version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.2)
@@ -178,8 +184,8 @@ importers:
specifier: ^1.3.2
version: 1.3.3(svelte@5.39.6)
tmcp:
specifier: ^1.15.0
version: 1.15.0(typescript@5.9.2)
specifier: ^1.15.3
version: 1.15.3(typescript@5.9.2)
ts-blank-space:
specifier: ^0.6.2
version: 0.6.2
@@ -190,8 +196,8 @@ importers:
specifier: ^1.1.0
version: 1.1.0(typescript@5.9.2)
vitest:
specifier: ^3.2.4
version: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
specifier: ^4.0.0
version: 4.0.1(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
zimmerframe:
specifier: ^1.1.4
version: 1.1.4
@@ -221,15 +227,15 @@ importers:
specifier: ^9.36.0
version: 9.36.0(jiti@2.6.0)
tmcp:
specifier: ^1.15.0
version: 1.15.0(typescript@5.9.2)
specifier: ^1.15.3
version: 1.15.3(typescript@5.9.2)
devDependencies:
'@sveltejs/mcp-server':
specifier: workspace:^
version: link:../mcp-server
'@tmcp/transport-stdio':
specifier: ^0.3.1
version: 0.3.1(tmcp@1.15.0(typescript@5.9.2))
version: 0.3.1(tmcp@1.15.3(typescript@5.9.2))
'@types/node':
specifier: ^22.15.17
version: 22.18.6
@@ -243,8 +249,8 @@ importers:
specifier: ^5.8.3
version: 5.9.2
vitest:
specifier: ^3.1.3
version: 3.2.4(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
specifier: ^4.0.0
version: 4.0.1(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
packages:
@@ -842,6 +848,9 @@ packages:
engines: {node: '>=18'}
hasBin: true
'@mcp-ui/server@5.12.0':
resolution: {integrity: sha512-ZAAHsvzfrBgA0gkyIOjoKNTBTsD0VSJT4KXKHe+Fx/kBASctG6mrzK5gvxD/LLLliantN2UWLTKtEeI4DH4FRQ==}
'@modelcontextprotocol/inspector-cli@0.17.0':
resolution: {integrity: sha512-T6loUwwjSV1m6THJ0o0zDlh+eLWYOAouMW/ZWrCv+iLwP7ye1KSL/CEOPilZz8a/lrVpmYfP59S/5hZxuKAqig==}
hasBin: true
@@ -881,8 +890,8 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@oxc-project/types@0.94.0':
resolution: {integrity: sha512-+UgQT/4o59cZfH6Cp7G0hwmqEQ0wE+AdIwhikdwnhWI9Dp8CgSY081+Q3O67/wq3VJu8mgUEB93J9EHHn70fOw==}
'@oxc-project/types@0.95.0':
resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==}
'@petamoriken/float16@3.9.2':
resolution: {integrity: sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==}
@@ -1288,91 +1297,91 @@ packages:
'@radix-ui/rect@1.1.1':
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
'@rolldown/binding-android-arm64@1.0.0-beta.43':
resolution: {integrity: sha512-TP8bcPOb1s6UmY5syhXrDn9k0XkYcw+XaoylTN4cJxf0JOVS2j682I3aTcpfT51hOFGr2bRwNKN9RZ19XxeQbA==}
'@rolldown/binding-android-arm64@1.0.0-beta.44':
resolution: {integrity: sha512-g9ejDOehJFhxC1DIXQuZQ9bKv4lRDioOTL42cJjFjqKPl1L7DVb9QQQE1FxokGEIMr6FezLipxwnzOXWe7DNPg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
'@rolldown/binding-darwin-arm64@1.0.0-beta.43':
resolution: {integrity: sha512-kuVWnZsE4vEjMF/10SbSUyzucIW2zmdsqFghYMqy+fsjXnRHg0luTU6qWF8IqJf4Cbpm9NEZRnjIEPpAbdiSNQ==}
'@rolldown/binding-darwin-arm64@1.0.0-beta.44':
resolution: {integrity: sha512-PxAW1PXLPmCzfhfKIS53kwpjLGTUdIfX4Ht+l9mj05C3lYCGaGowcNsYi2rdxWH24vSTmeK+ajDNRmmmrK0M7g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@rolldown/binding-darwin-x64@1.0.0-beta.43':
resolution: {integrity: sha512-u9Ps4sh6lcmJ3vgLtyEg/x4jlhI64U0mM93Ew+tlfFdLDe7yKyA+Fe80cpr2n1mNCeZXrvTSbZluKpXQ0GxLjw==}
'@rolldown/binding-darwin-x64@1.0.0-beta.44':
resolution: {integrity: sha512-/CtQqs1oO9uSb5Ju60rZvsdjE7Pzn8EK2ISAdl2jedjMzeD/4neNyCbwyJOAPzU+GIQTZVyrFZJX+t7HXR1R/g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@rolldown/binding-freebsd-x64@1.0.0-beta.43':
resolution: {integrity: sha512-h9lUtVtXgfbk/tnicMpbFfZ3DJvk5Zn2IvmlC1/e0+nUfwoc/TFqpfrRRqcNBXk/e+xiWMSKv6b0MF8N+Rtvlg==}
'@rolldown/binding-freebsd-x64@1.0.0-beta.44':
resolution: {integrity: sha512-V5Q5W9c4+2GJ4QabmjmVV6alY97zhC/MZBaLkDtHwGy3qwzbM4DYgXUbun/0a8AH5hGhuU27tUIlYz6ZBlvgOA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.43':
resolution: {integrity: sha512-IX2C6bA6wM2rX/RvD75ko+ix9yxPKjKGGq7pOhB8wGI4Z4fqX5B1nDHga/qMDmAdCAR1m9ymzxkmqhm/AFYf7A==}
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.44':
resolution: {integrity: sha512-X6adjkHeFqKsTU0FXdNN9HY4LDozPqIfHcnXovE5RkYLWIjMWuc489mIZ6iyhrMbCqMUla9IOsh5dvXSGT9o9A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.43':
resolution: {integrity: sha512-mcjd57vEj+CEQbZAzUiaxNzNgwwgOpFtZBWcINm8DNscvkXl5b/s622Z1dqGNWSdrZmdjdC6LWMvu8iHM6v9sQ==}
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.44':
resolution: {integrity: sha512-kRRKGZI4DXWa6ANFr3dLA85aSVkwPdgXaRjfanwY84tfc3LncDiIjyWCb042e3ckPzYhHSZ3LmisO+cdOIYL6Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.43':
resolution: {integrity: sha512-Pa8QMwlkrztTo/1mVjZmPIQ44tCSci10TBqxzVBvXVA5CFh5EpiEi99fPSll2dHG2uT4dCOMeC6fIhyDdb0zXA==}
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.44':
resolution: {integrity: sha512-hMtiN9xX1NhxXBa2U3Up4XkVcsVp2h73yYtMDY59z9CDLEZLrik9RVLhBL5QtoX4zZKJ8HZKJtWuGYvtmkCbIQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.43':
resolution: {integrity: sha512-BgynXKMjeaX4AfWLARhOKDetBOOghnSiVRjAHVvhiAaDXgdQN8e65mSmXRiVoVtD3cHXx/cfU8Gw0p0K+qYKVQ==}
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.44':
resolution: {integrity: sha512-rd1LzbpXQuR8MTG43JB9VyXDjG7ogSJbIkBpZEHJ8oMKzL6j47kQT5BpIXrg3b5UVygW9QCI2fpFdMocT5Kudg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-musl@1.0.0-beta.43':
resolution: {integrity: sha512-VIsoPlOB/tDSAw9CySckBYysoIBqLeps1/umNSYUD8pMtalJyzMTneAVI1HrUdf4ceFmQ5vARoLIXSsPwVFxNg==}
'@rolldown/binding-linux-x64-musl@1.0.0-beta.44':
resolution: {integrity: sha512-qI2IiPqmPRW25exXkuQr3TlweCDc05YvvbSDRPCuPsWkwb70dTiSoXn8iFxT4PWqTi71wWHg1Wyta9PlVhX5VA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-openharmony-arm64@1.0.0-beta.43':
resolution: {integrity: sha512-YDXTxVJG67PqTQMKyjVJSddoPbSWJ4yRz/E3xzTLHqNrTDGY0UuhG8EMr8zsYnfH/0cPFJ3wjQd/hJWHuR6nkA==}
'@rolldown/binding-openharmony-arm64@1.0.0-beta.44':
resolution: {integrity: sha512-+vHvEc1pL5iJRFlldLC8mjm6P4Qciyfh2bh5ZI6yxDQKbYhCHRKNURaKz1mFcwxhVL5YMYsLyaqM3qizVif9MQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@rolldown/binding-wasm32-wasi@1.0.0-beta.43':
resolution: {integrity: sha512-3M+2DmorXvDuAIGYQ9Z93Oy1G9ETkejLwdXXb1uRTgKN9pMcu7N+KG2zDrJwqyxeeLIFE22AZGtSJm3PJbNu9Q==}
'@rolldown/binding-wasm32-wasi@1.0.0-beta.44':
resolution: {integrity: sha512-XSgLxRrtFj6RpTeMYmmQDAwHjKseYGKUn5LPiIdW4Cq+f5SBSStL2ToBDxkbdxKPEbCZptnLPQ/nfKcAxrC8Xg==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.43':
resolution: {integrity: sha512-/B1j1pJs33y9ywtslOMxryUPHq8zIGu/OGEc2gyed0slimJ8fX2uR/SaJVhB4+NEgCFIeYDR4CX6jynAkeRuCA==}
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.44':
resolution: {integrity: sha512-cF1LJdDIX02cJrFrX3wwQ6IzFM7I74BYeKFkzdcIA4QZ0+2WA7/NsKIgjvrunupepWb1Y6PFWdRlHSaz5AW1Wg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.43':
resolution: {integrity: sha512-29oG1swCz7hNP+CQYrsM4EtylsKwuYzM8ljqbqC5TsQwmKat7P8ouDpImsqg/GZxFSXcPP9ezQm0Q0wQwGM3JA==}
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.44':
resolution: {integrity: sha512-5uaJonDafhHiMn+iEh7qUp3QQ4Gihv3lEOxKfN8Vwadpy0e+5o28DWI42DpJ9YBYMrVy4JOWJ/3etB/sptpUwA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.43':
resolution: {integrity: sha512-eWBV1Ef3gfGNehxVGCyXs7wLayRIgCmyItuCZwYYXW5bsk4EvR4n2GP5m3ohjnx7wdiY3nLmwQfH2Knb5gbNZw==}
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.44':
resolution: {integrity: sha512-vsqhWAFJkkmgfBN/lkLCWTXF1PuPhMjfnAyru48KvF7mVh2+K7WkKYHezF3Fjz4X/mPScOcIv+g6cf6wnI6eWg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
'@rolldown/pluginutils@1.0.0-beta.43':
resolution: {integrity: sha512-5Uxg7fQUCmfhax7FJke2+8B6cqgeUJUD9o2uXIKXhD+mG0mL6NObmVoi9wXEU1tY89mZKgAYA6fTbftx3q2ZPQ==}
'@rolldown/pluginutils@1.0.0-beta.44':
resolution: {integrity: sha512-g6eW7Zwnr2c5RADIoqziHoVs6b3W5QTQ4+qbpfjbkMJ9x+8Og211VW/oot2dj9dVwaK/UyC6Yo+02gV+wWQVNg==}
'@rollup/pluginutils@5.3.0':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
@@ -1551,10 +1560,10 @@ packages:
'@tmcp/session-manager@0.1.2':
resolution: {integrity: sha512-hNkEeMt7/CdD8JdjPXMlIv5OMPTp5LnBqeo1Tb/AXcm31DpgwlNbf4voJ3CeWxWAZPPZ/MgHZ682TtgGhsvXiw==}
'@tmcp/transport-http@0.7.0':
resolution: {integrity: sha512-JvLvi2ZM3xaBIZyxy6ssGtzlhL/5JvOkjWWymxkLi84vMK44pM5zCQVN1KXAfQqHbbDlYNR/BW39cd/eP3hylA==}
'@tmcp/transport-http@0.7.1':
resolution: {integrity: sha512-Run9uMuARbCwAJQDWYvANXCsRAyJL/hUFfuD5eftU7mjarIjtwWQAXJ4NS7hKPsVf2g2GCF/XNNU+DGpdo3vYQ==}
peerDependencies:
tmcp: ^1.15.1
tmcp: ^1.15.3
'@tmcp/transport-stdio@0.3.1':
resolution: {integrity: sha512-r+eiHa2URw5+lBMRI0t4D84LfcWHam3DsTog/lPZSALIjlYxlFUfAaJ8dgh5gdQnmXiFJfE9hzmN0gIrB6+Lzw==}
@@ -1679,39 +1688,65 @@ packages:
peerDependencies:
valibot: ^1.1.0
'@vercel/analytics@1.5.0':
resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==}
peerDependencies:
'@remix-run/react': ^2
'@sveltejs/kit': ^1 || ^2
next: '>= 13'
react: ^18 || ^19 || ^19.0.0-rc
svelte: '>= 4'
vue: ^3
vue-router: ^4
peerDependenciesMeta:
'@remix-run/react':
optional: true
'@sveltejs/kit':
optional: true
next:
optional: true
react:
optional: true
svelte:
optional: true
vue:
optional: true
vue-router:
optional: true
'@vercel/nft@0.30.1':
resolution: {integrity: sha512-2mgJZv4AYBFkD/nJ4QmiX5Ymxi+AisPLPcS/KPXVqniyQNqKXX+wjieAbDXQP3HcogfEbpHoRMs49Cd4pfkk8g==}
engines: {node: '>=18'}
hasBin: true
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
'@vitest/expect@4.0.1':
resolution: {integrity: sha512-KtvGLN/IWoZfg68JF2q/zbDEo+UJTWnc7suYJ8RF+ZTBeBcBz4NIOJDxO4Q3bEY9GsOYhgy5cOevcVPFh4+V7g==}
'@vitest/mocker@3.2.4':
resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
'@vitest/mocker@4.0.1':
resolution: {integrity: sha512-fwmvg8YvwSAE41Hyhul7dL4UzPhG+k2VaZCcL+aHagLx4qlNQgKYTw7coF4YdjAxSBBt0b408gQFYMX1Qeqweg==}
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
vite: ^6.0.0 || ^7.0.0-0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
'@vitest/pretty-format@3.2.4':
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
'@vitest/pretty-format@4.0.1':
resolution: {integrity: sha512-6nq3JY/zQ91+oX1vd4fajiVNyA/HMhaF9cOw5P9cQi6ML7PRi7ilVaQ77PulF+4kvUKr9bcLm9GoAtwlVFbGzw==}
'@vitest/runner@3.2.4':
resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
'@vitest/runner@4.0.1':
resolution: {integrity: sha512-nxUoWmw7ZX2OiSNwolJeSOOzrrR/o79wRTwP7HhiW/lDFwQHtWMj9snMhrdvccFqanvI8897E81eXjgDbrRvqA==}
'@vitest/snapshot@3.2.4':
resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
'@vitest/snapshot@4.0.1':
resolution: {integrity: sha512-CvfsEWutEIN/Z9ScXYup7YwlPeK9JICrV7FN9p3pVytsyh+aCHAH0PUi//YlTiQ7T8qYxJYpUrAwZL9XqmZ5ZA==}
'@vitest/spy@3.2.4':
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
'@vitest/spy@4.0.1':
resolution: {integrity: sha512-Hj0/TBQ2EN72wDpfKiUf63mRCkE0ZiSGXGeDDvW9T3LBKVVApItd0GyQLDBIe03kWbyK9gOTEbJVVWthcLFzCg==}
'@vitest/utils@3.2.4':
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
'@vitest/utils@4.0.1':
resolution: {integrity: sha512-uRrACgpIz5sxuT87ml7xhh7EdKtW8k0N9oSFVBPl8gHB/JfLObLe9dXO6ZrsNN55FzciGIRqIEILgTQvg1eNHw==}
abbrev@3.0.1:
resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==}
@@ -1816,10 +1851,6 @@ packages:
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
engines: {node: '>= 0.4'}
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
ast-kit@2.1.2:
resolution: {integrity: sha512-cl76xfBQM6pztbrFWRnxbrDm9EOqDr1BF6+qQnnDZG2Co2LjyUktkN9GTJfBAfdae+DbT2nJf2nCGAdDDN7W2g==}
engines: {node: '>=20.18.0'}
@@ -1901,8 +1932,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
chai@5.3.3:
resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
chai@6.2.0:
resolution: {integrity: sha512-aUTnJc/JipRzJrNADXVvpVqi6CO0dn3nx4EVPxijri+fj3LUUDyZQOgVeW54Ob3Y1Xh9Iz8f+CgaCl8v0mn9bA==}
engines: {node: '>=18'}
chalk@4.1.2:
@@ -1912,10 +1943,6 @@ packages:
chardet@2.1.0:
resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
@@ -2044,10 +2071,6 @@ packages:
supports-color:
optional: true
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -2856,9 +2879,6 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
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
@@ -2939,9 +2959,6 @@ packages:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
loupe@3.2.1:
resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==}
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -3189,10 +3206,6 @@ packages:
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
pathval@2.0.1:
resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
engines: {node: '>= 14.16'}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -3418,8 +3431,8 @@ packages:
vue-tsc:
optional: true
rolldown@1.0.0-beta.43:
resolution: {integrity: sha512-6RcqyRx0tY1MlRLnjXPp/849Rl/CPFhzpGGwNPEPjKwqBMqPq/Rbbkxasa8s0x+IkUk46ty4jazb5skZ/Vgdhw==}
rolldown@1.0.0-beta.44:
resolution: {integrity: sha512-gcqgyCi3g93Fhr49PKvymE8PoaGS0sf6ajQrsYaQ8o5de6aUEbD6rJZiJbhOfpcqOnycgsAsUNPYri1h25NgsQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -3625,9 +3638,6 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
strip-literal@3.0.0:
resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
@@ -3685,23 +3695,12 @@ packages:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
tinypool@1.1.1:
resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==}
engines: {node: ^18.0.0 || >=20.0.0}
tinyrainbow@2.0.0:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
tinyrainbow@3.0.3:
resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
engines: {node: '>=14.0.0'}
tinyspy@4.0.4:
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'}
tmcp@1.15.0:
resolution: {integrity: sha512-ell+gBSC7T5P7ogrROYsoohfLSAu0aXmKzWH8eZqkMX4K0iGc+BYJJC4kb60uJcK7PRZWBOktNGuOq1BLNFA6Q==}
tmcp@1.15.1:
resolution: {integrity: sha512-Mn2FZIcN6Vj/pJYda/Zv1t5Iv0vJIQDi+BRpcpBn9gNwID5bNtgMFOj+1LH3rkOJOTz9R78dIXSsJxDN5Vy90g==}
tmcp@1.15.3:
resolution: {integrity: sha512-woRK1qeUei0+3juJ3OS/LBFhKwg26YPGtQqJV8HwXqYP1sOHaOeLC/6jyZuBfmfXqZf1qUg8Dk3I/Wwm+WKZ1Q==}
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
@@ -3887,11 +3886,6 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
vite-node@3.2.4:
resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
vite-plugin-devtools-json@1.0.0:
resolution: {integrity: sha512-MobvwqX76Vqt/O4AbnNMNWoXWGrKUqZbphCUle/J2KXH82yKQiunOeKnz/nqEPosPsoWWPP9FtNuPBSYpiiwkw==}
peerDependencies:
@@ -3945,16 +3939,18 @@ packages:
vite:
optional: true
vitest@3.2.4:
resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
vitest@4.0.1:
resolution: {integrity: sha512-4rwTfUNF0MExMZBiNirkzZpeyUZGOs3JD76N2qHNP9i6w6/bff7MRv2I9yFJKd1ICxzn2igpra+E4t9o2EfQhw==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
'@vitest/browser': 3.2.4
'@vitest/ui': 3.2.4
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
'@vitest/browser-playwright': 4.0.1
'@vitest/browser-preview': 4.0.1
'@vitest/browser-webdriverio': 4.0.1
'@vitest/ui': 4.0.1
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -3964,7 +3960,11 @@ packages:
optional: true
'@types/node':
optional: true
'@vitest/browser':
'@vitest/browser-playwright':
optional: true
'@vitest/browser-preview':
optional: true
'@vitest/browser-webdriverio':
optional: true
'@vitest/ui':
optional: true
@@ -4659,6 +4659,12 @@ snapshots:
- encoding
- supports-color
'@mcp-ui/server@5.12.0':
dependencies:
'@modelcontextprotocol/sdk': 1.18.2
transitivePeerDependencies:
- supports-color
'@modelcontextprotocol/inspector-cli@0.17.0':
dependencies:
'@modelcontextprotocol/sdk': 1.18.2
@@ -4775,7 +4781,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
'@oxc-project/types@0.94.0': {}
'@oxc-project/types@0.95.0': {}
'@petamoriken/float16@3.9.2':
optional: true
@@ -5096,51 +5102,51 @@ snapshots:
'@radix-ui/rect@1.1.1': {}
'@rolldown/binding-android-arm64@1.0.0-beta.43':
'@rolldown/binding-android-arm64@1.0.0-beta.44':
optional: true
'@rolldown/binding-darwin-arm64@1.0.0-beta.43':
'@rolldown/binding-darwin-arm64@1.0.0-beta.44':
optional: true
'@rolldown/binding-darwin-x64@1.0.0-beta.43':
'@rolldown/binding-darwin-x64@1.0.0-beta.44':
optional: true
'@rolldown/binding-freebsd-x64@1.0.0-beta.43':
'@rolldown/binding-freebsd-x64@1.0.0-beta.44':
optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.43':
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.44':
optional: true
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.43':
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.44':
optional: true
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.43':
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.44':
optional: true
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.43':
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.44':
optional: true
'@rolldown/binding-linux-x64-musl@1.0.0-beta.43':
'@rolldown/binding-linux-x64-musl@1.0.0-beta.44':
optional: true
'@rolldown/binding-openharmony-arm64@1.0.0-beta.43':
'@rolldown/binding-openharmony-arm64@1.0.0-beta.44':
optional: true
'@rolldown/binding-wasm32-wasi@1.0.0-beta.43':
'@rolldown/binding-wasm32-wasi@1.0.0-beta.44':
dependencies:
'@napi-rs/wasm-runtime': 1.0.7
optional: true
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.43':
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.44':
optional: true
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.43':
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.44':
optional: true
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.43':
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.44':
optional: true
'@rolldown/pluginutils@1.0.0-beta.43': {}
'@rolldown/pluginutils@1.0.0-beta.44': {}
'@rollup/pluginutils@5.3.0(rollup@4.52.2)':
dependencies:
@@ -5281,24 +5287,24 @@ snapshots:
transitivePeerDependencies:
- encoding
'@tmcp/adapter-valibot@0.1.4(tmcp@1.15.0(typescript@5.9.2))(valibot@1.1.0(typescript@5.9.2))':
'@tmcp/adapter-valibot@0.1.4(tmcp@1.15.3(typescript@5.9.2))(valibot@1.1.0(typescript@5.9.2))':
dependencies:
'@standard-schema/spec': 1.0.0
'@valibot/to-json-schema': 1.3.0(valibot@1.1.0(typescript@5.9.2))
tmcp: 1.15.0(typescript@5.9.2)
tmcp: 1.15.3(typescript@5.9.2)
valibot: 1.1.0(typescript@5.9.2)
'@tmcp/session-manager@0.1.2': {}
'@tmcp/transport-http@0.7.0(tmcp@1.15.1(typescript@5.9.2))':
'@tmcp/transport-http@0.7.1(tmcp@1.15.3(typescript@5.9.2))':
dependencies:
'@tmcp/session-manager': 0.1.2
esm-env: 1.2.2
tmcp: 1.15.1(typescript@5.9.2)
tmcp: 1.15.3(typescript@5.9.2)
'@tmcp/transport-stdio@0.3.1(tmcp@1.15.0(typescript@5.9.2))':
'@tmcp/transport-stdio@0.3.1(tmcp@1.15.3(typescript@5.9.2))':
dependencies:
tmcp: 1.15.0(typescript@5.9.2)
tmcp: 1.15.3(typescript@5.9.2)
'@tsconfig/node10@1.0.11': {}
@@ -5452,6 +5458,12 @@ snapshots:
dependencies:
valibot: 1.1.0(typescript@5.9.2)
'@vercel/analytics@1.5.0(@sveltejs/kit@2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)))(react@18.3.1)(svelte@5.39.6)':
optionalDependencies:
'@sveltejs/kit': 2.43.5(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)))(svelte@5.39.6)(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))
react: 18.3.1
svelte: 5.39.6
'@vercel/nft@0.30.1(rollup@4.52.2)':
dependencies:
'@mapbox/node-pre-gyp': 2.0.0
@@ -5471,55 +5483,52 @@ snapshots:
- rollup
- supports-color
'@vitest/expect@3.2.4':
'@vitest/expect@4.0.1':
dependencies:
'@standard-schema/spec': 1.0.0
'@types/chai': 5.2.2
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.3.3
tinyrainbow: 2.0.0
'@vitest/spy': 4.0.1
'@vitest/utils': 4.0.1
chai: 6.2.0
tinyrainbow: 3.0.3
'@vitest/mocker@3.2.4(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6))':
'@vitest/mocker@4.0.1(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6))':
dependencies:
'@vitest/spy': 3.2.4
'@vitest/spy': 4.0.1
estree-walker: 3.0.3
magic-string: 0.30.19
optionalDependencies:
vite: 7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
'@vitest/mocker@3.2.4(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))':
'@vitest/mocker@4.0.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))':
dependencies:
'@vitest/spy': 3.2.4
'@vitest/spy': 4.0.1
estree-walker: 3.0.3
magic-string: 0.30.19
optionalDependencies:
vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
'@vitest/pretty-format@3.2.4':
'@vitest/pretty-format@4.0.1':
dependencies:
tinyrainbow: 2.0.0
tinyrainbow: 3.0.3
'@vitest/runner@3.2.4':
'@vitest/runner@4.0.1':
dependencies:
'@vitest/utils': 3.2.4
'@vitest/utils': 4.0.1
pathe: 2.0.3
strip-literal: 3.0.0
'@vitest/snapshot@3.2.4':
'@vitest/snapshot@4.0.1':
dependencies:
'@vitest/pretty-format': 3.2.4
'@vitest/pretty-format': 4.0.1
magic-string: 0.30.19
pathe: 2.0.3
'@vitest/spy@3.2.4':
dependencies:
tinyspy: 4.0.4
'@vitest/spy@4.0.1': {}
'@vitest/utils@3.2.4':
'@vitest/utils@4.0.1':
dependencies:
'@vitest/pretty-format': 3.2.4
loupe: 3.2.1
tinyrainbow: 2.0.0
'@vitest/pretty-format': 4.0.1
tinyrainbow: 3.0.3
abbrev@3.0.1: {}
@@ -5631,8 +5640,6 @@ snapshots:
get-intrinsic: 1.3.0
is-array-buffer: 3.0.5
assertion-error@2.0.1: {}
ast-kit@2.1.2:
dependencies:
'@babel/parser': 7.28.4
@@ -5718,13 +5725,7 @@ snapshots:
callsites@3.1.0: {}
chai@5.3.3:
dependencies:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
loupe: 3.2.1
pathval: 2.0.1
chai@6.2.0: {}
chalk@4.1.2:
dependencies:
@@ -5733,8 +5734,6 @@ snapshots:
chardet@2.1.0: {}
check-error@2.1.1: {}
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
@@ -5847,8 +5846,6 @@ snapshots:
dependencies:
ms: 2.1.3
deep-eql@5.0.2: {}
deep-is@0.1.4: {}
deepmerge@4.3.1: {}
@@ -6712,8 +6709,6 @@ snapshots:
js-tokens@4.0.0: {}
js-tokens@9.0.1: {}
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -6794,8 +6789,6 @@ snapshots:
dependencies:
js-tokens: 4.0.0
loupe@3.2.1: {}
lru-cache@10.4.3: {}
lucide-react@0.523.0(react@18.3.1):
@@ -7007,8 +7000,6 @@ snapshots:
pathe@2.0.3: {}
pathval@2.0.1: {}
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -7179,7 +7170,7 @@ snapshots:
reusify@1.1.0: {}
rolldown-plugin-dts@0.16.11(rolldown@1.0.0-beta.43)(typescript@5.9.2):
rolldown-plugin-dts@0.16.11(rolldown@1.0.0-beta.44)(typescript@5.9.2):
dependencies:
'@babel/generator': 7.28.3
'@babel/parser': 7.28.4
@@ -7190,33 +7181,32 @@ snapshots:
dts-resolver: 2.1.2
get-tsconfig: 4.10.1
magic-string: 0.30.19
rolldown: 1.0.0-beta.43
rolldown: 1.0.0-beta.44
optionalDependencies:
typescript: 5.9.2
transitivePeerDependencies:
- oxc-resolver
- supports-color
rolldown@1.0.0-beta.43:
rolldown@1.0.0-beta.44:
dependencies:
'@oxc-project/types': 0.94.0
'@rolldown/pluginutils': 1.0.0-beta.43
ansis: 4.2.0
'@oxc-project/types': 0.95.0
'@rolldown/pluginutils': 1.0.0-beta.44
optionalDependencies:
'@rolldown/binding-android-arm64': 1.0.0-beta.43
'@rolldown/binding-darwin-arm64': 1.0.0-beta.43
'@rolldown/binding-darwin-x64': 1.0.0-beta.43
'@rolldown/binding-freebsd-x64': 1.0.0-beta.43
'@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.43
'@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.43
'@rolldown/binding-linux-arm64-musl': 1.0.0-beta.43
'@rolldown/binding-linux-x64-gnu': 1.0.0-beta.43
'@rolldown/binding-linux-x64-musl': 1.0.0-beta.43
'@rolldown/binding-openharmony-arm64': 1.0.0-beta.43
'@rolldown/binding-wasm32-wasi': 1.0.0-beta.43
'@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.43
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.43
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.43
'@rolldown/binding-android-arm64': 1.0.0-beta.44
'@rolldown/binding-darwin-arm64': 1.0.0-beta.44
'@rolldown/binding-darwin-x64': 1.0.0-beta.44
'@rolldown/binding-freebsd-x64': 1.0.0-beta.44
'@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.44
'@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.44
'@rolldown/binding-linux-arm64-musl': 1.0.0-beta.44
'@rolldown/binding-linux-x64-gnu': 1.0.0-beta.44
'@rolldown/binding-linux-x64-musl': 1.0.0-beta.44
'@rolldown/binding-openharmony-arm64': 1.0.0-beta.44
'@rolldown/binding-wasm32-wasi': 1.0.0-beta.44
'@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.44
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.44
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.44
rollup@4.52.2:
dependencies:
@@ -7495,10 +7485,6 @@ snapshots:
strip-json-comments@3.1.1: {}
strip-literal@3.0.0:
dependencies:
js-tokens: 9.0.1
supports-color@7.2.0:
dependencies:
has-flag: 4.0.0
@@ -7572,23 +7558,9 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
tinypool@1.1.1: {}
tinyrainbow@3.0.3: {}
tinyrainbow@2.0.0: {}
tinyspy@4.0.4: {}
tmcp@1.15.0(typescript@5.9.2):
dependencies:
'@standard-schema/spec': 1.0.0
json-rpc-2.0: 1.7.1
sqids: 0.3.0
uri-template-matcher: 1.1.1
valibot: 1.1.0(typescript@5.9.2)
transitivePeerDependencies:
- typescript
tmcp@1.15.1(typescript@5.9.2):
tmcp@1.15.3(typescript@5.9.2):
dependencies:
'@standard-schema/spec': 1.0.0
json-rpc-2.0: 1.7.1
@@ -7654,8 +7626,8 @@ snapshots:
diff: 8.0.2
empathic: 2.0.0
hookable: 5.5.3
rolldown: 1.0.0-beta.43
rolldown-plugin-dts: 0.16.11(rolldown@1.0.0-beta.43)(typescript@5.9.2)
rolldown: 1.0.0-beta.44
rolldown-plugin-dts: 0.16.11(rolldown@1.0.0-beta.44)(typescript@5.9.2)
semver: 7.7.2
tinyexec: 1.0.1
tinyglobby: 0.2.15
@@ -7788,48 +7760,6 @@ snapshots:
vary@1.1.2: {}
vite-node@3.2.4(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vite-node@3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- yaml
vite-plugin-devtools-json@1.0.0(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)):
dependencies:
uuid: 11.1.0
@@ -7867,18 +7797,17 @@ snapshots:
optionalDependencies:
vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
vitest@3.2.4(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6):
vitest@4.0.1(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
'@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.3.3
'@vitest/expect': 4.0.1
'@vitest/mocker': 4.0.1(vite@7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6))
'@vitest/pretty-format': 4.0.1
'@vitest/runner': 4.0.1
'@vitest/snapshot': 4.0.1
'@vitest/spy': 4.0.1
'@vitest/utils': 4.0.1
debug: 4.4.3
es-module-lexer: 1.7.0
expect-type: 1.2.2
magic-string: 0.30.19
pathe: 2.0.3
@@ -7887,10 +7816,8 @@ snapshots:
tinybench: 2.9.0
tinyexec: 0.3.2
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
tinyrainbow: 3.0.3
vite: 7.1.7(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
vite-node: 3.2.4(@types/node@22.18.6)(jiti@2.6.0)(tsx@4.20.6)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.18.6
@@ -7908,18 +7835,17 @@ snapshots:
- tsx
- yaml
vitest@3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6):
vitest@4.0.1(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6):
dependencies:
'@types/chai': 5.2.2
'@vitest/expect': 3.2.4
'@vitest/mocker': 3.2.4(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
'@vitest/spy': 3.2.4
'@vitest/utils': 3.2.4
chai: 5.3.3
'@vitest/expect': 4.0.1
'@vitest/mocker': 4.0.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6))
'@vitest/pretty-format': 4.0.1
'@vitest/runner': 4.0.1
'@vitest/snapshot': 4.0.1
'@vitest/spy': 4.0.1
'@vitest/utils': 4.0.1
debug: 4.4.3
es-module-lexer: 1.7.0
expect-type: 1.2.2
magic-string: 0.30.19
pathe: 2.0.3
@@ -7928,10 +7854,8 @@ snapshots:
tinybench: 2.9.0
tinyexec: 0.3.2
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
tinyrainbow: 3.0.3
vite: 7.1.7(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.6.0)(tsx@4.20.6)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 24.5.2