diff --git a/packages/devframe/package.json b/packages/devframe/package.json index cdf3be52b..da513daef 100644 --- a/packages/devframe/package.json +++ b/packages/devframe/package.json @@ -118,6 +118,7 @@ "structured-clone-es": "catalog:deps", "tinyglobby": "catalog:deps", "tsdown": "catalog:build", + "typescript": "catalog:tooling", "ua-parser-modern": "catalog:inlined", "valibot": "catalog:deps", "whenexpr": "catalog:deps", diff --git a/packages/devframe/src/node/auth/handler.ts b/packages/devframe/src/node/auth/handler.ts index fbe965de7..63e40caab 100644 --- a/packages/devframe/src/node/auth/handler.ts +++ b/packages/devframe/src/node/auth/handler.ts @@ -1,6 +1,6 @@ import type { RpcFunctionDefinitionAny } from 'devframe/rpc' -import type { DevframeRpcConnection } from 'devframe/rpc/transports/ws-server' import type { DevframeNodeRpcSession } from 'devframe/types' +import type { DevframeRpcConnection } from '../../rpc/transports/session' /** * A ready-made pre-auth RPC handler, as produced by diff --git a/packages/devframe/src/rpc/transports/session.ts b/packages/devframe/src/rpc/transports/session.ts index 51079e36d..5955a3e63 100644 --- a/packages/devframe/src/rpc/transports/session.ts +++ b/packages/devframe/src/rpc/transports/session.ts @@ -1,4 +1,38 @@ -import type { Peer } from 'crossws' +/** + * Structural view of the crossws `Peer` backing a WebSocket RPC connection: + * the transport-independent slice of its API (identity, send, pub/sub, + * close, backpressure), typed locally so the `devframe/types` declaration + * graph never imports `crossws`, whose own declarations require the DOM, + * Bun, and Cloudflare type libs a plain Node consumer doesn't load. Every + * member mirrors its crossws counterpart; for the full API (the upgrade + * `request`, raw `websocket`, connected `peers`), import `Peer` from + * `crossws` and cast, which opts your compilation into crossws's lib + * requirements. + */ +export interface DevframeWsPeer { + /** Unique random uuid v4 identifier for the peer. */ + readonly id: string + /** IP address of the peer. */ + readonly remoteAddress: string | undefined + /** All topics this peer has been subscribed to. */ + readonly topics: Set + /** Bytes queued for transmission but not yet flushed to the client. */ + readonly bufferedAmount: number + /** Wait until the send buffer drains to `threshold` bytes (default `0`). */ + waitForDrain: (opts?: { threshold?: number, pollInterval?: number }) => Promise + /** Send a message to the peer. */ + send: (data: unknown, options?: { compress?: boolean }) => number | void | undefined + /** Send a message to subscribers of a topic. */ + publish: (topic: string, data: unknown, options?: { compress?: boolean }) => void + /** Subscribe to a topic. */ + subscribe: (topic: string) => void + /** Unsubscribe from a topic. */ + unsubscribe: (topic: string) => void + /** Close the connection. */ + close: (code?: number, reason?: string) => void + /** Abruptly close the connection. */ + terminate: () => void +} /** * Which wire transport produced an RPC connection. Every transport speaks @@ -44,13 +78,13 @@ export interface DevframeRpcConnection { * The crossws peer backing a `websocket` connection: the WS-specific * escape hatch (pub/sub, raw socket access). Absent on other transports. */ - peer?: Peer + peer?: DevframeWsPeer } export interface DevframeNodeRpcSessionMeta { id: number /** The crossws peer backing this session's socket (WS transport only). */ - peer?: Peer + peer?: DevframeWsPeer clientAuthToken?: string isTrusted?: boolean subscribedStates: Set diff --git a/packages/devframe/src/rpc/transports/ws-server.ts b/packages/devframe/src/rpc/transports/ws-server.ts index bf9dcfc86..6ead63bef 100644 --- a/packages/devframe/src/rpc/transports/ws-server.ts +++ b/packages/devframe/src/rpc/transports/ws-server.ts @@ -22,6 +22,7 @@ export type { DevframeRpcConnection, DevframeRpcConnectionRequest, DevframeRpcTransportKind, + DevframeWsPeer, } from './session' export interface WsRpcTransportOptions { diff --git a/packages/devframe/src/types/rpc.ts b/packages/devframe/src/types/rpc.ts index 3da7c6771..72668fa09 100644 --- a/packages/devframe/src/types/rpc.ts +++ b/packages/devframe/src/types/rpc.ts @@ -1,8 +1,8 @@ import type { BirpcReturn } from 'birpc' import type { RpcFunctionsCollectorBase } from 'devframe/rpc' -import type { DevframeNodeRpcSessionMeta } from 'devframe/rpc/transports/ws-server' import type { SharedState } from 'devframe/utils/shared-state' import type { StreamReader, StreamSink } from 'devframe/utils/streaming-channel' +import type { DevframeNodeRpcSessionMeta } from '../rpc/transports/session' import type { DevframeNodeContext } from './context' import type { DevframeRpcClientFunctions, DevframeRpcServerFunctions } from './rpc-augments' @@ -11,7 +11,8 @@ export type { DevframeRpcConnection, DevframeRpcConnectionRequest, DevframeRpcTransportKind, -} from 'devframe/rpc/transports/ws-server' + DevframeWsPeer, +} from '../rpc/transports/session' export interface DevframeNodeRpcSession { meta: DevframeNodeRpcSessionMeta diff --git a/packages/devframe/test/types-lib-neutral.test.ts b/packages/devframe/test/types-lib-neutral.test.ts new file mode 100644 index 000000000..1e9c61714 --- /dev/null +++ b/packages/devframe/test/types-lib-neutral.test.ts @@ -0,0 +1,42 @@ +import { resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import ts from 'typescript' +import { describe, expect, it } from 'vitest' + +const pkgRoot = fileURLToPath(new URL('../', import.meta.url)) + +/** + * `devframe/types` is imported by config-surface packages (e.g. + * `@vitejs/devtools/config`), so its declaration graph must typecheck in a + * plain Node compilation: ES lib + `@types/node`, no DOM/Bun/Cloudflare libs, + * with `skipLibCheck: false` (how vitejs/vite's CI checks it). A `crossws` + * type import anywhere in the graph breaks that, since crossws's + * declarations require all three. + */ +describe('devframe/types lib-neutrality', () => { + it('typechecks with lib ES2022 + @types/node only, skipLibCheck: false', () => { + const options: ts.CompilerOptions = { + noEmit: true, + strict: true, + skipLibCheck: false, + lib: ['lib.es2022.d.ts'], + types: ['node'], + target: ts.ScriptTarget.ES2022, + module: ts.ModuleKind.ESNext, + moduleResolution: ts.ModuleResolutionKind.Bundler, + } + const host = ts.createCompilerHost(options) + host.getCurrentDirectory = () => pkgRoot + const program = ts.createProgram( + [resolve(pkgRoot, 'dist/types/index.d.mts')], + options, + host, + ) + const diagnostics = ts.getPreEmitDiagnostics(program) + expect(ts.formatDiagnostics(diagnostics, { + getCanonicalFileName: f => f, + getCurrentDirectory: () => pkgRoot, + getNewLine: () => '\n', + })).toBe('') + }) +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e5acf7b7..a59f9673c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -538,7 +538,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@antfu/eslint-config': specifier: catalog:tooling version: 9.5.1(@typescript-eslint/typescript-estree@8.69.0(supports-color@10.2.2)(typescript@6.0.3))(@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(@vue/compiler-sfc@3.5.42)(eslint-plugin-slop@0.1.3(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)))(eslint-plugin-sonarjs@4.2.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)(vitest@5.0.0(@opentelemetry/api@1.9.1)(@types/node@26.5.0)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0))) @@ -686,7 +686,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../../packages/hub @@ -717,7 +717,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../../packages/hub @@ -817,7 +817,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../../packages/hub @@ -903,7 +903,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) cac: specifier: catalog:deps version: 7.0.0 @@ -1383,7 +1383,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/next': specifier: workspace:* version: link:../../packages/next @@ -1438,7 +1438,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) devframe: specifier: workspace:* version: link:../../packages/devframe @@ -1463,7 +1463,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) cac: specifier: catalog:deps version: 7.0.0 @@ -1571,6 +1571,9 @@ importers: tsdown: specifier: catalog:build version: 0.23.0(@volar/typescript@2.4.28(typescript@6.0.3))(oxc-resolver@11.24.2)(tsx@4.23.13)(typescript@6.0.3) + typescript: + specifier: catalog:tooling + version: 6.0.3 ua-parser-modern: specifier: catalog:inlined version: 0.1.1 @@ -1634,7 +1637,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../hub @@ -1725,7 +1728,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../hub @@ -1885,7 +1888,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-a11y--assets': specifier: workspace:* version: link:assets-pkg @@ -1963,7 +1966,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-assets--assets': specifier: workspace:* version: link:assets-pkg @@ -2038,7 +2041,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-code-server--assets': specifier: workspace:* version: link:assets-pkg @@ -2098,7 +2101,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-data-inspector--assets': specifier: workspace:* version: link:assets-pkg @@ -2188,7 +2191,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-git--assets': specifier: workspace:* version: link:assets-pkg @@ -2275,7 +2278,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../../packages/hub @@ -2353,7 +2356,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../../packages/hub @@ -2431,7 +2434,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-og--assets': specifier: workspace:* version: link:assets-pkg @@ -2497,7 +2500,7 @@ importers: devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/plugin-terminals--assets': specifier: workspace:* version: link:assets-pkg @@ -2661,7 +2664,7 @@ importers: dependencies: '@antfu/design': specifier: catalog:frontend - version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) + version: 0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3)) '@devframes/hub': specifier: workspace:* version: link:../packages/hub @@ -12765,7 +12768,7 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': + '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) unocss: 66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)) @@ -12774,6 +12777,7 @@ snapshots: '@antfu/utils': 9.3.0 '@iconify-json/catppuccin': 1.2.17 '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) + '@unocss/core': 66.10.0 colorjs.io: 0.6.1 dompurify: 3.4.14 floating-vue: 5.2.2(vue@3.5.42(typescript@6.0.3)) @@ -12781,7 +12785,7 @@ snapshots: reka-ui: 2.10.4(vue@3.5.42(typescript@6.0.3)) splitpanes: 4.1.2(vue@3.5.42(typescript@6.0.3)) - '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': + '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.6.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) unocss: 66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)) @@ -12790,6 +12794,7 @@ snapshots: '@antfu/utils': 9.3.0 '@iconify-json/catppuccin': 1.2.17 '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) + '@unocss/core': 66.10.0 colorjs.io: 0.6.1 dompurify: 3.4.15 floating-vue: 5.2.2(vue@3.5.42(typescript@6.0.3)) @@ -12797,7 +12802,7 @@ snapshots: reka-ui: 2.10.4(vue@3.5.42(typescript@6.0.3)) splitpanes: 4.1.2(vue@3.5.42(typescript@6.0.3)) - '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': + '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.14)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) unocss: 66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)) @@ -12806,6 +12811,7 @@ snapshots: '@antfu/utils': 9.3.0 '@iconify-json/catppuccin': 1.2.17 '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) + '@unocss/core': 66.10.0 colorjs.io: 0.7.1 dompurify: 3.4.14 floating-vue: 5.2.2(vue@3.5.42(typescript@6.0.3)) @@ -12813,7 +12819,7 @@ snapshots: reka-ui: 2.10.4(vue@3.5.42(typescript@6.0.3)) splitpanes: 4.1.2(vue@3.5.42(typescript@6.0.3)) - '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': + '@antfu/design@0.4.0(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3)))(@unocss/core@66.10.0)(colorjs.io@0.7.1)(dompurify@3.4.15)(floating-vue@5.2.2(vue@3.5.42(typescript@6.0.3)))(playwright@1.62.1)(reka-ui@2.10.4(vue@3.5.42(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.42(typescript@6.0.3)))(unocss@66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)))(vue@3.5.42(typescript@6.0.3))': dependencies: '@vueuse/core': 14.4.0(vue@3.5.42(typescript@6.0.3)) unocss: 66.10.0(@unocss/postcss@66.10.0(postcss@8.5.26))(rolldown@1.2.7)(rollup@4.60.3)(vite@8.2.2(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.13)(yaml@2.9.0)) @@ -12822,6 +12828,7 @@ snapshots: '@antfu/utils': 9.3.0 '@iconify-json/catppuccin': 1.2.17 '@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3)) + '@unocss/core': 66.10.0 colorjs.io: 0.7.1 dompurify: 3.4.15 floating-vue: 5.2.2(vue@3.5.42(typescript@6.0.3)) diff --git a/tests/__snapshots__/tsnapi/devframe/index.snapshot.d.ts b/tests/__snapshots__/tsnapi/devframe/index.snapshot.d.ts index 6f4bf6422..7dbdabed2 100644 --- a/tests/__snapshots__/tsnapi/devframe/index.snapshot.d.ts +++ b/tests/__snapshots__/tsnapi/devframe/index.snapshot.d.ts @@ -203,7 +203,7 @@ export interface DevframeNodeRpcSession { } export interface DevframeNodeRpcSessionMeta { id: number; - peer?: Peer; + peer?: DevframeWsPeer; clientAuthToken?: string; isTrusted?: boolean; subscribedStates: Set; @@ -227,7 +227,7 @@ export interface DevframeRpcConnection { request?: DevframeRpcConnectionRequest; send?: (_: string) => void; close?: (_?: number, _?: string) => void; - peer?: Peer; + peer?: DevframeWsPeer; } export interface DevframeRpcConnectionRequest { url?: string; @@ -382,6 +382,26 @@ export interface DevframeWsOptions { sidecar?: boolean; url?: string; } +export interface DevframeWsPeer { + readonly id: string; + readonly remoteAddress: string | undefined; + readonly topics: Set; + readonly bufferedAmount: number; + waitForDrain: (_?: { + threshold?: number; + pollInterval?: number; + }) => Promise; + send: (_: unknown, _?: { + compress?: boolean; + }) => number | void | undefined; + publish: (_: string, _: unknown, _?: { + compress?: boolean; + }) => void; + subscribe: (_: string) => void; + unsubscribe: (_: string) => void; + close: (_?: number, _?: string) => void; + terminate: () => void; +} export interface EventEmitter { emit: (_: K, ..._: Parameters) => void; emitOnce: (_: K, ..._: Parameters) => void; diff --git a/tests/__snapshots__/tsnapi/devframe/rpc/transports/ws-server.snapshot.d.ts b/tests/__snapshots__/tsnapi/devframe/rpc/transports/ws-server.snapshot.d.ts index 5423c5b18..fce63c217 100644 --- a/tests/__snapshots__/tsnapi/devframe/rpc/transports/ws-server.snapshot.d.ts +++ b/tests/__snapshots__/tsnapi/devframe/rpc/transports/ws-server.snapshot.d.ts @@ -10,6 +10,7 @@ export { DevframeNodeRpcSessionMeta } export { DevframeRpcConnection } export { DevframeRpcConnectionRequest } export { DevframeRpcTransportKind } +export { DevframeWsPeer } export { isAllowedOrigin } export { isLoopbackHostname } export { WsOriginRegistry } diff --git a/tests/__snapshots__/tsnapi/devframe/types.snapshot.d.ts b/tests/__snapshots__/tsnapi/devframe/types.snapshot.d.ts index 4d30c4f98..c062d1213 100644 --- a/tests/__snapshots__/tsnapi/devframe/types.snapshot.d.ts +++ b/tests/__snapshots__/tsnapi/devframe/types.snapshot.d.ts @@ -61,6 +61,7 @@ export { DevframeSseOptions } export { DevframeStorageScope } export { DevframeViewHost } export { DevframeWsOptions } +export { DevframeWsPeer } export { EventEmitter } export { EventsMap } export { EventUnsubscribe }