From 6e9101d9b36101e442d2fb7f959bc156274a34b7 Mon Sep 17 00:00:00 2001 From: arlo Date: Thu, 6 Aug 2026 11:25:05 +0800 Subject: [PATCH 1/2] fix(core): allocate standalone WebSocket ports atomically --- packages/core/src/node/ws.ts | 51 ++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/packages/core/src/node/ws.ts b/packages/core/src/node/ws.ts index da5ffaf4..b56962d4 100644 --- a/packages/core/src/node/ws.ts +++ b/packages/core/src/node/ws.ts @@ -5,6 +5,7 @@ import type { RpcFunctionsHost } from 'devframe/node' import type { WsRpcTransportOptions } from 'devframe/rpc/transports/ws-server' import type { DevframeNodeRpcSessionMeta } from 'devframe/types' import type { Server as NodeHttpServer } from 'node:http' +import type { AddressInfo } from 'node:net' import type { DevToolsConfig } from './config' import { AsyncLocalStorage } from 'node:async_hooks' import process from 'node:process' @@ -14,7 +15,6 @@ import { getInternalContext } from 'devframe/node/hub-internals' import { createRpcServer } from 'devframe/rpc/server' import { attachWsRpcTransport } from 'devframe/rpc/transports/ws-server' import { colors as c } from 'devframe/utils/colors' -import { getPort } from 'get-port-please' import { createDebug } from 'obug' import { getAuthHandler } from './auth-handler' import { MARK_INFO } from './constants' @@ -71,7 +71,6 @@ export async function createWsServer(options: CreateWsServerOptions) { // is a node http/https server that crossws can hook `upgrade` on. const viteHttpServer = (context.viteServer?.httpServer ?? undefined) as NodeHttpServer | undefined const routeBound = !!viteHttpServer - const port = routeBound ? undefined : (options.websocket.port ?? await getPort({ port: 7812, host, random: true })!) const wsClients = new Set() @@ -80,24 +79,6 @@ export async function createWsServer(options: CreateWsServerOptions) { diagnostics.DTK0008() } - contextInternal.wsEndpoint = { - // Remote docks dial this absolute URL cross-origin. In route-bound mode it - // points at the Vite origin + the WS path; otherwise at the dedicated port. - url: routeBound - ? `${context.host.resolveOrigin().replace(/^http/, 'ws')}${DEVTOOLS_WS_PATH}` - : buildWsUrl({ host, port: port!, https: !!https }), - } - - // `docks.register()` runs before the WS port is allocated, so any remote - // docks registered during plugin setup were projected without a connection - // descriptor. Now that the endpoint is resolved, re-emit their update events - // so the shared-state consumers pick up the enriched URLs. - for (const view of context.docks.views.values()) { - if (view.type === 'iframe' && view.remote) { - context.docks.events.emit('dock:entry:updated', view) - } - } - const asyncStorage = new AsyncLocalStorage() const rpcGroup = createRpcServer( @@ -145,7 +126,7 @@ export async function createWsServer(options: CreateWsServerOptions) { // or open a dedicated WS server when running standalone. const binding: WsRpcTransportOptions = routeBound ? { server: viteHttpServer, path: DEVTOOLS_WS_PATH, destroyUnmatched: false } - : { port: port!, host, https } + : { port: options.websocket.port, host, https } // Vite's published types bundle a frozen snapshot of `DevToolsConfig` (to type // `ResolvedConfig.devtools` without depending on this package at runtime), so a field just @@ -154,7 +135,7 @@ export async function createWsServer(options: CreateWsServerOptions) { // narrow cast rather than waiting on that. const allowedOrigins = (context.viteConfig.devtools?.config as DevToolsConfig | undefined)?.allowedOrigins - attachWsRpcTransport(rpcGroup, { + const transport = attachWsRpcTransport(rpcGroup, { ...binding, allowedOrigins, definitions: rpcHost.definitions, @@ -199,6 +180,32 @@ export async function createWsServer(options: CreateWsServerOptions) { rpcHost._rpcGroup = rpcGroup rpcHost._asyncStorage = asyncStorage + await transport.ready + + // Standalone transports bind first, then report the port selected atomically + // by the operating system. An explicit port still passes through unchanged. + const port = routeBound + ? undefined + : (transport.address() as AddressInfo).port + + contextInternal.wsEndpoint = { + // Remote docks dial this absolute URL cross-origin. In route-bound mode it + // points at the Vite origin + the WS path; otherwise at the dedicated port. + url: routeBound + ? `${context.host.resolveOrigin().replace(/^http/, 'ws')}${DEVTOOLS_WS_PATH}` + : buildWsUrl({ host, port: port!, https: !!https }), + } + + // `docks.register()` runs before the WS port is allocated, so any remote + // docks registered during plugin setup were projected without a connection + // descriptor. Now that the endpoint is resolved, re-emit their update events + // so the shared-state consumers pick up the enriched URLs. + for (const view of context.docks.views.values()) { + if (view.type === 'iframe' && view.remote) { + context.docks.events.emit('dock:entry:updated', view) + } + } + const getConnectionMeta = async (): Promise => { const jsonSerializableMethods: string[] = [] for (const def of rpcHost.definitions.values()) { From 932e70b7c1dd0f622d848627dcf48a5ac6312714 Mon Sep 17 00:00:00 2001 From: arlo Date: Thu, 6 Aug 2026 11:57:35 +0800 Subject: [PATCH 2/2] chore: update --- packages/core/src/node/ws.ts | 12 +- pnpm-lock.yaml | 337 ++++++++++++++++++++++++++--------- pnpm-workspace.yaml | 2 +- 3 files changed, 258 insertions(+), 93 deletions(-) diff --git a/packages/core/src/node/ws.ts b/packages/core/src/node/ws.ts index b56962d4..e8916321 100644 --- a/packages/core/src/node/ws.ts +++ b/packages/core/src/node/ws.ts @@ -126,7 +126,7 @@ export async function createWsServer(options: CreateWsServerOptions) { // or open a dedicated WS server when running standalone. const binding: WsRpcTransportOptions = routeBound ? { server: viteHttpServer, path: DEVTOOLS_WS_PATH, destroyUnmatched: false } - : { port: options.websocket.port, host, https } + : { port: options.websocket.port ?? 0, host, https } // Vite's published types bundle a frozen snapshot of `DevToolsConfig` (to type // `ResolvedConfig.devtools` without depending on this package at runtime), so a field just @@ -180,13 +180,13 @@ export async function createWsServer(options: CreateWsServerOptions) { rpcHost._rpcGroup = rpcGroup rpcHost._asyncStorage = asyncStorage - await transport.ready - // Standalone transports bind first, then report the port selected atomically // by the operating system. An explicit port still passes through unchanged. - const port = routeBound - ? undefined - : (transport.address() as AddressInfo).port + let port: number | undefined + if (!routeBound) { + await transport.ready + port = (transport.address() as AddressInfo).port + } contextInternal.wsEndpoint = { // Remote docks dial this absolute URL cross-origin. In route-bound mode it diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59ad66cb..f4c81aea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,35 +44,35 @@ catalogs: version: 0.3.1 deps: '@devframes/hub': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/json-render': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-a11y': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-code-server': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-data-inspector': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-git': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-inspect': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-messages': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-og': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@devframes/plugin-terminals': - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 '@oxlint-config-inspector/core': specifier: ^1.1.1 version: 1.1.1 @@ -83,8 +83,8 @@ catalogs: specifier: ^4.0.0 version: 4.0.0 devframe: - specifier: ^0.8.0 - version: 0.8.0 + specifier: ^0.8.2 + version: 0.8.2 diff: specifier: ^9.0.0 version: 9.0.0 @@ -679,7 +679,7 @@ importers: version: 5.0.5(change-case@5.4.4)(focus-trap@8.2.2)(fuse.js@7.5.0)(idb-keyval@6.3.0)(vite@8.2.0(@types/node@25.0.3)(@vitejs/devtools@packages+core)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0))(vitepress@2.0.0-alpha.19(@types/node@25.0.3)(@vitejs/devtools@packages+core)(change-case@5.4.4)(esbuild@0.28.1)(fuse.js@7.5.0)(idb-keyval@6.3.0)(jiti@2.7.0)(postcss@8.5.24)(terser@5.44.1)(tsx@4.23.5)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) mermaid: specifier: catalog:docs version: 11.16.0 @@ -823,16 +823,16 @@ importers: dependencies: '@devframes/hub': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)) '@devframes/plugin-inspect': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(valibot@1.4.2(typescript@6.0.3))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(valibot@1.4.2(typescript@6.0.3))(vite@8.2.0) '@devframes/plugin-messages': specifier: catalog:deps - version: 0.8.0(@devframes/hub@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@devframes/plugin-terminals': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@vitejs/devtools-kit': specifier: workspace:* version: link:../kit @@ -847,7 +847,7 @@ importers: version: 7.0.0 devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) h3: specifier: catalog:deps version: 2.0.1-rc.22(crossws@0.4.10(srvx@0.12.4)) @@ -929,13 +929,13 @@ importers: dependencies: '@devframes/hub': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)) '@devframes/json-render': specifier: catalog:deps - version: 0.8.0(@devframes/hub@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)) + version: 0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)) devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) local-pkg: specifier: catalog:deps version: 1.2.1 @@ -975,7 +975,7 @@ importers: version: 7.0.0 devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) local-pkg: specifier: catalog:deps version: 1.2.1 @@ -1009,7 +1009,7 @@ importers: version: 14.4.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/nuxt': specifier: catalog:build - version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) + version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) floating-vue: specifier: catalog:frontend version: 5.2.2(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))))(vue@3.5.40(typescript@6.0.3)) @@ -1018,7 +1018,7 @@ importers: version: 0.4.2(typescript@6.0.3) nuxt: specifier: ^4.5.1 - version: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + version: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) oxfmt: specifier: catalog:devtools version: 0.62.0 @@ -1100,7 +1100,7 @@ importers: version: 14.4.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/nuxt': specifier: catalog:build - version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) + version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) '@vueuse/router': specifier: catalog:frontend version: 14.4.0(vue-router@5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(vue@3.5.40(typescript@6.0.3))(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) @@ -1115,7 +1115,7 @@ importers: version: 3.1.2 devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) diff-match-patch-es: specifier: catalog:frontend version: 2.0.0 @@ -1136,7 +1136,7 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.1 - version: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + version: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) splitpanes: specifier: catalog:frontend version: 4.1.2(vue@3.5.40(typescript@6.0.3)) @@ -1242,7 +1242,7 @@ importers: version: 14.4.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/nuxt': specifier: catalog:build - version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) + version: 14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3)) comlink: specifier: catalog:frontend version: 4.4.2 @@ -1251,7 +1251,7 @@ importers: version: 3.1.2 devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) diff-match-patch-es: specifier: catalog:frontend version: 2.0.0 @@ -1269,7 +1269,7 @@ importers: version: 1.0.0 nuxt: specifier: ^4.5.1 - version: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + version: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) splitpanes: specifier: catalog:frontend version: 4.1.2(vue@3.5.40(typescript@6.0.3)) @@ -1328,19 +1328,19 @@ importers: dependencies: '@devframes/plugin-a11y': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@devframes/plugin-code-server': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@devframes/plugin-data-inspector': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@devframes/plugin-git': specifier: catalog:deps - version: 0.8.0(srvx@0.12.4) + version: 0.8.2(srvx@0.12.4) '@devframes/plugin-og': specifier: catalog:deps - version: 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + version: 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) storybook: devDependencies: @@ -1382,7 +1382,7 @@ importers: version: 6.0.8(vite@8.2.0(@types/node@25.0.3)(@vitejs/devtools@packages+core)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) devframe: specifier: catalog:deps - version: 0.8.0(cac@7.0.0)(srvx@0.12.4) + version: 0.8.2(cac@7.0.0)(srvx@0.12.4) storybook: specifier: catalog:storybook version: 10.5.6(@types/react@19.2.18)(prettier@2.8.8)(react@19.2.8) @@ -1685,6 +1685,11 @@ packages: peerDependencies: devframe: 0.8.0 + '@devframes/hub@0.8.2': + resolution: {integrity: sha512-3SE+aUy+u1LeMClVK0S9FDmfA3j+kvzgyiIEz7gA+bek0chMuVB0A05ZBdLCZ6E/Tq/CKD7svI7L7ntgStCVew==} + peerDependencies: + devframe: 0.8.2 + '@devframes/json-render@0.7.15': resolution: {integrity: sha512-IB1EsAHKK313yuslrEyAl7z6347YeV+eT5EtNQwjLcoYh1sD6er/eqdj4Aeicovpg49U7tmlFZHicDxVl1W89A==} peerDependencies: @@ -1703,11 +1708,20 @@ packages: '@devframes/hub': optional: true - '@devframes/plugin-a11y@0.8.0': - resolution: {integrity: sha512-DzdRIIPqBFltefXMcMGkJ4ocERSkuvDqQCwqdDnnW38JqGRCfQhadoJNwpGC/V8H16PrHH2J3h2hTxIQxeyKpQ==} + '@devframes/json-render@0.8.2': + resolution: {integrity: sha512-LpIMMXDZGHsIlrNDWo1PbLenZcYRlxZ4lZ/vR/5j8bEh9FsSSY5Sd6RVPL93lyl4jz+2Sc+S2j4BKKzk9Zi8Fg==} + peerDependencies: + '@devframes/hub': 0.8.2 + devframe: 0.8.2 + peerDependenciesMeta: + '@devframes/hub': + optional: true + + '@devframes/plugin-a11y@0.8.2': + resolution: {integrity: sha512-YdXoKrHaFTSXmXGRCEeZWYIVLfmRcwXm8x3lSgO/vCwt9jyygY+AeIDc69EWY4VMXOLoSdqBqNTeu5hrX6BpsA==} hasBin: true peerDependencies: - devframe: 0.8.0 + devframe: 0.8.2 vite: ^8.2.0 peerDependenciesMeta: vite: @@ -1723,6 +1737,16 @@ packages: vite: optional: true + '@devframes/plugin-code-server@0.8.2': + resolution: {integrity: sha512-+eJfbuycLy+cR+k3IMYonPNKHVffFl/39KoUKUui8pJXpwwj+wgpq9ILqb6IPiVgyRW0vs9uIQaSlfxtsSRKqQ==} + hasBin: true + peerDependencies: + devframe: 0.8.2 + vite: ^8.2.0 + peerDependenciesMeta: + vite: + optional: true + '@devframes/plugin-data-inspector@0.8.0': resolution: {integrity: sha512-7lxiR9Ylnb3f6h5BF/X7XSrRVf2FwRFMxbxLQGFHGHYYhQCJS9TNLgMTOTEMhszWuawVD4qwEdv7CQK2HuJtOQ==} hasBin: true @@ -1733,8 +1757,18 @@ packages: vite: optional: true - '@devframes/plugin-git@0.8.0': - resolution: {integrity: sha512-lUmtJuOq9cJT2v9CKCAqdkCXJqL78OszdDoNAdO5bdeITbP0VCgt+ARzo/hztb53DDdhntWuN527g3O7NgrHlA==} + '@devframes/plugin-data-inspector@0.8.2': + resolution: {integrity: sha512-d/35ItQqXkJtEP2yuc0iRAHYj/SQi30TrtnfTSKzAIpp0/s8Q9KXpag2uZXhIwhfpU3HEQBFqMwd6kFqnJuYGw==} + hasBin: true + peerDependencies: + devframe: 0.8.2 + vite: ^8.2.0 + peerDependenciesMeta: + vite: + optional: true + + '@devframes/plugin-git@0.8.2': + resolution: {integrity: sha512-kz10Xk1rMrPMhAn3qPUCr9OUqMXZUW2+HzfqO+3+s+6MfO1thbEsTtQoKW6vqdu0akeEud0kgufFGedurMc/Qw==} hasBin: true '@devframes/plugin-inspect@0.8.0': @@ -1747,6 +1781,16 @@ packages: vite: optional: true + '@devframes/plugin-inspect@0.8.2': + resolution: {integrity: sha512-wS9Hd/qwFnZkUZNxQhOarsNf616yupkNU42Yr4Kd1Ee8CNj7GdiktlfAmJdJR22b8HMV4G3gTcRQ8EzeSTDFNQ==} + hasBin: true + peerDependencies: + devframe: 0.8.2 + vite: ^8.2.0 + peerDependenciesMeta: + vite: + optional: true + '@devframes/plugin-messages@0.8.0': resolution: {integrity: sha512-Z99f64fs+K5XsvtDCqrPRwftYZHe0W2KifED/BvmZQ62AnKnP2Yx+YCBddS96BB+3JWtUhPHlwNdNSAQAnO+Nw==} hasBin: true @@ -1758,11 +1802,22 @@ packages: vite: optional: true - '@devframes/plugin-og@0.8.0': - resolution: {integrity: sha512-NLajEhOlpHZesiWvetFaFXXguhZgtGxjWujJj3feD0vibpndN+LdhTocf6DroSIpJ1HkP9tf5TPtXjJD7O4JhQ==} + '@devframes/plugin-messages@0.8.2': + resolution: {integrity: sha512-dhOZdENQBd1RWa+SNpn1vEijRaPzzE28YLj9owA2H0Sd5hQXIVQJkVLyTrSGnXtb7KLkNoMAvThD5cItABasDg==} hasBin: true peerDependencies: - devframe: 0.8.0 + '@devframes/hub': 0.8.2 + devframe: 0.8.2 + vite: ^8.2.0 + peerDependenciesMeta: + vite: + optional: true + + '@devframes/plugin-og@0.8.2': + resolution: {integrity: sha512-R3A3/0V/N87rP4BLzXcVqbMBnurNgWD3cEErIXy9lZPrM6pzffVOj7MLrWrp3Zvs/zXPFvw0U1xwwK0lgZxiGQ==} + hasBin: true + peerDependencies: + devframe: 0.8.2 vite: ^8.2.0 peerDependenciesMeta: vite: @@ -1778,6 +1833,16 @@ packages: vite: optional: true + '@devframes/plugin-terminals@0.8.2': + resolution: {integrity: sha512-Y2kVxnlmTThKoT3Ew3eGlItMEOFWzoK4XUb9oXmRu8rqFDd+yDYW2ZNy/kDwmClTblDFXSn6Q7Enjxo31f/2BA==} + hasBin: true + peerDependencies: + devframe: 0.8.2 + vite: ^8.2.0 + peerDependenciesMeta: + vite: + optional: true + '@discoveryjs/natural-compare@1.1.0': resolution: {integrity: sha512-yuctPJs5lRXoI8LkpVZGAV6n+DKOuEsfpfcIDQ8ZjWHwazqk1QjBc4jMlof0UlZHyUqv4dwsOTooMiAmtzvwXA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -6267,6 +6332,21 @@ packages: cac: optional: true + devframe@0.8.2: + resolution: {integrity: sha512-oodQXEQnrvufA1so/E058Z3SG3bk9AlUE5+NIAsyx5ZJH9P/oX6WMxjC0bs5PPwtKbS7pBHjxja2AD8EwGE8/Q==} + hasBin: true + peerDependencies: + '@modelcontextprotocol/client': ^2.0.0 + '@modelcontextprotocol/server': ^2.0.0 + cac: ^7.0.0 + peerDependenciesMeta: + '@modelcontextprotocol/client': + optional: true + '@modelcontextprotocol/server': + optional: true + cac: + optional: true + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -10452,7 +10532,7 @@ snapshots: nostics: 1.2.0 pathe: 2.0.3 perfect-debounce: 2.1.0 - tinyexec: 1.2.4 + tinyexec: 1.3.0 zigpty: 0.2.1 '@devframes/hub@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))': @@ -10463,7 +10543,18 @@ snapshots: nostics: 1.2.0 pathe: 2.0.3 perfect-debounce: 2.1.0 - tinyexec: 1.2.4 + tinyexec: 1.3.0 + zigpty: 0.2.1 + + '@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))': + dependencies: + '@standard-schema/spec': 1.1.0 + destr: 2.0.5 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + nostics: 1.2.0 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + tinyexec: 1.3.0 zigpty: 0.2.1 '@devframes/json-render@0.7.15(@devframes/hub@0.7.15(devframe@0.7.15(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3)))(devframe@0.7.15(cac@7.0.0)(srvx@0.11.22)(typescript@6.0.3))': @@ -10502,11 +10593,20 @@ snapshots: optionalDependencies: '@devframes/hub': 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4)) - '@devframes/plugin-a11y@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + '@devframes/json-render@0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))': + dependencies: + '@json-render/core': 0.19.0(zod@4.4.3) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + nostics: 1.2.0 + zod: 4.4.3 + optionalDependencies: + '@devframes/hub': 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)) + + '@devframes/plugin-a11y@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': dependencies: axe-core: 4.12.1 cac: 7.0.0 - devframe: 0.8.0(cac@7.0.0)(srvx@0.12.4) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) solid-js: 1.9.14 optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) @@ -10520,10 +10620,19 @@ snapshots: optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) - '@devframes/plugin-code-server@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + '@devframes/plugin-code-server@0.8.0(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': dependencies: cac: 7.0.0 - devframe: 0.8.0(cac@7.0.0)(srvx@0.12.4) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + get-port-please: 3.2.0 + nostics: 1.2.0 + optionalDependencies: + vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + + '@devframes/plugin-code-server@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + dependencies: + cac: 7.0.0 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) get-port-please: 3.2.0 nostics: 1.2.0 optionalDependencies: @@ -10539,20 +10648,30 @@ snapshots: optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) - '@devframes/plugin-data-inspector@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + '@devframes/plugin-data-inspector@0.8.0(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': dependencies: cac: 7.0.0 - devframe: 0.8.0(cac@7.0.0)(srvx@0.12.4) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) get-port-please: 3.2.0 jora: 1.0.0-beta.16 nostics: 1.2.0 optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) - '@devframes/plugin-git@0.8.0(srvx@0.12.4)': + '@devframes/plugin-data-inspector@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': dependencies: cac: 7.0.0 - devframe: 0.8.0(cac@7.0.0)(srvx@0.12.4) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + get-port-please: 3.2.0 + jora: 1.0.0-beta.16 + nostics: 1.2.0 + optionalDependencies: + vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + + '@devframes/plugin-git@0.8.2(srvx@0.12.4)': + dependencies: + cac: 7.0.0 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) pathe: 2.0.3 transitivePeerDependencies: - '@modelcontextprotocol/client' @@ -10581,6 +10700,17 @@ snapshots: transitivePeerDependencies: - valibot + '@devframes/plugin-inspect@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(valibot@1.4.2(typescript@6.0.3))(vite@8.2.0)': + dependencies: + '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) + cac: 7.0.0 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + nostics: 1.2.0 + optionalDependencies: + vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + transitivePeerDependencies: + - valibot + '@devframes/plugin-messages@0.8.0(@devframes/hub@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.11.22)))(devframe@0.8.0(cac@7.0.0)(srvx@0.11.22))(vite@8.2.0)': dependencies: '@devframes/hub': 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.11.22)) @@ -10599,10 +10729,19 @@ snapshots: optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) - '@devframes/plugin-og@0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + '@devframes/plugin-messages@0.8.2(@devframes/hub@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)))(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': dependencies: + '@devframes/hub': 0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4)) cac: 7.0.0 - devframe: 0.8.0(cac@7.0.0)(srvx@0.12.4) + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + nostics: 1.2.0 + optionalDependencies: + vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + + '@devframes/plugin-og@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + dependencies: + cac: 7.0.0 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) nostics: 1.2.0 parse5: 8.0.1 optionalDependencies: @@ -10626,6 +10765,15 @@ snapshots: optionalDependencies: vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + '@devframes/plugin-terminals@0.8.2(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0)': + dependencies: + cac: 7.0.0 + devframe: 0.8.2(cac@7.0.0)(srvx@0.12.4) + nostics: 1.2.0 + zigpty: 0.2.1 + optionalDependencies: + vite: 8.2.0(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.44.1)(tsx@4.23.5)(yaml@2.9.0) + '@discoveryjs/natural-compare@1.1.0': {} '@docsearch/css@4.6.3': {} @@ -11501,10 +11649,10 @@ snapshots: - valibot - vue - '@nuxt/devtools@4.0.0-alpha.10(@vitejs/devtools-oxc@0.4.12)(@vitejs/devtools-rolldown@0.4.12)(@vitejs/devtools-vite@0.4.12)(@vitejs/devtools-vitest@0.4.12)(cac@7.0.0)(crossws@0.4.10(srvx@0.12.4))(db0@0.3.4)(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(magic-string@1.1.0)(nitropack@2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(valibot@1.4.2(typescript@6.0.3))(vite-plugin-inspect@12.0.2(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))))(cac@7.0.0)(srvx@0.12.4)(typescript@6.0.3)(vite@8.2.0))(vite@8.2.0)(vue@3.5.40(typescript@6.0.3))': + '@nuxt/devtools@4.0.0-alpha.10(@vitejs/devtools-oxc@0.4.12)(@vitejs/devtools-rolldown@0.4.12)(@vitejs/devtools-vite@0.4.12)(@vitejs/devtools-vitest@0.4.12)(cac@7.0.0)(crossws@0.4.10(srvx@0.12.4))(db0@0.3.4)(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(magic-string@1.1.0)(nitropack@2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(valibot@1.4.2(typescript@6.0.3))(vite-plugin-inspect@12.0.2(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))))(cac@7.0.0)(srvx@0.12.4)(typescript@6.0.3)(vite@8.2.0))(vite@8.2.0)(vue@3.5.40(typescript@6.0.3))': dependencies: - '@devframes/plugin-code-server': 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) - '@devframes/plugin-data-inspector': 0.8.0(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + '@devframes/plugin-code-server': 0.8.0(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) + '@devframes/plugin-data-inspector': 0.8.0(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(vite@8.2.0) '@nuxt/devtools-kit': 4.0.0-alpha.10(magic-string@1.1.0)(magicast@0.5.4)(nitropack@2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.2.0) '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))) '@vitejs/devtools': 0.4.12(@vitejs/devtools-oxc@0.4.12)(@vitejs/devtools-rolldown@0.4.12)(@vitejs/devtools-vite@0.4.12)(@vitejs/devtools-vitest@0.4.12)(crossws@0.4.10(srvx@0.12.4))(srvx@0.12.4)(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(vite@8.2.0) @@ -11947,7 +12095,7 @@ snapshots: - webpack - xml2js - '@nuxt/nitro-server@4.5.1(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0(supports-color@10.2.2)))(cac@7.0.0)(db0@0.3.4)(esbuild@0.28.1)(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(lightningcss@1.33.0)(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(rollup@4.60.2)(srvx@0.12.4)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))': + '@nuxt/nitro-server@4.5.1(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0(supports-color@10.2.2)))(cac@7.0.0)(db0@0.3.4)(esbuild@0.28.1)(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(lightningcss@1.33.0)(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(rollup@4.60.2)(srvx@0.12.4)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))) @@ -11966,7 +12114,7 @@ snapshots: mocked-exports: 0.1.1 nitropack: 2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)) nostics: 1.2.0 - nuxt: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + nuxt: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 @@ -12205,7 +12353,7 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.5.1(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2)))(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(optionator@0.9.4)(oxc-parser@0.142.0)(oxlint@1.77.0)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.60.2))(supports-color@10.2.2)(terser@5.44.1)(tsx@4.23.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.5.1(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2)))(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(optionator@0.9.4)(oxc-parser@0.142.0)(oxlint@1.77.0)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.60.2))(supports-color@10.2.2)(terser@5.44.1)(tsx@4.23.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': dependencies: '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))) '@vitejs/plugin-vue': 6.0.8(vite@8.2.0)(vue@3.5.40(typescript@6.0.3)) @@ -12223,7 +12371,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + nuxt: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) nypm: 0.6.8 pathe: 2.0.3 pkg-types: 2.3.1 @@ -14043,7 +14191,7 @@ snapshots: '@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)': dependencies: - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) + '@typescript-eslint/utils': 8.66.0(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3) '@unocss/config': 66.7.5 '@unocss/core': 66.7.5 '@unocss/rule-utils': 66.7.5 @@ -14444,7 +14592,7 @@ snapshots: local-pkg: 1.2.1 nostics: 1.2.0 pathe: 2.0.3 - tinyexec: 1.2.4 + tinyexec: 1.3.0 transitivePeerDependencies: - '@modelcontextprotocol/client' - '@modelcontextprotocol/server' @@ -14462,7 +14610,7 @@ snapshots: local-pkg: 1.2.1 nostics: 1.2.0 pathe: 2.0.3 - tinyexec: 1.2.4 + tinyexec: 1.3.0 transitivePeerDependencies: - '@modelcontextprotocol/client' - '@modelcontextprotocol/server' @@ -15026,13 +15174,13 @@ snapshots: '@vueuse/metadata@14.4.0': {} - '@vueuse/nuxt@14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3))': + '@vueuse/nuxt@14.4.0(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue@3.5.40(typescript@6.0.3))': dependencies: '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))) '@vueuse/core': 14.4.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/metadata': 14.4.0 local-pkg: 1.2.1 - nuxt: 4.5.1(30e07b20fbdc4b317af284136bd500f3) + nuxt: 4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78) vue: 3.5.40(typescript@6.0.3) transitivePeerDependencies: - magic-string @@ -16139,6 +16287,22 @@ snapshots: transitivePeerDependencies: - srvx + devframe@0.8.2(cac@7.0.0)(srvx@0.12.4): + dependencies: + '@standard-schema/spec': 1.1.0 + birpc: 4.0.0 + crossws: 0.4.10(srvx@0.12.4) + destr: 2.0.5 + h3: 2.0.1-rc.26(crossws@0.4.10(srvx@0.12.4)) + mrmime: 2.0.1 + nostics: 1.2.0 + pathe: 2.0.3 + ufo: 1.6.4 + optionalDependencies: + cac: 7.0.0 + transitivePeerDependencies: + - srvx + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -17539,6 +17703,7 @@ snapshots: '@babel/parser': 7.29.7 '@babel/types': 7.29.7 source-map-js: 1.2.1 + optional: true magicast@0.5.4: dependencies: @@ -18069,7 +18234,7 @@ snapshots: '@rollup/plugin-terser': 1.0.0(rollup@4.60.2) '@vercel/nft': 1.5.0(rollup@4.60.2)(supports-color@10.2.2) archiver: 7.0.1 - c12: 3.3.4(magicast@0.5.3) + c12: 3.3.4(magicast@0.5.4) chokidar: 5.0.0 citty: 0.2.2 compatx: 0.2.0 @@ -18097,7 +18262,7 @@ snapshots: knitwork: 1.3.0 listhen: 1.10.0(srvx@0.11.22) magic-string: 0.30.21 - magicast: 0.5.3 + magicast: 0.5.4 mime: 4.1.0 mlly: 1.8.2 node-fetch-native: 1.6.7 @@ -18179,7 +18344,7 @@ snapshots: '@rollup/plugin-terser': 1.0.0(rollup@4.60.2) '@vercel/nft': 1.5.0(rollup@4.60.2)(supports-color@10.2.2) archiver: 7.0.1 - c12: 3.3.4(magicast@0.5.3) + c12: 3.3.4(magicast@0.5.4) chokidar: 5.0.0 citty: 0.2.2 compatx: 0.2.0 @@ -18207,7 +18372,7 @@ snapshots: knitwork: 1.3.0 listhen: 1.10.0(srvx@0.12.4) magic-string: 0.30.21 - magicast: 0.5.3 + magicast: 0.5.4 mime: 4.1.0 mlly: 1.8.2 node-fetch-native: 1.6.7 @@ -18337,16 +18502,16 @@ snapshots: dependencies: boolbase: 1.0.0 - nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3): + nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78): dependencies: '@dxup/nuxt': 0.5.3(esbuild@0.28.1)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.1)(cac@7.0.0)(magicast@0.5.4)(supports-color@10.2.2) - '@nuxt/devtools': 4.0.0-alpha.10(@vitejs/devtools-oxc@0.4.12)(@vitejs/devtools-rolldown@0.4.12)(@vitejs/devtools-vite@0.4.12)(@vitejs/devtools-vitest@0.4.12)(cac@7.0.0)(crossws@0.4.10(srvx@0.12.4))(db0@0.3.4)(devframe@0.8.0(cac@7.0.0)(srvx@0.12.4))(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(magic-string@1.1.0)(nitropack@2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(valibot@1.4.2(typescript@6.0.3))(vite-plugin-inspect@12.0.2(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))))(cac@7.0.0)(srvx@0.12.4)(typescript@6.0.3)(vite@8.2.0))(vite@8.2.0)(vue@3.5.40(typescript@6.0.3)) + '@nuxt/devtools': 4.0.0-alpha.10(@vitejs/devtools-oxc@0.4.12)(@vitejs/devtools-rolldown@0.4.12)(@vitejs/devtools-vite@0.4.12)(@vitejs/devtools-vitest@0.4.12)(cac@7.0.0)(crossws@0.4.10(srvx@0.12.4))(db0@0.3.4)(devframe@0.8.2(cac@7.0.0)(srvx@0.12.4))(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(magic-string@1.1.0)(nitropack@2.13.4(idb-keyval@6.3.0)(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(supports-color@10.2.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(oxc-parser@0.142.0)(rolldown@1.2.2)(srvx@0.12.4)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(valibot@1.4.2(typescript@6.0.3))(vite-plugin-inspect@12.0.2(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))))(cac@7.0.0)(srvx@0.12.4)(typescript@6.0.3)(vite@8.2.0))(vite@8.2.0)(vue@3.5.40(typescript@6.0.3)) '@nuxt/kit': 4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1))) - '@nuxt/nitro-server': 4.5.1(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0(supports-color@10.2.2)))(cac@7.0.0)(db0@0.3.4)(esbuild@0.28.1)(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(lightningcss@1.33.0)(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(oxc-parser@0.142.0)(rolldown@1.2.2)(rollup@4.60.2)(srvx@0.12.4)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)) + '@nuxt/nitro-server': 4.5.1(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0(supports-color@10.2.2)))(cac@7.0.0)(db0@0.3.4)(esbuild@0.28.1)(idb-keyval@6.3.0)(ioredis@5.10.1(supports-color@10.2.2))(lightningcss@1.33.0)(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(oxc-parser@0.142.0)(rolldown@1.2.2)(rollup@4.60.2)(srvx@0.12.4)(supports-color@10.2.2)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)) '@nuxt/schema': 4.5.1 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.1(magic-string@1.1.0)(magicast@0.5.4)(oxc-parser@0.142.0)(rolldown@1.2.2)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))) - '@nuxt/vite-builder': 4.5.1(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2)))(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(30e07b20fbdc4b317af284136bd500f3))(optionator@0.9.4)(oxc-parser@0.142.0)(oxlint@1.77.0)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.60.2))(supports-color@10.2.2)(terser@5.44.1)(tsx@4.23.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) + '@nuxt/vite-builder': 4.5.1(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2)))(@types/node@25.0.3)(@vitejs/devtools@0.4.12)(esbuild@0.28.1)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.1.0)(magicast@0.5.4)(nuxt@4.5.1(2b7b0f20c8c8610a40392b7c4a41ce78))(optionator@0.9.4)(oxc-parser@0.142.0)(oxlint@1.77.0)(rolldown@1.2.2)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.2)(rollup@4.60.2))(supports-color@10.2.2)(terser@5.44.1)(tsx@4.23.5)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.2)(rollup@4.60.2)(vite@8.2.0)(webpack@5.104.1(esbuild@0.28.1)))(vue-tsc@3.3.9(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) '@unhead/vue': 3.2.3(cac@7.0.0)(esbuild@0.28.1)(lightningcss@1.33.0)(rolldown@1.2.2)(rollup@4.60.2)(srvx@0.12.4)(typescript@6.0.3)(vite@8.2.0)(vue@3.5.40(typescript@6.0.3))(webpack@5.104.1(esbuild@0.28.1)) '@vue/shared': 3.5.40 chokidar: 5.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0e9fe9af..13fbf91b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -43,7 +43,7 @@ overrides: vite: 'catalog:build' refs: - devframe: &devframe ^0.8.0 + devframe: &devframe ^0.8.2 nuxt: &nuxt ^4.5.1 shiki: &shiki ^4.4.1 storybook: &storybook ^10.5.6