diff --git a/packages/websocket/README.md b/packages/websocket/README.md new file mode 100644 index 000000000..7edee0f9d --- /dev/null +++ b/packages/websocket/README.md @@ -0,0 +1,16 @@ +# @hiogawa/vite-plugin-websocket + +## Example + +```js +// vite.config.ts +import { defineConfig } from "vite"; +import websocket from "@hiogawa/vite-plugin-websocket" + +export default defineConfig({ + plugins: [ + websocket({ + }), + ], +}); +``` diff --git a/packages/websocket/package.json b/packages/websocket/package.json new file mode 100644 index 000000000..5aef49602 --- /dev/null +++ b/packages/websocket/package.json @@ -0,0 +1,36 @@ +{ + "name": "@hiogawa/vite-plugin-websocket", + "version": "0.0.0", + "homepage": "https://github.com/hi-ogawa/vite-plugins/tree/main/packages/websocket", + "repository": { + "type": "git", + "url": "git+https://github.com/hi-ogawa/vite-plugins.git", + "directory": "packages/websocket" + }, + "license": "MIT", + "type": "module", + "exports": { + "./package.json": "./package.json", + ".": "./dist/index.js", + "./*": "./dist/*.js" + }, + "files": [ + "dist" + ], + "scripts": { + "dev": "tsdown --sourcemap --watch src", + "build": "tsdown", + "prepack": "tsdown --clean" + }, + "dependencies": { + "@remix-run/node-fetch-server": "^0.8.0", + "ws": "^8.18.3" + }, + "peerDependencies": { + "vite": "*" + }, + "devDependencies": { + "@types/node": "^24.3.0", + "@types/ws": "^8.18.1" + } +} diff --git a/packages/websocket/src/index.ts b/packages/websocket/src/index.ts new file mode 100644 index 000000000..7dc648dbc --- /dev/null +++ b/packages/websocket/src/index.ts @@ -0,0 +1,127 @@ +import { isRunnableDevEnvironment, type HttpServer, type Plugin } from "vite"; +import { WebSocketServer } from "ws"; +import { createRequest } from "@remix-run/node-fetch-server" +import type { IncomingMessage } from "node:http"; +import assert from "node:assert"; + +// polyfill cloudflare workers style websocket handling pattern? +// probably that's what miniflare implements? +// https://github.com/cloudflare/workers-sdk/blob/e15a72cfe774e938dc02690621b17570d46e8dff/packages/vite-plugin-cloudflare/src/websockets.ts#L25-L27 + +// no, the point is that we want to expose "standard node server websocket" style +// experience. for cloudflare style websocket, they should be available through their plugin. +// in that case, we can even assume `WebSocketServer` is the one provided by server entry? + +// import {} from "vite-plugin-websocket/runtime" + +// export const websocketServer = new WebSocketServer(...); +// websocketServer.on("connection", () => ...) + +// if (import.meta.hot) { +// import.meta.hot.dispose(() => websocketServer.close()); +// } + +// probably reverse the concept and it would be something like "vite-plugin-node-server"? +// - vite-plugin-node-server/runtime +// - expose node server (framework) +// - consume node server (framework user code) + +export default function websocketPlugin(websocketPluginOpitons?: { + handler?: { + /** @default "ssr" */ + environmentName?: string; + entryName?: string; + }; +}): Plugin[] { + websocketPluginOpitons; + return [ + { + name: "websocket", + configureServer(server) { + assert(isRunnableDevEnvironment(server.environments.ssr)); + const runner = server.environments.ssr.runner; + if (server.httpServer) { + server.httpServer.on("upgrade", async (req: IncomingMessage, socket, head) => { + // Ignore Vite HMR WebSockets + if (req.headers["sec-websocket-protocol"]?.startsWith("vite")) { + return; + } + + try { + // const { websocketServer } = await runner.import("/websocket"); + } catch (e) { + // TODO + } + + // req.headers; + // const request = createRequest(req, { on: () => {} } as any); + // request.headers; + + // // TODO: request to handler + // // "Upgrade"; + + // nodeWebSocket.handleUpgrade( + // req, + // socket, + // head, + // async (clientWebSocket) => { + // coupleWebSocket; + // clientWebSocket; + // nodeWebSocket.emit("connection", clientWebSocket, req); + // }, + // ); + }); + // server.httpServer.on("") + // handleWebsocket(server.httpServer); + } + }, + configurePreviewServer(server) { + if (server.httpServer) { + } + }, + }, + ]; +} + +function handleWebsocket(httpServer: HttpServer) { + const nodeWebSocket = new WebSocketServer({ noServer: true }); + nodeWebSocket.on("connection", (ws, req) => { + ws; + req; + }); + + httpServer.on("upgrade", (req: IncomingMessage, socket, head) => { + // Ignore Vite HMR WebSockets + if (req.headers["sec-websocket-protocol"]?.startsWith("vite")) { + return; + } + + req.headers; + const request = createRequest(req, { on: () => {} } as any); + request.headers; + + // TODO: request to handler + // "Upgrade"; + + nodeWebSocket.handleUpgrade( + req, + socket, + head, + async (clientWebSocket) => { + coupleWebSocket; + + // clientWebSocket.emit("...") + // clientWebSocket.on("message", (data) => { + // console.log("message", data); + // clientWebSocket.send(data); + // }); + + nodeWebSocket.emit("connection", clientWebSocket, req); + }, + ); + }); +} + +function coupleWebSocket() {} + +function getEntrySource() {} diff --git a/packages/websocket/tsconfig.json b/packages/websocket/tsconfig.json new file mode 100644 index 000000000..591d19e6e --- /dev/null +++ b/packages/websocket/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src", "*.ts"], + "compilerOptions": { + "noPropertyAccessFromIndexSignature": false, + "noImplicitReturns": false, + "checkJs": false, + "declaration": true, + "isolatedDeclarations": true, + "jsx": "react-jsx" + } +} diff --git a/packages/websocket/tsdown.config.ts b/packages/websocket/tsdown.config.ts new file mode 100644 index 000000000..d6fff9945 --- /dev/null +++ b/packages/websocket/tsdown.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + entry: ["src/index.ts"], + format: ["esm"], + dts: { + sourcemap: process.argv.slice(2).includes("--sourcemap"), + }, +}) as any; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0feaebbc0..5ab0efff4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,7 +85,7 @@ importers: dependencies: vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/error-overlay/examples/basic: dependencies: @@ -109,7 +109,7 @@ importers: version: 1.6.1 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/pre-bundle-new-url: dependencies: @@ -118,7 +118,7 @@ importers: version: 0.30.17 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) devDependencies: esbuild: specifier: ^0.24.2 @@ -144,7 +144,7 @@ importers: version: link:../.. vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server: dependencies: @@ -168,10 +168,10 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitefu: specifier: ^1.0.5 - version: 1.0.5(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 1.0.5(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) devDependencies: '@edge-runtime/cookies': specifier: ^6.0.0 @@ -196,7 +196,7 @@ importers: version: 0.6.5 '@vitejs/plugin-react-swc': specifier: ^3.10.0 - version: 3.10.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.10.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) esbuild: specifier: ^0.24.2 version: 0.24.2 @@ -214,10 +214,10 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.3)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) devDependencies: '@hiogawa/react-server': specifier: workspace:* @@ -270,7 +270,7 @@ importers: devDependencies: '@hiogawa/unocss-preset-antd': specifier: 2.2.1-pre.7 - version: 2.2.1-pre.7(unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))) + version: 2.2.1-pre.7(unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))) '@hiogawa/utils': specifier: latest version: 1.7.0 @@ -306,16 +306,16 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) magic-string: specifier: ^0.30.17 version: 0.30.17 unocss: specifier: ^66.2.0 - version: 66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) + version: 66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/cloudflare: dependencies: @@ -343,7 +343,7 @@ importers: version: 19.1.6(@types/react@19.1.8) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/custom-out-dir: dependencies: @@ -368,7 +368,7 @@ importers: version: 19.1.6(@types/react@19.1.8) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/minimal: dependencies: @@ -393,7 +393,7 @@ importers: version: 19.1.6(@types/react@19.1.8) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/next: dependencies: @@ -421,7 +421,7 @@ importers: version: 19.1.6(@types/react@19.1.8) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/postcss-tailwind: dependencies: @@ -449,7 +449,7 @@ importers: version: 3.4.17 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/prerender: dependencies: @@ -477,10 +477,10 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/react-server/examples/starter: dependencies: @@ -508,10 +508,10 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/rsc: dependencies: @@ -569,14 +569,14 @@ importers: version: 19.1.0(react@19.1.0) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) devDependencies: '@hiogawa/vite-rsc': specifier: workspace:* version: link:../rsc '@react-router/dev': specifier: 0.0.0-experimental-23decd7bc - version: 0.0.0-experimental-23decd7bc(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0) + version: 0.0.0-experimental-23decd7bc(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0) react-router: specifier: 0.0.0-experimental-23decd7bc version: 0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -595,7 +595,7 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.1.4 - version: 4.1.4(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.1.4(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -604,7 +604,7 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitejs/test-dep-client-in-server': specifier: file:./test-dep/client-in-server version: file:packages/rsc/examples/basic/test-dep/client-in-server(react@19.1.0) @@ -622,10 +622,10 @@ importers: version: 4.1.4 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-inspect: specifier: ^11.2.0 - version: 11.3.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 11.3.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/rsc/examples/hono: dependencies: @@ -653,16 +653,16 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.8.0 - version: 1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0)) + version: 1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0)) '@react-router/dev': specifier: 0.0.0-experimental-23decd7bc - version: 0.0.0-experimental-23decd7bc(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0) + version: 0.0.0-experimental-23decd7bc(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0) '@tailwindcss/typography': specifier: ^0.5.16 version: 0.5.16(tailwindcss@4.1.4) '@tailwindcss/vite': specifier: ^4.1.4 - version: 4.1.4(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.1.4(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -671,16 +671,16 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) tailwindcss: specifier: ^4.1.4 version: 4.1.4 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-inspect: specifier: ^11.2.0 - version: 11.3.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 11.3.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) wrangler: specifier: ^4.22.0 version: 4.22.0(@cloudflare/workers-types@4.20250702.0) @@ -708,13 +708,13 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-inspect: specifier: latest - version: 11.3.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 11.3.3(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/rsc/examples/starter: dependencies: @@ -736,13 +736,13 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-inspect: specifier: latest - version: 11.3.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 11.3.3(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/rsc/examples/starter-cf-single: dependencies: @@ -758,7 +758,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.8.0 - version: 1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0)) + version: 1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0)) '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -767,10 +767,10 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/server-asset: dependencies: @@ -779,13 +779,13 @@ importers: version: 0.30.17 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/ssr-css: dependencies: vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/transforms: dependencies: @@ -807,7 +807,7 @@ importers: dependencies: vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/vite-null-export: dependencies: @@ -816,7 +816,7 @@ importers: version: 1.7.0 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/vite-plugin-simple-hmr: dependencies: @@ -825,7 +825,7 @@ importers: version: 0.30.17 vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/vite-plugin-simple-hmr/examples/react: devDependencies: @@ -840,7 +840,7 @@ importers: dependencies: vite: specifier: ^7.0.0 - version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages/vite-plugin-ssr-middleware/examples/react: dependencies: @@ -855,16 +855,35 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) react: specifier: ^19.1.0 version: 19.1.0 react-dom: specifier: ^19.1.0 version: 19.1.0(react@19.1.0) + vite: + specifier: ^7.0.0 + version: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + + packages/websocket: + dependencies: + '@remix-run/node-fetch-server': + specifier: ^0.8.0 + version: 0.8.0 vite: specifier: ^7.0.0 version: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + ws: + specifier: ^8.18.3 + version: 8.18.3 + devDependencies: + '@types/node': + specifier: ^24.3.0 + version: 24.3.0 + '@types/ws': + specifier: ^8.18.1 + version: 8.18.1 packages: @@ -2199,6 +2218,9 @@ packages: typescript: optional: true + '@remix-run/node-fetch-server@0.8.0': + resolution: {integrity: sha512-8/sKegb4HrM6IdcQeU0KPhj9VOHm5SUqswJDHuMCS3mwbr/NRx078QDbySmn0xslahvvZoOENd7EnK40kWKxkg==} + '@resvg/resvg-wasm@2.4.0': resolution: {integrity: sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg==} engines: {node: '>= 10'} @@ -2893,6 +2915,9 @@ packages: '@types/node@22.16.0': resolution: {integrity: sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==} + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2916,6 +2941,9 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -5046,6 +5074,10 @@ packages: resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==} engines: {node: '>=18'} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -5143,6 +5175,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.0.0: + resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} + periscopic@4.0.2: resolution: {integrity: sha512-sqpQDUy8vgB7ycLkendSKS6HnVz1Rneoc3Rc+ZBUCe2pbqlVuCC5vF52l0NJ1aiMg/r1qfYF9/myz8CZeI2rjA==} @@ -5980,6 +6015,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} @@ -6046,6 +6084,10 @@ packages: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} + unplugin-utils@0.3.0: + resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} + engines: {node: '>=20.19.0'} + unplugin@1.16.1: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} @@ -6200,6 +6242,16 @@ packages: '@nuxt/kit': optional: true + vite-plugin-inspect@11.3.3: + resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^7.0.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: @@ -6393,6 +6445,22 @@ packages: utf-8-validate: optional: true + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -6718,7 +6786,7 @@ snapshots: optionalDependencies: workerd: 1.20250617.0 - '@cloudflare/vite-plugin@1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))': + '@cloudflare/vite-plugin@1.8.0(rollup@4.46.2)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(workerd@1.20250617.0)(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))': dependencies: '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250617.0) '@mjackson/node-fetch-server': 0.6.1 @@ -6728,7 +6796,7 @@ snapshots: picocolors: 1.1.1 tinyglobby: 0.2.14 unenv: 2.0.0-rc.17 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) wrangler: 4.22.0(@cloudflare/workers-types@4.20250702.0) ws: 8.18.0 transitivePeerDependencies: @@ -7120,9 +7188,9 @@ snapshots: dependencies: react: 19.1.0 - '@hiogawa/unocss-preset-antd@2.2.1-pre.7(unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)))': + '@hiogawa/unocss-preset-antd@2.2.1-pre.7(unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)))': dependencies: - unocss: 66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) + unocss: 66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) '@hiogawa/utils-node@0.0.2': {} @@ -7595,7 +7663,7 @@ snapshots: dependencies: quansync: 0.2.10 - '@react-router/dev@0.0.0-experimental-23decd7bc(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0)': + '@react-router/dev@0.0.0-experimental-23decd7bc(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(react-router@0.0.0-experimental-23decd7bc(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(terser@5.39.0)(tsx@4.19.3)(typescript@5.8.3)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(wrangler@4.22.0(@cloudflare/workers-types@4.20250702.0))(yaml@2.7.0)': dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 @@ -7624,8 +7692,8 @@ snapshots: set-cookie-parser: 2.7.1 tinyglobby: 0.2.14 valibot: 0.41.0(typescript@5.8.3) - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.2.4(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) optionalDependencies: typescript: 5.8.3 wrangler: 4.22.0(@cloudflare/workers-types@4.20250702.0) @@ -7652,6 +7720,8 @@ snapshots: optionalDependencies: typescript: 5.8.3 + '@remix-run/node-fetch-server@0.8.0': {} + '@resvg/resvg-wasm@2.4.0': {} '@rolldown/binding-darwin-arm64@1.0.0-beta.21': @@ -8099,12 +8169,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.4 - '@tailwindcss/vite@4.1.4(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@tailwindcss/vite@4.1.4(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@tailwindcss/node': 4.1.4 '@tailwindcss/oxide': 4.1.4 tailwindcss: 4.1.4 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@tanstack/history@1.99.13': {} @@ -8184,6 +8254,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@24.3.0': + dependencies: + undici-types: 7.10.0 + '@types/normalize-package-data@2.4.4': {} '@types/react-dom@19.1.6(@types/react@19.1.8)': @@ -8202,6 +8276,10 @@ snapshots: '@types/unist@3.0.3': {} + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.16.0 + '@types/yauzl@2.10.3': dependencies: '@types/node': 22.16.0 @@ -8245,13 +8323,13 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unocss/astro@66.2.1(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))': + '@unocss/astro@66.2.1(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))': dependencies: '@unocss/core': 66.2.1 '@unocss/reset': 66.2.1 - '@unocss/vite': 66.2.1(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) + '@unocss/vite': 66.2.1(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) optionalDependencies: - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - vue @@ -8382,7 +8460,7 @@ snapshots: dependencies: '@unocss/core': 66.2.1 - '@unocss/vite@66.2.1(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))': + '@unocss/vite@66.2.1(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3))': dependencies: '@ampproject/remapping': 2.3.0 '@unocss/config': 66.2.1 @@ -8393,7 +8471,7 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.14 unplugin-utils: 0.2.4 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - vue @@ -8422,11 +8500,11 @@ snapshots: satori: 0.12.1 yoga-wasm-web: 0.3.3 - '@vitejs/plugin-react-swc@3.10.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react-swc@3.10.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.9 '@swc/core': 1.11.29 - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@swc/helpers' @@ -8450,6 +8528,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-react@4.6.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.27.7 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.7) + '@rolldown/pluginutils': 1.0.0-beta.19 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + '@vitejs/test-dep-client-in-server2@file:packages/rsc/examples/basic/test-dep/client-in-server2(react@19.1.0)': dependencies: react: 19.1.0 @@ -8680,6 +8770,10 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-import-attributes@1.9.5(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -10752,6 +10846,13 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 + open@10.2.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -10836,6 +10937,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-debounce@2.0.0: {} + periscopic@4.0.2: dependencies: '@types/estree': 1.0.8 @@ -11781,7 +11884,7 @@ snapshots: tsx@4.19.3: dependencies: - esbuild: 0.25.4 + esbuild: 0.25.8 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -11815,6 +11918,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.10.0: {} + undici@5.29.0: dependencies: '@fastify/busboy': 2.1.1 @@ -11902,9 +12007,9 @@ snapshots: dependencies: normalize-path: 2.1.1 - unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)): + unocss@66.2.1(postcss@8.5.6)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)): dependencies: - '@unocss/astro': 66.2.1(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) + '@unocss/astro': 66.2.1(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) '@unocss/cli': 66.2.1 '@unocss/core': 66.2.1 '@unocss/postcss': 66.2.1(postcss@8.5.6) @@ -11922,9 +12027,9 @@ snapshots: '@unocss/transformer-compile-class': 66.2.1 '@unocss/transformer-directives': 66.2.1 '@unocss/transformer-variant-group': 66.2.1 - '@unocss/vite': 66.2.1(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) + '@unocss/vite': 66.2.1(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.16(typescript@5.8.3)) optionalDependencies: - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - postcss - supports-color @@ -11935,6 +12040,11 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.2 + unplugin-utils@0.3.0: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + unplugin@1.16.1: dependencies: acorn: 8.14.1 @@ -12035,10 +12145,20 @@ snapshots: vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-hot-client: 2.1.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + vite-dev-rpc@1.1.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + birpc: 2.4.0 + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-hot-client: 2.1.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + vite-hot-client@2.1.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-hot-client@2.1.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-node@3.2.4(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14 @@ -12060,6 +12180,27 @@ snapshots: - tsx - yaml + vite-node@3.2.4(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.1 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite-plugin-inspect@11.3.0(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: ansis: 4.1.0 @@ -12075,13 +12216,43 @@ snapshots: transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-inspect@11.3.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + ansis: 4.1.0 + debug: 4.4.1 + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 + open: 10.1.2 + perfect-debounce: 1.0.0 + sirv: 3.0.1 + unplugin-utils: 0.2.4 + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-dev-rpc: 1.1.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + transitivePeerDependencies: + - supports-color + + vite-plugin-inspect@11.3.3(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + ansis: 4.1.0 + debug: 4.4.1 + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 + open: 10.2.0 + perfect-debounce: 2.0.0 + sirv: 3.0.1 + unplugin-utils: 0.3.0 + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite-dev-rpc: 1.1.0(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + transitivePeerDependencies: + - supports-color + + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.3) optionalDependencies: - vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript @@ -12103,10 +12274,31 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 + vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + esbuild: 0.25.4 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.6 + rollup: 4.44.1 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 24.3.0 + fsevents: 2.3.3 + jiti: 2.5.1 + lightningcss: 1.29.2 + terser: 5.39.0 + tsx: 4.19.3 + yaml: 2.7.0 + vitefu@1.0.5(vite@7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): optionalDependencies: vite: 7.0.0(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitefu@1.0.5(vite@7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + optionalDependencies: + vite: 7.0.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.16.0)(jiti@2.5.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@types/chai': 5.2.2 @@ -12183,8 +12375,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 @@ -12291,6 +12483,12 @@ snapshots: ws@8.18.0: {} + ws@8.18.3: {} + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 + y18n@5.0.8: {} yallist@3.1.1: {}