From 5d378b4ca68dd0a08f575e03c0ae044ae83a2c96 Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Mon, 3 Aug 2026 04:46:06 +0000 Subject: [PATCH 1/2] chore: integrate knip for dead-code detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds knip (unused files/dependencies/exports) to the toolchain, wired into `pnpm knip`, the "Before PRs" checklist, and CI's lint job. knip.jsonc carries per-workspace overrides for gaps its defaults can't infer on their own: multi-entry package `exports` subpaths (its package.json→dist→src source mapping needs a workspace tsconfig `outDir`, which conflicts with this repo's cross-workspace `src/*.ts` imports), nested Next.js/PostCSS roots, `storybook-solidjs-vite` not matching the Storybook plugin's trigger, UnoCSS config discovered by directory proximity rather than import, tsnapi's generated snapshot fixtures, and a handful of genuinely dynamic dependency references (runtime string-literal plugin loading, markdown code samples, transitive type-only leaks). Also cleans up what the baseline run surfaced: ~30 needlessly exported internal-only symbols demoted to file-local, a few fully dead files and code paths removed (plugins/git's unused ported UI components, an unused helper, two orphaned test constants), 8 stale dependencies dropped, and 4 real missing/phantom dependencies added. Co-authored-by: opencode --- .github/workflows/ci.yml | 2 + AGENTS.md | 5 +- design/uno.config.ts | 2 - examples/files-inspector/tests/_utils.ts | 2 +- examples/json-render/package.json | 3 - .../src/client/postcss.config.mjs | 1 - examples/next-runtime-snapshot/package.json | 3 +- .../src/client/app/components/connect.tsx | 2 +- .../src/client/postcss.config.mjs | 1 - .../next-runtime-snapshot/tests/_utils.ts | 4 - examples/streaming-chat/package.json | 3 +- examples/streaming-chat/tests/_utils.ts | 4 - knip.jsonc | 159 +++ package.json | 6 +- packages/devframe/src/client/static-rpc.ts | 2 +- packages/devframe/src/node/rpc/index.ts | 2 - packages/hub/package.json | 1 - .../src/components/_unsupported.ts | 2 +- plugins/a11y/src/inject/messages.ts | 2 +- plugins/a11y/src/inject/overlay.ts | 2 +- plugins/a11y/src/shared/protocol.ts | 28 +- plugins/a11y/src/spa/lib/devframe.ts | 6 +- plugins/a11y/tests/_utils.ts | 2 +- plugins/assets/package.json | 3 +- .../src/spa/app/components/TypeFilter.vue | 2 +- .../src/spa/app/composables/useUpload.ts | 2 +- plugins/code-server/package.json | 4 +- plugins/code-server/test/_utils.ts | 2 +- plugins/data-inspector/package.json | 1 + plugins/data-inspector/src/node/files.ts | 2 +- .../src/spa/composables/display-transform.ts | 6 +- .../src/spa/composables/saved.ts | 2 - plugins/git/package.json | 3 - plugins/git/src/client/components/ui/card.tsx | 75 -- .../src/client/components/ui/scroll-area.tsx | 2 +- .../src/client/components/ui/separator.tsx | 27 - .../src/client/components/ui/status-mark.tsx | 4 - plugins/git/src/client/components/ui/tabs.tsx | 48 - plugins/git/src/client/lib/commit-graph.ts | 4 +- plugins/git/src/client/postcss.config.mjs | 1 - plugins/git/src/rpc/functions/status.ts | 2 +- plugins/git/src/rpc/index.ts | 4 +- plugins/inspect/package.json | 1 + plugins/inspect/src/spa/utils/color.ts | 4 +- .../client/composables/useMessageFilters.ts | 2 +- .../og/src/spa/app/components/_fixtures.ts | 2 +- plugins/og/src/spa/app/utils/metadata.ts | 4 +- plugins/og/test/_utils.ts | 2 +- plugins/terminals/package.json | 1 - plugins/terminals/src/node/backend.ts | 4 +- plugins/terminals/src/rpc/schemas.ts | 2 +- pnpm-lock.yaml | 977 ++++++++++-------- pnpm-workspace.yaml | 19 +- storybook/src/hub.ts | 2 +- 54 files changed, 759 insertions(+), 699 deletions(-) create mode 100644 knip.jsonc delete mode 100644 plugins/git/src/client/components/ui/card.tsx delete mode 100644 plugins/git/src/client/components/ui/separator.tsx delete mode 100644 plugins/git/src/client/components/ui/tabs.tsx diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9d206b7..a34aaa2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,8 @@ permissions: jobs: unit-test: uses: sxzz/workflows/.github/workflows/unit-test.yml@main + with: + lint: pnpm run lint && pnpm run knip e2e: runs-on: ubuntu-latest diff --git a/AGENTS.md b/AGENTS.md index b371f76a..bf4d5383 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -24,6 +24,7 @@ pnpm dev # tsdown --watch pnpm test # pnpm build && vitest (api snapshot guards against stale dist) pnpm typecheck # turbo run typecheck (per-package tsc --noEmit) pnpm lint --fix # ESLint via @antfu/eslint-config +pnpm knip # unused files/dependencies/exports across every workspace pnpm start # tsx src/index.ts ``` @@ -33,6 +34,8 @@ The `pnpm test` script intentionally runs `build` first so `tsnapi` snapshots co `pnpm typecheck` runs `scripts/verify-typecheck-coverage.ts` first — it fails the command (and CI, since CI just runs `pnpm typecheck`) if any workspace package has a `tsconfig.json` but no `typecheck` script, so a new package can't silently join the same blind spot. A package that genuinely can't typecheck yet needs a documented exception in that script, not a missing script. +`pnpm knip` finds unused files, dependencies, and exports across every workspace (config in `knip.jsonc`). It runs against source directly — no prior build needed. Most workspaces need no configuration; `knip.jsonc` only carries per-workspace overrides for cases knip's defaults can't infer on their own: a package's non-`index.ts` `exports` subpaths (knip's package.json→`dist`→`src` source mapping needs a workspace `tsconfig.json` `outDir`, which conflicts with this repo's cross-workspace `src/*.ts` imports, so multi-entry packages list their `exports`-mapped entry files explicitly instead — keep that list in sync with each `tsdown.config.ts`), config files knip's plugins don't discover in a nested location (a Next.js app rooted below the workspace root, `storybook-solidjs-vite` not matching the Storybook plugin trigger), and dependencies referenced dynamically outside its static import graph (icon collections consumed by UnoCSS at build time, plugin packages loaded via a runtime `import()` string). Prefer fixing the underlying gap or a scoped `ignoreDependencies`/`entry` override over a blanket `ignore`. + ## Conventions - RPC functions must use `defineRpcFunction`; always namespace IDs `devframes:plugin::` (matching the plugin's `@devframes/plugin-` package name). @@ -145,7 +148,7 @@ Range allocation: ## Before PRs ```sh -pnpm lint && pnpm test && pnpm typecheck && pnpm build +pnpm lint && pnpm knip && pnpm test && pnpm typecheck && pnpm build ``` Follow conventional commits (`feat:`, `fix:`, etc.). diff --git a/design/uno.config.ts b/design/uno.config.ts index d2a7e58b..f94e7972 100644 --- a/design/uno.config.ts +++ b/design/uno.config.ts @@ -49,5 +49,3 @@ export const designConfig = defineConfig({ 'z-drawer-content': 'z-[90]', }, }) - -export default designConfig diff --git a/examples/files-inspector/tests/_utils.ts b/examples/files-inspector/tests/_utils.ts index 3e564a6b..add07513 100644 --- a/examples/files-inspector/tests/_utils.ts +++ b/examples/files-inspector/tests/_utils.ts @@ -19,7 +19,7 @@ import { resolve } from 'pathe' import devframe from '../src/devframe' const HERE = fileURLToPath(new URL('.', import.meta.url)) -export const CLIENT_DIST = resolve(HERE, '../dist/client') +const CLIENT_DIST = resolve(HERE, '../dist/client') /** * Asserts the Preact client has been built. Tests boot a dev server diff --git a/examples/json-render/package.json b/examples/json-render/package.json index 8f627b18..1d9f253b 100644 --- a/examples/json-render/package.json +++ b/examples/json-render/package.json @@ -23,8 +23,5 @@ "@devframes/json-render-ui": "workspace:*", "cac": "catalog:deps", "devframe": "workspace:*" - }, - "devDependencies": { - "get-port-please": "catalog:deps" } } diff --git a/examples/next-devframe-hub/src/client/postcss.config.mjs b/examples/next-devframe-hub/src/client/postcss.config.mjs index 8cf7cb4b..f8c04943 100644 --- a/examples/next-devframe-hub/src/client/postcss.config.mjs +++ b/examples/next-devframe-hub/src/client/postcss.config.mjs @@ -1,4 +1,3 @@ -/** @type {import('postcss-load-config').Config} */ export default { plugins: { '@unocss/postcss': {}, diff --git a/examples/next-runtime-snapshot/package.json b/examples/next-runtime-snapshot/package.json index 98a25f57..bba9ef4a 100644 --- a/examples/next-runtime-snapshot/package.json +++ b/examples/next-runtime-snapshot/package.json @@ -25,7 +25,8 @@ "devframe": "workspace:*", "next": "catalog:frontend", "react": "catalog:frontend", - "react-dom": "catalog:frontend" + "react-dom": "catalog:frontend", + "valibot": "catalog:deps" }, "devDependencies": { "@types/react": "catalog:types", diff --git a/examples/next-runtime-snapshot/src/client/app/components/connect.tsx b/examples/next-runtime-snapshot/src/client/app/components/connect.tsx index 7c415d59..b848a510 100644 --- a/examples/next-runtime-snapshot/src/client/app/components/connect.tsx +++ b/examples/next-runtime-snapshot/src/client/app/components/connect.tsx @@ -9,7 +9,7 @@ import { useMemo } from 'react' // bundle stays free of node-only server code. const NAMESPACE = 'example:next-runtime-snapshot' -export type SnapshotCtx = DevframeScopedClientContext +type SnapshotCtx = DevframeScopedClientContext interface ConnectionState { ctx: SnapshotCtx | null diff --git a/examples/next-runtime-snapshot/src/client/postcss.config.mjs b/examples/next-runtime-snapshot/src/client/postcss.config.mjs index 8cf7cb4b..f8c04943 100644 --- a/examples/next-runtime-snapshot/src/client/postcss.config.mjs +++ b/examples/next-runtime-snapshot/src/client/postcss.config.mjs @@ -1,4 +1,3 @@ -/** @type {import('postcss-load-config').Config} */ export default { plugins: { '@unocss/postcss': {}, diff --git a/examples/next-runtime-snapshot/tests/_utils.ts b/examples/next-runtime-snapshot/tests/_utils.ts index 4dcf3d51..ad008208 100644 --- a/examples/next-runtime-snapshot/tests/_utils.ts +++ b/examples/next-runtime-snapshot/tests/_utils.ts @@ -1,6 +1,5 @@ import type { StartedServer } from 'devframe/node' import process from 'node:process' -import { fileURLToPath } from 'node:url' import { DEVFRAME_CONNECTION_META_FILENAME } from 'devframe/constants' import { createH3DevframeHost, @@ -13,9 +12,6 @@ import { H3 } from 'h3' import { resolve } from 'pathe' import devframe from '../src/devframe' -const HERE = fileURLToPath(new URL('.', import.meta.url)) -export const CLIENT_DIST = resolve(HERE, '../dist/client') - export interface SnapshotServer extends StartedServer { basePath: string } diff --git a/examples/streaming-chat/package.json b/examples/streaming-chat/package.json index 3e042647..0a4fbe4c 100644 --- a/examples/streaming-chat/package.json +++ b/examples/streaming-chat/package.json @@ -21,7 +21,8 @@ "cac": "catalog:deps", "colorjs.io": "catalog:frontend", "devframe": "workspace:*", - "preact": "catalog:frontend" + "preact": "catalog:frontend", + "valibot": "catalog:deps" }, "devDependencies": { "@preact/preset-vite": "catalog:build", diff --git a/examples/streaming-chat/tests/_utils.ts b/examples/streaming-chat/tests/_utils.ts index 6af78016..b1eb67b8 100644 --- a/examples/streaming-chat/tests/_utils.ts +++ b/examples/streaming-chat/tests/_utils.ts @@ -3,7 +3,6 @@ import type { DevframeNodeContext } from 'devframe/types' import { existsSync } from 'node:fs' import path from 'node:path' import process from 'node:process' -import { fileURLToPath } from 'node:url' import { DEVFRAME_CONNECTION_META_FILENAME, } from 'devframe/constants' @@ -18,9 +17,6 @@ import { H3 } from 'h3' import { resolve } from 'pathe' import devframe from '../src/devframe' -const HERE = fileURLToPath(new URL('.', import.meta.url)) -export const CLIENT_DIST = resolve(HERE, '../dist/client') - /** * Boot the streaming-chat server in-process for tests. Mirrors the * cli adapter wiring so the WS+HTTP path is exercised end-to-end. diff --git a/knip.jsonc b/knip.jsonc new file mode 100644 index 00000000..e6c64bc5 --- /dev/null +++ b/knip.jsonc @@ -0,0 +1,159 @@ +{ + "$schema": "https://unpkg.com/knip@6/schema-jsonc.json", + // `tests/__snapshots__/tsnapi/**` is `tsnapi`'s generated API-snapshot + // fixture content (see `tests/exports.test.ts` and the root AGENTS.md + // "Development" section) — compared byte-for-byte against a fresh build, + // never imported. Not source to analyze. + "ignore": ["tests/__snapshots__/tsnapi/**"], + // `@iconify-json/*` icon collections and `@unocss/preset-icons` are + // resolved by UnoCSS's `presetIcons()` at build time by package presence + // (scanning `i-ph:*` classes against the installed collection), never + // imported in source — the same false-positive class knip's own docs + // describe for icon-collection dependencies. + "ignoreDependencies": ["@iconify-json/.+", "@unocss/preset-icons"], + "workspaces": { + ".": { + // `design/*.ts` is the shared design system (AGENTS.md § "Design + // system") consumed by every plugin/example's own `uno.config.ts` and + // `design.ts` via relative imports (`../../design/uno.config`). Those + // are UnoCSS/plugin config files, not part of the reachability graph + // knip builds for "unused files", so the shared source is otherwise + // reported as unused from the root workspace. + // + // `skills/devframe/templates/*.ts` are the devframe-authoring skill's + // copy-and-run reference snippets (`skills/devframe/SKILL.md`) — each + // one a standalone, runnable example, not imported by anything else. + "entry": ["design/*.ts", "skills/devframe/templates/*.ts"], + // `spa-devframe.ts` imports `valibot` to illustrate schema validation + // for a consumer's own devframe — it's a dependency of the example a + // reader copies out, not of this repo's root tooling. + "ignoreDependencies": ["valibot"] + }, + "docs": { + // `devframe` is referenced only inside fenced code samples in the + // guide markdown (e.g. `docs/guide/rpc.md`), which knip doesn't parse + // as source — not a real unused dependency. + "ignoreDependencies": ["devframe"] + }, + "examples/next-devframe-hub": { + // The React client build's root sits at `src/client` (`next dev + // src/client`), not the workspace root, so knip's default PostCSS + // config glob (workspace-root `postcss.config.*`) misses it. + "postcss": { + "config": ["src/client/postcss.config.mjs"] + }, + // `BUILTIN_PLUGIN_PACKAGES` (`src/client/devframe/next-devframe-hub.ts`) + // lists these as string literals and loads them via a runtime + // `import()` carrying `webpackIgnore`/`turbopackIgnore` comments — + // deliberately invisible to bundlers (and knip) so Next never inlines + // their node-only code. They're genuinely used at runtime. + "ignoreDependencies": [ + "@devframes/plugin-code-server", + "@devframes/plugin-git", + "@devframes/plugin-inspect", + "@devframes/plugin-messages", + "@devframes/plugin-terminals" + ] + }, + "examples/next-runtime-snapshot": { + // Same nested Next.js client root as `next-devframe-hub` above. + "postcss": { + "config": ["src/client/postcss.config.mjs"] + } + }, + "packages/devframe": { + // Every `package.json#exports` subpath maps to one of these source + // files (see `tsdown.config.ts`'s `serverEntries`/`clientEntries`). + // Knip's package.json→dist→src source mapping needs `outDir` set on + // the workspace `tsconfig.json`, but this repo's packages resolve + // each other's `src/*.ts` directly across workspaces (via the `paths` + // aliases in `tsconfig.base.json`), and `outDir` breaks `tsc`'s + // `rootDir` inference for every consumer that does — so entries are + // listed explicitly instead. Keep this in sync with the `exports` map. + "entry": [ + "src/{index,constants}.ts", + "src/helpers/vite.ts", + "src/adapters/{build,cac,cli,dev,embedded}.ts", + "src/adapters/mcp/index.ts", + "src/client/index.ts", + "src/node/index.ts", + "src/node/{auth,hub-internals}/index.ts", + "src/recipes/{common-rpc-functions,interactive-auth,open-helpers}.ts", + "src/rpc/{index,client,server}.ts", + "src/rpc/dump/index.ts", + "src/rpc/transports/{ws-client,ws-server}.ts", + "src/types/index.ts", + "src/utils/*.ts" + ] + }, + "packages/hub": { + "entry": ["src/{index,constants}.ts", "src/{client,node,types}/index.ts"] + }, + "packages/json-render": { + // `src/node/index.ts` is already picked up via `tsdown.config.ts` + // (its literal `entry` object parses cleanly); only `core.ts`/`hub.ts` + // need to be declared explicitly. + "entry": ["src/{index,core,hub}.ts"] + }, + "packages/nuxt": { + // `@nuxt/kit`'s own `defineNuxtModule` return type resolves through + // `@nuxt/schema`; tsdown's dts bundler inlines that as a lazy + // `import("@nuxt/schema")` type reference in the built + // `dist/module.d.mts` (visible only once this workspace has been + // built locally) — a transitive type-only leak from a dependency's + // own dependency, not a real gap in this package's own manifest. + "ignoreDependencies": ["@nuxt/schema"] + }, + "packages/json-render-ui": { + // `src/components/index.ts` is already picked up via + // `tsdown.config.ts`; only `spa.ts` needs to be declared explicitly. + "entry": ["src/{index,spa}.ts"], + // The standalone SPA's own Vite config (`src/spa/vite.config.ts`) + // mounts `unocss/vite` with no explicit config path, so UnoCSS + // discovers this nested `uno.config.ts` by directory proximity to + // `root` — not an import knip's graph can see. Keep the package-root + // config the Storybook build uses alongside it. + "unocss": { + "config": ["uno.config.ts", "src/spa/uno.config.ts"] + } + }, + // Every built-in plugin ships the same entry shape (see each + // `tsdown.config.ts`'s `serverEntries`/`clientEntries`): a root + // `index.ts`, an optional `cli.ts`/`vite.ts`/`constants.ts`/`types.ts`, + // and `client|node|rpc|inject|engine|registry/index.ts` subdirectories. + // One shared pattern covers them all — see `packages/devframe` above for + // why this is explicit instead of relying on source mapping. + "plugins/*": { + "entry": [ + "src/{index,cli,vite,constants,types}.ts", + "src/{client,node,rpc,inject,engine,registry}/index.ts" + ] + }, + "plugins/a11y": { + // `storybook-solidjs-vite` (not an official `@storybook/*` framework + // package) doesn't match knip's Storybook plugin trigger, so it never + // auto-enables here. Mirror the plugin's own defaults by hand. + "storybook": { + "config": [".storybook/main.ts"], + "entry": [".storybook/preview.tsx"], + "project": [".storybook/**/*.{js,jsx,ts,tsx,mts}"] + }, + // A workspace-specific `entry` replaces (rather than merges with) the + // `plugins/*` glob's `entry` above, so repeat that pattern here + // alongside the stories. + "entry": [ + "src/{index,cli,vite,constants,types}.ts", + "src/{client,node,rpc,inject,engine,registry}/index.ts", + "src/**/*.stories.tsx" + ] + }, + "plugins/git": { + // The React client build's root sits at `src/client` (`next dev + // src/client`), not the workspace root, so knip's default PostCSS + // config glob (workspace-root `postcss.config.*`) misses it. + "postcss": { + "config": ["src/client/postcss.config.mjs"] + } + } + } +} diff --git a/package.json b/package.json index f21b3952..a47fde51 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "storybook": "pnpm -C storybook dev", "storybook:build": "pnpm --filter @devframes/storybook run storybook:build", "lint": "eslint --cache", + "knip": "knip", "test": "pnpm run build && vitest", "test:e2e": "pnpm run build && playwright test", "test:e2e:ui": "pnpm run build && playwright test --ui", @@ -34,8 +35,8 @@ "postinstall": "npx simple-git-hooks && skills-npm" }, "devDependencies": { + "@antfu/design": "catalog:frontend", "@antfu/eslint-config": "catalog:tooling", - "@antfu/ni": "catalog:build", "@antfu/utils": "catalog:inlined", "@playwright/test": "catalog:testing", "@types/node": "catalog:types", @@ -43,11 +44,12 @@ "@types/ws": "catalog:types", "bumpp": "catalog:tooling", "eslint": "catalog:tooling", + "knip": "catalog:tooling", "nano-staged": "catalog:tooling", + "pathe": "catalog:deps", "prompts": "catalog:tooling", "simple-git-hooks": "catalog:tooling", "skills-npm": "catalog:tooling", - "tsdown": "catalog:build", "tsnapi": "catalog:testing", "tsx": "catalog:build", "turbo": "catalog:build", diff --git a/packages/devframe/src/client/static-rpc.ts b/packages/devframe/src/client/static-rpc.ts index 611e763d..41b8e78f 100644 --- a/packages/devframe/src/client/static-rpc.ts +++ b/packages/devframe/src/client/static-rpc.ts @@ -20,7 +20,7 @@ export interface StaticRpcManifestQueryEntry { serialization?: StaticRpcSerialization } -export type StaticRpcManifestEntry +type StaticRpcManifestEntry = | StaticRpcManifestStaticEntry | StaticRpcManifestQueryEntry | any diff --git a/packages/devframe/src/node/rpc/index.ts b/packages/devframe/src/node/rpc/index.ts index 413ed6c0..3fce5b73 100644 --- a/packages/devframe/src/node/rpc/index.ts +++ b/packages/devframe/src/node/rpc/index.ts @@ -3,8 +3,6 @@ import { agentListResources } from './agent-list-resources' import { agentListTools } from './agent-list-tools' import { agentReadResource } from './agent-read-resource' -export { agentInvokeTool, agentListResources, agentListTools, agentReadResource } - /** * Built-in agent introspection RPC functions. Registered automatically * by `createHostContext`. Not themselves agent-exposed (no `agent` diff --git a/packages/hub/package.json b/packages/hub/package.json index 00bf336d..d2a85ffc 100644 --- a/packages/hub/package.json +++ b/packages/hub/package.json @@ -42,7 +42,6 @@ "devframe": "workspace:*" }, "dependencies": { - "birpc": "catalog:deps", "destr": "catalog:deps", "nostics": "catalog:deps", "pathe": "catalog:deps", diff --git a/packages/json-render-ui/src/components/_unsupported.ts b/packages/json-render-ui/src/components/_unsupported.ts index 8aebdc7d..be2931b8 100644 --- a/packages/json-render-ui/src/components/_unsupported.ts +++ b/packages/json-render-ui/src/components/_unsupported.ts @@ -2,7 +2,7 @@ import type { JrComponent } from './_shared' import { h } from 'vue' /** Format a list of prop keys as a compact gist, e.g. `{ foo, bar }`. */ -export function formatPropKeys(keys: readonly string[]): string { +function formatPropKeys(keys: readonly string[]): string { return keys.length ? `{ ${keys.join(', ')} }` : '{}' } diff --git a/plugins/a11y/src/inject/messages.ts b/plugins/a11y/src/inject/messages.ts index 4aa97730..dae1832b 100644 --- a/plugins/a11y/src/inject/messages.ts +++ b/plugins/a11y/src/inject/messages.ts @@ -18,7 +18,7 @@ import { A11Y_DEFAULT_DOCK_ID } from '../shared/protocol.ts' * (deep-linking via `params`). Kept as a discriminated union so future action * kinds can be added without reshaping the field. */ -export interface HubMessageAction { +interface HubMessageAction { id: string label: string kind: 'activate' diff --git a/plugins/a11y/src/inject/overlay.ts b/plugins/a11y/src/inject/overlay.ts index f0b054df..76ac83aa 100644 --- a/plugins/a11y/src/inject/overlay.ts +++ b/plugins/a11y/src/inject/overlay.ts @@ -4,7 +4,7 @@ import { IMPACT_COLOR } from '../shared/protocol.ts' const PREFERS_REDUCED_MOTION = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches -export interface HighlightInfo { +interface HighlightInfo { ruleId: string impact: Impact } diff --git a/plugins/a11y/src/shared/protocol.ts b/plugins/a11y/src/shared/protocol.ts index f27ab6d0..590b4f82 100644 --- a/plugins/a11y/src/shared/protocol.ts +++ b/plugins/a11y/src/shared/protocol.ts @@ -156,61 +156,61 @@ export interface AgentConfig { /* ── agent → panel ─────────────────────────────────────────────────────── */ -export interface AgentReadyMessage { +interface AgentReadyMessage { type: 'a11y:agent-ready' url: string route: string } -export interface StateMessage { +interface StateMessage { type: 'a11y:state' state: A11yState } -export interface ScanningMessage { +interface ScanningMessage { type: 'a11y:scanning' route: string } -export type AgentToPanel = AgentReadyMessage | StateMessage | ScanningMessage +type AgentToPanel = AgentReadyMessage | StateMessage | ScanningMessage /* ── panel → agent ─────────────────────────────────────────────────────── */ -export interface PanelReadyMessage { +interface PanelReadyMessage { type: 'a11y:panel-ready' } -export interface ConfigMessage { +interface ConfigMessage { type: 'a11y:config' config: AgentConfig } -export interface HighlightMessage { +interface HighlightMessage { type: 'a11y:highlight' /** Node id from {@link ViolationNode.id}; falls back to the first target. */ nodeId: string target: string[] } -export interface ClearHighlightMessage { +interface ClearHighlightMessage { type: 'a11y:clear' } -export interface PinsMessage { +interface PinsMessage { type: 'a11y:pins' /** The full desired pin set; the agent draws numbered rings in this order. */ pins: PinTarget[] } -export interface RescanMessage { +interface RescanMessage { type: 'a11y:rescan' } -export interface SetAutoScanMessage { +interface SetAutoScanMessage { type: 'a11y:set-autoscan' enabled: boolean } -export interface ClearRouteMessage { +interface ClearRouteMessage { type: 'a11y:clear-route' route: string } -export interface ClearAllMessage { +interface ClearAllMessage { type: 'a11y:clear-all' } -export type PanelToAgent +type PanelToAgent = | PanelReadyMessage | ConfigMessage | HighlightMessage diff --git a/plugins/a11y/src/spa/lib/devframe.ts b/plugins/a11y/src/spa/lib/devframe.ts index bcb29368..36fb8753 100644 --- a/plugins/a11y/src/spa/lib/devframe.ts +++ b/plugins/a11y/src/spa/lib/devframe.ts @@ -5,13 +5,13 @@ import { connectDevframe } from 'devframe/client' import { createSignal } from 'solid-js' import { A11Y_DOCKS_ACTIVE_KEY } from '../../shared/protocol.ts' -export interface ImpactMeta { +interface ImpactMeta { id: Impact label: string blurb: string } -export interface A11yConfig { +interface A11yConfig { channel: string nodeAttr: string docsBase: string @@ -25,7 +25,7 @@ export interface A11yConfig { } /** A dock-activation intent the hub mirrors into shared state. */ -export interface DockActivation { +interface DockActivation { dockId: string params?: Record } diff --git a/plugins/a11y/tests/_utils.ts b/plugins/a11y/tests/_utils.ts index a391b59c..bbd32f8b 100644 --- a/plugins/a11y/tests/_utils.ts +++ b/plugins/a11y/tests/_utils.ts @@ -12,7 +12,7 @@ import { resolve } from 'pathe' import devframe from '../src/index' const HERE = fileURLToPath(new URL('.', import.meta.url)) -export const SPA_DIST = resolve(HERE, '../dist/spa') +const SPA_DIST = resolve(HERE, '../dist/spa') /** Loud failure if the Solid panel hasn't been built — tests serve `dist/spa`. */ export function assertClientBuilt(): void { diff --git a/plugins/assets/package.json b/plugins/assets/package.json index 067e6981..54ecb0cd 100644 --- a/plugins/assets/package.json +++ b/plugins/assets/package.json @@ -85,7 +85,6 @@ "unocss": "catalog:frontend", "vite": "catalog:build", "vitest": "catalog:testing", - "vue": "catalog:frontend", - "ws": "catalog:deps" + "vue": "catalog:frontend" } } diff --git a/plugins/assets/src/spa/app/components/TypeFilter.vue b/plugins/assets/src/spa/app/components/TypeFilter.vue index 19c151be..e721cdd1 100644 --- a/plugins/assets/src/spa/app/components/TypeFilter.vue +++ b/plugins/assets/src/spa/app/components/TypeFilter.vue @@ -2,7 +2,7 @@ import type { AssetType } from '../../../types' import { TYPE_META } from '../utils/assetType' -export interface TypeFilterItem { +interface TypeFilterItem { type: AssetType count: number checked: boolean diff --git a/plugins/assets/src/spa/app/composables/useUpload.ts b/plugins/assets/src/spa/app/composables/useUpload.ts index 93d7952c..d818f3cd 100644 --- a/plugins/assets/src/spa/app/composables/useUpload.ts +++ b/plugins/assets/src/spa/app/composables/useUpload.ts @@ -2,7 +2,7 @@ import type { DevframeRpcClient } from 'devframe/client' import type { Ref } from 'vue' import { ref } from 'vue' -export interface QueuedFile { +interface QueuedFile { file: File /** Root-relative destination path (folder + possibly-renamed file name). */ targetPath: string diff --git a/plugins/code-server/package.json b/plugins/code-server/package.json index 92fec0a8..8dc99c01 100644 --- a/plugins/code-server/package.json +++ b/plugins/code-server/package.json @@ -72,13 +72,11 @@ "@vitejs/plugin-vue": "catalog:build", "colorjs.io": "catalog:frontend", "devframe": "workspace:*", - "h3": "catalog:deps", "storybook": "catalog:storybook", "tsdown": "catalog:build", "unocss": "catalog:frontend", "vite": "catalog:build", "vitest": "catalog:testing", - "vue": "catalog:frontend", - "ws": "catalog:deps" + "vue": "catalog:frontend" } } diff --git a/plugins/code-server/test/_utils.ts b/plugins/code-server/test/_utils.ts index 5709aa25..d7549235 100644 --- a/plugins/code-server/test/_utils.ts +++ b/plugins/code-server/test/_utils.ts @@ -8,7 +8,7 @@ import process from 'node:process' import { createHostContext } from 'devframe/node' /** Minimal in-memory host — enough to drive RPC + shared state in tests. */ -export function createTestHost(): DevframeHost { +function createTestHost(): DevframeHost { return { mountStatic: () => {}, resolveOrigin: () => 'http://127.0.0.1', diff --git a/plugins/data-inspector/package.json b/plugins/data-inspector/package.json index 01c1d20f..2fb8c09c 100644 --- a/plugins/data-inspector/package.json +++ b/plugins/data-inspector/package.json @@ -72,6 +72,7 @@ "@storybook/vue3-vite": "catalog:storybook", "@types/codemirror": "catalog:types", "@vitejs/plugin-vue": "catalog:build", + "@vueuse/core": "catalog:frontend", "devframe": "workspace:*", "dompurify": "catalog:frontend", "floating-vue": "catalog:frontend", diff --git a/plugins/data-inspector/src/node/files.ts b/plugins/data-inspector/src/node/files.ts index 0f99bb32..e7e8c046 100644 --- a/plugins/data-inspector/src/node/files.ts +++ b/plugins/data-inspector/src/node/files.ts @@ -9,7 +9,7 @@ import { basename, extname, resolve } from 'node:path' import process from 'node:process' import { diagnostics } from './diagnostics' -export const SUPPORTED_DATA_EXTENSIONS = ['.json', '.jsonl', '.ndjson'] as const +const SUPPORTED_DATA_EXTENSIONS = ['.json', '.jsonl', '.ndjson'] as const /** Parse a data file into the value a source exposes. */ export async function loadDataFile(filepath: string): Promise { diff --git a/plugins/data-inspector/src/spa/composables/display-transform.ts b/plugins/data-inspector/src/spa/composables/display-transform.ts index 32a10400..c1a30683 100644 --- a/plugins/data-inspector/src/spa/composables/display-transform.ts +++ b/plugins/data-inspector/src/spa/composables/display-transform.ts @@ -29,10 +29,10 @@ export interface DisplayBadge { } /** href scheme used by the lazy-expand link badge on depth-truncation markers. */ -export const EXPAND_HREF_PREFIX = 'di-expand:' +const EXPAND_HREF_PREFIX = 'di-expand:' /** href scheme used by the edit link badge on writable-source nodes. */ -export const EDIT_HREF_PREFIX = 'di-edit:' +const EDIT_HREF_PREFIX = 'di-edit:' /** Encode a node path into the edit link href. */ export function encodeEditHref(path: NodePath): string { @@ -52,7 +52,7 @@ export function decodeEditHref(href: string): NodePath | null { } /** Encode a node path into the lazy-expand link href. */ -export function encodeExpandHref(path: NodePath): string { +function encodeExpandHref(path: NodePath): string { return EXPAND_HREF_PREFIX + encodeURIComponent(JSON.stringify(path)) } diff --git a/plugins/data-inspector/src/spa/composables/saved.ts b/plugins/data-inspector/src/spa/composables/saved.ts index 60d9068f..6cf0c6d3 100644 --- a/plugins/data-inspector/src/spa/composables/saved.ts +++ b/plugins/data-inspector/src/spa/composables/saved.ts @@ -23,5 +23,3 @@ export function useSavedQueries() { return { saved, refresh, save, remove } } - -export type SavedQueriesApi = ReturnType diff --git a/plugins/git/package.json b/plugins/git/package.json index c1e5dad0..d09f3268 100644 --- a/plugins/git/package.json +++ b/plugins/git/package.json @@ -57,9 +57,7 @@ "@iconify-json/catppuccin": "catalog:frontend", "@pierre/diffs": "catalog:frontend", "@radix-ui/react-scroll-area": "catalog:frontend", - "@radix-ui/react-separator": "catalog:frontend", "@radix-ui/react-slot": "catalog:frontend", - "@radix-ui/react-tabs": "catalog:frontend", "@storybook/addon-a11y": "catalog:storybook", "@storybook/addon-docs": "catalog:storybook", "@storybook/react-vite": "catalog:storybook", @@ -67,7 +65,6 @@ "@types/react-dom": "catalog:types", "@unocss/postcss": "catalog:frontend", "@vitejs/plugin-react-oxc": "catalog:storybook", - "class-variance-authority": "catalog:frontend", "clsx": "catalog:frontend", "colorjs.io": "catalog:frontend", "get-port-please": "catalog:deps", diff --git a/plugins/git/src/client/components/ui/card.tsx b/plugins/git/src/client/components/ui/card.tsx deleted file mode 100644 index a08ad065..00000000 --- a/plugins/git/src/client/components/ui/card.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import * as React from 'react' -import { card } from '../../lib/design' -import { cn } from '../../lib/utils' - -function Card({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardAction({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } diff --git a/plugins/git/src/client/components/ui/scroll-area.tsx b/plugins/git/src/client/components/ui/scroll-area.tsx index b63888a7..ce018f16 100644 --- a/plugins/git/src/client/components/ui/scroll-area.tsx +++ b/plugins/git/src/client/components/ui/scroll-area.tsx @@ -52,4 +52,4 @@ function ScrollBar({ ) } -export { ScrollArea, ScrollBar } +export { ScrollArea } diff --git a/plugins/git/src/client/components/ui/separator.tsx b/plugins/git/src/client/components/ui/separator.tsx deleted file mode 100644 index fbf5e3f4..00000000 --- a/plugins/git/src/client/components/ui/separator.tsx +++ /dev/null @@ -1,27 +0,0 @@ -'use client' - -import * as SeparatorPrimitive from '@radix-ui/react-separator' -import * as React from 'react' -import { cn } from '../../lib/utils' - -function Separator({ - className, - orientation = 'horizontal', - decorative = true, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -export { Separator } diff --git a/plugins/git/src/client/components/ui/status-mark.tsx b/plugins/git/src/client/components/ui/status-mark.tsx index 42724c6a..55f66f74 100644 --- a/plugins/git/src/client/components/ui/status-mark.tsx +++ b/plugins/git/src/client/components/ui/status-mark.tsx @@ -27,10 +27,6 @@ const STATUS_COLOR: Record = { 'unknown': 'color-muted', } -export function statusLabel(code: FileStatusCode): string { - return STATUS_LABEL[code] -} - export function StatusMark({ code, className }: { code: FileStatusCode, className?: string }) { return ( ) { - return ( - - ) -} - -function TabsList({ className, ...props }: React.ComponentProps) { - return ( - - ) -} - -function TabsTrigger({ className, ...props }: React.ComponentProps) { - return ( - - ) -} - -function TabsContent({ className, ...props }: React.ComponentProps) { - return ( - - ) -} - -export { Tabs, TabsContent, TabsList, TabsTrigger } diff --git a/plugins/git/src/client/lib/commit-graph.ts b/plugins/git/src/client/lib/commit-graph.ts index c2eb79b4..9c32140a 100644 --- a/plugins/git/src/client/lib/commit-graph.ts +++ b/plugins/git/src/client/lib/commit-graph.ts @@ -8,7 +8,7 @@ export interface GraphInput { parents: string[] } -export interface GraphLink { +interface GraphLink { /** Column at the top of the half. */ from: number /** Column at the bottom of the half. */ @@ -36,7 +36,7 @@ export interface CommitGraph { // Lane palette tuned to read clearly in both themes: a blue leads (the mainline // / current branch tends to land in lane 0), then warm tones — orange, red — // pick up branches as they fan out, so adjacent lanes stay distinct. -export const GRAPH_COLORS = [ +const GRAPH_COLORS = [ '#3b82f6', // blue '#f59e0b', // amber / orange '#ef4444', // red diff --git a/plugins/git/src/client/postcss.config.mjs b/plugins/git/src/client/postcss.config.mjs index 8cf7cb4b..f8c04943 100644 --- a/plugins/git/src/client/postcss.config.mjs +++ b/plugins/git/src/client/postcss.config.mjs @@ -1,4 +1,3 @@ -/** @type {import('postcss-load-config').Config} */ export default { plugins: { '@unocss/postcss': {}, diff --git a/plugins/git/src/rpc/functions/status.ts b/plugins/git/src/rpc/functions/status.ts index e99dcbb6..2088b286 100644 --- a/plugins/git/src/rpc/functions/status.ts +++ b/plugins/git/src/rpc/functions/status.ts @@ -41,7 +41,7 @@ export interface GitStatus { canWrite: boolean } -export const EMPTY_STATUS: GitStatus = { +const EMPTY_STATUS: GitStatus = { isRepo: false, root: null, branch: null, diff --git a/plugins/git/src/rpc/index.ts b/plugins/git/src/rpc/index.ts index 45295ae8..0a3c4ffd 100644 --- a/plugins/git/src/rpc/index.ts +++ b/plugins/git/src/rpc/index.ts @@ -14,8 +14,6 @@ export const readFunctions = [status, log, show, branches, diff] as const /** Mutating RPC — registered only when write actions are enabled. */ export const writeFunctions = [stage, unstage, commit] as const -export const serverFunctions = [status, log, show, branches, diff, stage, unstage, commit] as const - declare module 'devframe' { - interface DevframeRpcServerFunctions extends RpcDefinitionsToFunctions {} + interface DevframeRpcServerFunctions extends RpcDefinitionsToFunctions<[...typeof readFunctions, ...typeof writeFunctions]> {} } diff --git a/plugins/inspect/package.json b/plugins/inspect/package.json index 22f48e75..ab233bb5 100644 --- a/plugins/inspect/package.json +++ b/plugins/inspect/package.json @@ -64,6 +64,7 @@ "@antfu/design": "catalog:frontend", "@devframes/hub": "workspace:*", "@iconify-json/ph": "catalog:frontend", + "@standard-schema/spec": "catalog:deps", "@storybook/addon-docs": "catalog:storybook", "@storybook/vue3-vite": "catalog:storybook", "@unocss/preset-icons": "catalog:frontend", diff --git a/plugins/inspect/src/spa/utils/color.ts b/plugins/inspect/src/spa/utils/color.ts index 8d85a696..793d457d 100644 --- a/plugins/inspect/src/spa/utils/color.ts +++ b/plugins/inspect/src/spa/utils/color.ts @@ -1,4 +1,4 @@ -export function getHashColorFromString( +function getHashColorFromString( name: string, opacity: number | string = 1, ) { @@ -9,7 +9,7 @@ export function getHashColorFromString( return getHsla(h, opacity) } -export function getHsla( +function getHsla( hue: number, opacity: number | string = 1, ) { diff --git a/plugins/messages/src/client/composables/useMessageFilters.ts b/plugins/messages/src/client/composables/useMessageFilters.ts index f2a9bdd3..fafc38ed 100644 --- a/plugins/messages/src/client/composables/useMessageFilters.ts +++ b/plugins/messages/src/client/composables/useMessageFilters.ts @@ -3,7 +3,7 @@ import type { MaybeRefOrGetter } from 'vue' import { computed, reactive, ref, toValue } from 'vue' import { fromEntries, levelPriority, levels } from '../components/message-styles' -export type SortMode = 'newest' | 'oldest' | 'level' +type SortMode = 'newest' | 'oldest' | 'level' const SORT_MODES: SortMode[] = ['newest', 'oldest', 'level'] diff --git a/plugins/og/src/spa/app/components/_fixtures.ts b/plugins/og/src/spa/app/components/_fixtures.ts index 18074582..cc88d2e7 100644 --- a/plugins/og/src/spa/app/components/_fixtures.ts +++ b/plugins/og/src/spa/app/components/_fixtures.ts @@ -26,7 +26,7 @@ export const sparseTags: OgHeadTag[] = [ { tag: 'meta', name: 'description', value: 'A page with only the basics filled in.' }, ] -export function snapshotFrom(tags: OgHeadTag[]): OgSnapshot { +function snapshotFrom(tags: OgHeadTag[]): OgSnapshot { return { requestedUrl: 'https://devfra.me/', url: 'https://devfra.me/', diff --git a/plugins/og/src/spa/app/utils/metadata.ts b/plugins/og/src/spa/app/utils/metadata.ts index 087df710..10f9ac8e 100644 --- a/plugins/og/src/spa/app/utils/metadata.ts +++ b/plugins/og/src/spa/app/utils/metadata.ts @@ -1,6 +1,6 @@ import type { OgHeadTag, OgSnapshot } from '../../../types' -export type Suggestion = 'optional' | 'recommended' | 'required' +type Suggestion = 'optional' | 'recommended' | 'required' export interface OgTagDefinition { name: string @@ -89,7 +89,7 @@ export const tagDefinitions: OgTagDefinition[] = [ }, ] -export function findTag(tags: OgHeadTag[], ...names: string[]): string { +function findTag(tags: OgHeadTag[], ...names: string[]): string { for (const name of names) { const value = tags.find(tag => tag.name === name)?.value if (value) diff --git a/plugins/og/test/_utils.ts b/plugins/og/test/_utils.ts index 80c32c5d..d13c6797 100644 --- a/plugins/og/test/_utils.ts +++ b/plugins/og/test/_utils.ts @@ -22,7 +22,7 @@ export async function testFetch(_url: string): Promise { }) } -export const testDevframe = createOgDevframe({ fetch: testFetch }) +const testDevframe = createOgDevframe({ fetch: testFetch }) export function assertSpaBuilt(): void { const distDir = testDevframe.cli!.distDir diff --git a/plugins/terminals/package.json b/plugins/terminals/package.json index b07e3e94..f109067a 100644 --- a/plugins/terminals/package.json +++ b/plugins/terminals/package.json @@ -61,7 +61,6 @@ "dependencies": { "cac": "catalog:deps", "nostics": "catalog:deps", - "pathe": "catalog:deps", "zigpty": "catalog:deps" }, "devDependencies": { diff --git a/plugins/terminals/src/node/backend.ts b/plugins/terminals/src/node/backend.ts index 33ff1239..4ac9a8ad 100644 --- a/plugins/terminals/src/node/backend.ts +++ b/plugins/terminals/src/node/backend.ts @@ -68,7 +68,7 @@ export async function isPtyAvailable(): Promise { * reflects which one the session got. Returns `undefined` when the module * itself is unavailable or spawning throws. */ -export async function spawnPty(options: SpawnBackendOptions): Promise { +async function spawnPty(options: SpawnBackendOptions): Promise { const zigpty = await loadZigpty() if (!zigpty) return undefined @@ -143,7 +143,7 @@ export async function spawnPty(options: SpawnBackendOptions): Promise void)[] = [] const exitCbs: ((code: number) => void)[] = [] let exited = false diff --git a/plugins/terminals/src/rpc/schemas.ts b/plugins/terminals/src/rpc/schemas.ts index d368edc3..235a1fa0 100644 --- a/plugins/terminals/src/rpc/schemas.ts +++ b/plugins/terminals/src/rpc/schemas.ts @@ -1,6 +1,6 @@ import { s } from 'devframe/utils/simple-schema' -export const terminalModeSchema = s.picklist(['interactive', 'readonly']) +const terminalModeSchema = s.picklist(['interactive', 'readonly']) export const spawnRequestSchema = s.object({ presetId: s.optional(s.string()), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9957fc33..5da908f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9 +6,6 @@ settings: catalogs: build: - '@antfu/ni': - specifier: ^30.3.0 - version: 30.3.0 '@nuxt/kit': specifier: ^4.5.0 version: 4.5.1 @@ -174,15 +171,9 @@ catalogs: '@radix-ui/react-scroll-area': specifier: ^1.2.18 version: 1.2.18 - '@radix-ui/react-separator': - specifier: ^1.1.15 - version: 1.1.15 '@radix-ui/react-slot': specifier: ^1.3.3 version: 1.3.3 - '@radix-ui/react-tabs': - specifier: ^1.1.21 - version: 1.1.21 '@sveltejs/vite-plugin-svelte': specifier: ^7.2.0 version: 7.2.0 @@ -204,9 +195,6 @@ catalogs: axe-core: specifier: ^4.12.1 version: 4.12.1 - class-variance-authority: - specifier: ^0.7.1 - version: 0.7.1 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -310,6 +298,9 @@ catalogs: eslint: specifier: ^10.8.0 version: 10.8.0 + knip: + specifier: ^6.31.0 + version: 6.31.0 nano-staged: specifier: ^1.0.2 version: 1.0.2 @@ -370,12 +361,12 @@ importers: .: devDependencies: + '@antfu/design': + specifier: catalog:frontend + version: 0.3.2(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@6.0.3)))(@unocss/core@66.7.5)(colorjs.io@0.6.1)(dompurify@3.4.12)(floating-vue@5.2.2(vue@3.5.40(typescript@6.0.3)))(playwright@1.62.0)(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.40(typescript@6.0.3)))(unocss@66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) '@antfu/eslint-config': specifier: catalog:tooling version: 9.2.0(@typescript-eslint/typescript-estree@8.65.0(supports-color@10.2.2)(typescript@6.0.3))(@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))(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))) - '@antfu/ni': - specifier: catalog:build - version: 30.3.0 '@antfu/utils': specifier: catalog:inlined version: 9.3.0 @@ -397,9 +388,15 @@ importers: eslint: specifier: catalog:tooling version: 10.8.0(jiti@2.7.0)(supports-color@10.2.2) + knip: + specifier: catalog:tooling + version: 6.31.0 nano-staged: specifier: catalog:tooling version: 1.0.2 + pathe: + specifier: catalog:deps + version: 2.0.3 prompts: specifier: catalog:tooling version: 2.4.2 @@ -409,9 +406,6 @@ importers: skills-npm: specifier: catalog:tooling version: 1.2.0 - tsdown: - specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) tsnapi: specifier: catalog:testing version: 1.2.0(vitest@4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))) @@ -540,10 +534,6 @@ importers: devframe: specifier: workspace:* version: link:../../packages/devframe - devDependencies: - get-port-please: - specifier: catalog:deps - version: 3.2.0 examples/next-devframe-hub: dependencies: @@ -659,6 +649,9 @@ importers: react-dom: specifier: catalog:frontend version: 19.2.8(react@19.2.8) + valibot: + specifier: catalog:deps + version: 1.4.2(typescript@6.0.3) devDependencies: '@types/react': specifier: catalog:types @@ -702,6 +695,9 @@ importers: preact: specifier: catalog:frontend version: 10.29.7 + valibot: + specifier: catalog:deps + version: 1.4.2(typescript@6.0.3) devDependencies: '@preact/preset-vite': specifier: catalog:build @@ -875,7 +871,7 @@ importers: version: 0.2.17 tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) ua-parser-modern: specifier: catalog:inlined version: 0.1.1 @@ -891,9 +887,6 @@ importers: packages/hub: dependencies: - birpc: - specifier: catalog:deps - version: 4.0.0 destr: specifier: catalog:deps version: 2.0.5 @@ -924,7 +917,7 @@ importers: version: 1.8.2 tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) packages/json-render: dependencies: @@ -949,17 +942,17 @@ importers: version: link:../devframe tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) packages/json-render-ui: dependencies: '@json-render/vue': specifier: catalog:frontend - version: 0.19.0(vue@3.5.40(typescript@5.9.3))(zod@4.4.3) + version: 0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) devDependencies: '@antfu/design': specifier: catalog:frontend - version: 0.3.2(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@5.9.3)))(@unocss/core@66.7.5)(colorjs.io@0.6.1)(dompurify@3.4.12)(floating-vue@5.2.2(vue@3.5.40(typescript@5.9.3)))(playwright@1.62.0)(reka-ui@2.10.1(vue@3.5.40(typescript@5.9.3)))(splitpanes@4.1.2(vue@3.5.40(typescript@5.9.3)))(unocss@66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@5.9.3)) + version: 0.3.2(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@6.0.3)))(@unocss/core@66.7.5)(colorjs.io@0.6.1)(dompurify@3.4.12)(floating-vue@5.2.2(vue@3.5.40(typescript@6.0.3)))(playwright@1.62.0)(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.40(typescript@6.0.3)))(unocss@66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) '@devframes/json-render': specifier: workspace:* version: link:../json-render @@ -971,13 +964,13 @@ importers: version: 10.5.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) '@storybook/vue3-vite': specifier: catalog:storybook - version: 10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + version: 10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@unocss/preset-icons': specifier: catalog:frontend version: 66.7.5 '@vitejs/plugin-vue': specifier: catalog:build - version: 6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + version: 6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) devframe: specifier: workspace:* version: link:../devframe @@ -986,7 +979,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@5.9.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -998,7 +991,7 @@ importers: version: 4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) vue: specifier: catalog:frontend - version: 3.5.40(typescript@5.9.3) + version: 3.5.40(typescript@6.0.3) packages/next: dependencies: @@ -1023,7 +1016,7 @@ importers: version: 19.2.8 tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) packages/nuxt: devDependencies: @@ -1041,7 +1034,7 @@ importers: version: 4.5.1(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.0(supports-color@10.2.2)))(@parcel/watcher@2.5.6)(@types/node@26.1.2)(@vue/compiler-sfc@3.5.40)(db0@0.3.4)(esbuild@0.28.0)(eslint@10.8.0(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.10.1(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(oxc-parser@0.140.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.3))(rollup@4.60.3)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.47.1)(tsx@4.23.1)(typescript@6.0.3)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(yaml@2.9.0) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) plugins/a11y: dependencies: @@ -1078,7 +1071,7 @@ importers: version: 10.6.0(esbuild@0.28.0)(rollup@4.60.3)(solid-js@1.9.14)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite-plugin-solid@2.11.14(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(supports-color@10.2.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1166,7 +1159,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1179,9 +1172,6 @@ importers: vue: specifier: catalog:frontend version: 3.5.40(typescript@6.0.3) - ws: - specifier: catalog:deps - version: 8.21.1 plugins/code-server: dependencies: @@ -1219,15 +1209,12 @@ importers: devframe: specifier: workspace:* version: link:../../packages/devframe - h3: - specifier: catalog:deps - version: 2.0.1-rc.26(crossws@0.4.10(srvx@0.12.4)) storybook: specifier: catalog:storybook version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1240,9 +1227,6 @@ importers: vue: specifier: catalog:frontend version: 3.5.40(typescript@6.0.3) - ws: - specifier: catalog:deps - version: 8.21.1 plugins/data-inspector: dependencies: @@ -1280,6 +1264,9 @@ importers: '@vitejs/plugin-vue': specifier: catalog:build version: 6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@vueuse/core': + specifier: catalog:frontend + version: 14.3.0(vue@3.5.40(typescript@6.0.3)) devframe: specifier: workspace:* version: link:../../packages/devframe @@ -1300,7 +1287,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1341,15 +1328,9 @@ importers: '@radix-ui/react-scroll-area': specifier: catalog:frontend version: 1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-separator': - specifier: catalog:frontend - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@radix-ui/react-slot': specifier: catalog:frontend version: 1.3.3(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-tabs': - specifier: catalog:frontend - version: 1.1.21(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@storybook/addon-a11y': specifier: catalog:storybook version: 10.5.5(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)) @@ -1371,9 +1352,6 @@ importers: '@vitejs/plugin-react-oxc': specifier: catalog:storybook version: 0.4.3(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) - class-variance-authority: - specifier: catalog:frontend - version: 0.7.1 clsx: specifier: catalog:frontend version: 2.1.1 @@ -1403,7 +1381,7 @@ importers: version: 3.6.0 tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1435,6 +1413,9 @@ importers: '@iconify-json/ph': specifier: catalog:frontend version: 1.2.2 + '@standard-schema/spec': + specifier: catalog:deps + version: 1.1.0 '@storybook/addon-docs': specifier: catalog:storybook version: 10.5.5(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1470,7 +1451,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1540,7 +1521,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1604,7 +1585,7 @@ importers: version: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) unocss: specifier: catalog:frontend version: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -1629,9 +1610,6 @@ importers: nostics: specifier: catalog:deps version: 1.2.0 - pathe: - specifier: catalog:deps - version: 2.0.3 zigpty: specifier: catalog:deps version: 0.2.1 @@ -1677,7 +1655,7 @@ importers: version: 5.56.8(@typescript-eslint/types@8.65.0) tsdown: specifier: catalog:build - version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3) + version: 0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3) typescript: specifier: catalog:tooling version: 6.0.3 @@ -1846,11 +1824,6 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@antfu/ni@30.3.0': - resolution: {integrity: sha512-KkYFVPA1IvC3m+WBKUuY5oxYc4OdXr83jvnlOn8a+bJM10yQMu+slFN/1pDzAw2JZVi+FYP9IYjo4KaPIccMmA==} - engines: {node: '>=20.19.0'} - hasBin: true - '@antfu/utils@9.3.0': resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} @@ -2855,6 +2828,12 @@ packages: cpu: [arm] os: [android] + '@oxc-parser/binding-android-arm-eabi@0.142.0': + resolution: {integrity: sha512-ZiRGDutGsv1G6bL/ozy/koC0Sv39T1DqyoC4KD1DOy9ZoACm1O5UWhEK2c02Qdk+4lfLVkvFa/mQ0fm/4h1BtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + '@oxc-parser/binding-android-arm64@0.127.0': resolution: {integrity: sha512-b5jtVTH6AU5CJXHNdj7Jj9IEiR9yVjjnwHzPJhGyHGPdcsZSzBCkS9GBbV33niRMvKthDwQRFRJfI4a+k4PvYg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2879,6 +2858,12 @@ packages: cpu: [arm64] os: [android] + '@oxc-parser/binding-android-arm64@0.142.0': + resolution: {integrity: sha512-WZkvGRLNQTz8lR9zP5nLjUdlroRCopBu3g9zF1p/laE6DzT1UbQo8Rdz5MWhaJUPYg/6gp+jo7HUgsyKaN1FtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@oxc-parser/binding-darwin-arm64@0.127.0': resolution: {integrity: sha512-obCE8B7ISKkJidjlhv9xRGJPOSDG2Yu6PRga9Ruaz35uintHxbp1Ki/Yc71wx4rj3Edrm0a1kzG1TAwit0wFpg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2903,6 +2888,12 @@ packages: cpu: [arm64] os: [darwin] + '@oxc-parser/binding-darwin-arm64@0.142.0': + resolution: {integrity: sha512-l4khS8LQOOVYsGRVARo1gSaCT/aBSceUVXgtovWc2+drnxVuDr082WA3OCHVdVzIz5JIrP/y9CWsSKxBDNmYGg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@oxc-parser/binding-darwin-x64@0.127.0': resolution: {integrity: sha512-JL6Xb5IwPQT8rUzlpsX7E+AgfcdNklXNPFp8pjCQQ5MQOQo5rtEB2ui+3Hgg9Sn7Y9Egj6YOLLiHhLpdAe12Aw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2927,6 +2918,12 @@ packages: cpu: [x64] os: [darwin] + '@oxc-parser/binding-darwin-x64@0.142.0': + resolution: {integrity: sha512-QBsNF3nqlXmcH2B1YOPqQYmCJoy4HuIjUxGbBO/k5JAJUl68ghU2psRY2zPk+RyBaWqKP/qfL4oaFgEMCdwskA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@oxc-parser/binding-freebsd-x64@0.127.0': resolution: {integrity: sha512-SDQ/3MQFw58fqQz3Z1PhSKFF3JoCF4gmlNjziDm8X02tTahCw0qJbd7FGPDKw1i4VTBZene9JPyC3mHtSvi+wA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2951,6 +2948,12 @@ packages: cpu: [x64] os: [freebsd] + '@oxc-parser/binding-freebsd-x64@0.142.0': + resolution: {integrity: sha512-b7Q7m4Cqc6XqNhri3R+QhU+GVy646Pn+bkdhrDdWym/Fdi0ZUa+d73H9dm5H91JtbtAQ/z1d8XKMW3oOV8a4tQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': resolution: {integrity: sha512-Av+D1MIqzV0YMGPT9we2SIZaMKD7Cxs4CvXSx/yxaWHewZjYEjScpOf5igc8IILASViw4WTnjlwUdI1KzVtDHQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2975,6 +2978,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': + resolution: {integrity: sha512-3riVS5IhdH3uCZj1Y9ftDQlR0dvLsIlw/edrRqk8JhgNd5K0XSs+UBtgh50N13CAlW9/TXj6sVGXaKNBocd0Yg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': resolution: {integrity: sha512-Cs2fdJ8cPpFdeebj6p4dag8A4+56hPvZ0AhQQzlaLswGz1tz7bXt1nETLeorrM9+AMcWFFkqxcXwDGfTVidY8g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2999,6 +3008,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': + resolution: {integrity: sha512-NmXUOpgpTSkhl795TiXmWppTwmSJ92RC1qvD6e4XOF+slgmo3e6Ah+kEu+6AN8s7NAOEwqGmir58MgSQSWmBSA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': resolution: {integrity: sha512-qdOfTcT6SY8gsJrrV92uyEUyjqMGPpIB5JZUG6QN5dukYd+7/j0kX6MwK1DgQj39jtUYixxPiaRUiEN1+0CXgQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3027,6 +3042,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-arm64-gnu@0.142.0': + resolution: {integrity: sha512-gc0EXsKtXgerujmU2Bql3u1L1HsSQ2774R83idq/FoNMPVV/RY/1ErFsvnit7KoiP/sLvzQixeUo4Ut0ic0wmw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-arm64-musl@0.127.0': resolution: {integrity: sha512-EoTCZneNFU/P2qrpEM+RHmQwt+CvDkyGESG6qhr7KaegXLZwePfbrkCDfAk8/rhxbDUVGsZILX+2tqPzFtoFWA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3055,6 +3077,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-arm64-musl@0.142.0': + resolution: {integrity: sha512-F2XvmWSE0uWpie+jHKKIFgdVOe9ypGhkEZxKx5DuW215K6cbAC274yYaPkcM7EqY4Df3Weyhpcz3lsURyH2LVg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': resolution: {integrity: sha512-zALjmZYgxFLHjXeudcDF0xFGNydTAtkAeXAr2EuC17ywCyFxcmQra4w0BMde0Yi/re4Bi4iwEoEXtYN7l6eBLQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3083,6 +3112,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': + resolution: {integrity: sha512-wLMbT21U/QxknQsk+VvNF0b9D2/aGWhcaQQQ+VYlE8FwD5+GoWZIPPXNzyHmkYyhm0KB3itL+TBavjMatqNnYA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': resolution: {integrity: sha512-fPP8M6zQLS7Jz7o9d5ArUSuAuSK3e+WCYVrCpdzeCOejidtZExJ9tjhDrAd3HEPqARBCPmdpqxESPFqy44vkBQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3111,6 +3147,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': + resolution: {integrity: sha512-+G8F/4ckwT7FCJV4H2bt09xEzJbjNCfuL4Sp1AYNaFtFMVtgIGMuJlteT82U+K0UIZ/DzAR/LDlMFnEuajG7Kw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': resolution: {integrity: sha512-7IcC4Ao02oGpfnjt+X/oF4U2mllo2qoSkw5xxiXNKL9MCTsTiAC6616beOuehdxGcnz1bRoPC1RQ2f1GQDdN+g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3139,6 +3182,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-riscv64-musl@0.142.0': + resolution: {integrity: sha512-hTsHtTLxMAfCo+rpF5K3qZJKW2NpPN/CHd4mYB3y7XlSdspHkd2gehDIofP64AacA9nWQw2tY3O7wR6UY8IVOA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': resolution: {integrity: sha512-pbXIhiNFHoqWeqDNLiJ9JkpHz1IM9k4DXa66x+1GTWMG7iLxtkXgE53iiuKSXwmk3zIYmaPVfBvgcAhS583K4Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3167,6 +3217,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-s390x-gnu@0.142.0': + resolution: {integrity: sha512-6y7qYY3TCUDYjqswImdTGl92y+KA/80twALegQPN27kfY+bG7Ib1+L3jbmrCZQx6wrVnai9IPsEZp07I0hx7JQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.127.0': resolution: {integrity: sha512-MYCguB9RvBvlSd6gbuNI7QwiLoCCAlGnlRJFPrzLI6U1/9wkC/WK6LtBAUln55H1Ctqw45PWmqrobKoMhsYQzQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3195,6 +3252,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.142.0': + resolution: {integrity: sha512-i69kAWU+2LgoH5bR+zWiiu+UzAw7Oxkwv7COeJTeY19pn4e70nKQcr9Pm6cL2Z0Z54d+gl9qADlK/0yyuCPiBA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-musl@0.127.0': resolution: {integrity: sha512-5eY0B/bxf1xIUxb4NOTvOI3KWtBQfPWYyKAzgcrCt0mDibSZygVpO1Pz8bkeiSZ5Jj9+M09dkggG3H8I5d0Uyg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3223,6 +3287,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-x64-musl@0.142.0': + resolution: {integrity: sha512-4SQs678MmjYVrmhAgCWD4o0vpaFszXw9xLX5p2Z9MMFcltxiLkA88wQjh80YHjPrXtpyZ2CWI5m+1yNKM0m2Pw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-openharmony-arm64@0.127.0': resolution: {integrity: sha512-Gld0ajrFTUXNtdw20fVBuTQx66FA75nIVg+//pPfR3sXkuABB4mTBhl3r9JNzrJpgW//qiwxf0nWXUWGJSL3UQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3247,6 +3318,12 @@ packages: cpu: [arm64] os: [openharmony] + '@oxc-parser/binding-openharmony-arm64@0.142.0': + resolution: {integrity: sha512-YHpx9N7Ln3a++Tc8rv+H7mrK1zyJQOAwCFg8LZ3lTs1T5afGWeZrLPhPT9HLnIwSjCyJqPWVMIrMxbjcmBr2oQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@oxc-parser/binding-wasm32-wasi@0.127.0': resolution: {integrity: sha512-T6KVD7rhLzFlwGRXMnxUFfkCZD8FHnb968wVXW1mXzgRFc5RNXOBY2mPPDZ77x5Ln76ltLMgtPg0cOkU1NSrEQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3267,6 +3344,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] + '@oxc-parser/binding-wasm32-wasi@0.142.0': + resolution: {integrity: sha512-3pLDyY3+oogW73RM5uehNgAiR/Xfb7fvO2Q1Z1gIqZ2+50XDVQmBVlRkHXZTU4gKnQHpwETNsYQVsJ3joVB2iA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': resolution: {integrity: sha512-Ujvw4X+LD1CCGULcsQcvb4YNVoBGqt+JHgNNzGGaCImELiZLk477ifUH53gIbE7EKd933NdTi25JWEr9K2HwXw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3291,6 +3373,12 @@ packages: cpu: [arm64] os: [win32] + '@oxc-parser/binding-win32-arm64-msvc@0.142.0': + resolution: {integrity: sha512-Had/VeVY28Oyb0K+Q4FV8KCzoBycIh93oDK6pCbya9lkzdq+ikMHMgBubsdqqlybjJmQRawCQRrnBRHyQwYvcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': resolution: {integrity: sha512-0cwxKO7KHQQQfo4Uf4B2SQrhgm+cJaP9OvFFhx52Tkg4bezsacu83GB2/In5bC415Ueeym+kXdnge/57rbSfTw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3315,6 +3403,12 @@ packages: cpu: [ia32] os: [win32] + '@oxc-parser/binding-win32-ia32-msvc@0.142.0': + resolution: {integrity: sha512-GGi3+YphVHavvgs6gum2UXoNCqzHAmPt/nXkn8ZQZstV2Q1qZD1Mn8fz/nWrDkefHQtrG/+1/XrbMxsBTo6Svw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.127.0': resolution: {integrity: sha512-rOrnSQSCbhI2kowr9XxE7m9a8oQXnBHjnS6j95LxxAnEZ0+Fz20WlRXG4ondQb+ejjt2KOsa65sE6++L6kUd+w==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3339,6 +3433,12 @@ packages: cpu: [x64] os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.142.0': + resolution: {integrity: sha512-Ny/Wv4Us1LGC/ljwNTp+Hx3r/pH15EFfeDF0p+n898gt+TtRd6C9SccHcuUhDiNTb8s5tt7jdeAMDRQZ4Vq6hg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@oxc-project/types@0.127.0': resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==} @@ -3354,109 +3454,215 @@ packages: '@oxc-project/types@0.140.0': resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} + '@oxc-project/types@0.142.0': + resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} + '@oxc-resolver/binding-android-arm-eabi@11.21.3': resolution: {integrity: sha512-eNU11A2WNizh04v3uyaJCootrHIaS0B9aHYXvAvVnPNk4xYSjMUjHnhQ6dewPN2MRYDskV85d1N0Aw0WNWhcyg==} cpu: [arm] os: [android] + '@oxc-resolver/binding-android-arm-eabi@11.24.2': + resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==} + cpu: [arm] + os: [android] + '@oxc-resolver/binding-android-arm64@11.21.3': resolution: {integrity: sha512-8Q+ZjTLvn2dIcWsrmhdrEihm7q+ag/k+mkry7Z+t0QbbHaVxXQfvH9AewyVMh/WrpEKhQ3DDgx9fYbqeCpeOEw==} cpu: [arm64] os: [android] + '@oxc-resolver/binding-android-arm64@11.24.2': + resolution: {integrity: sha512-cl4icWaZFnLdg8m6qtnh5rBMuGbxc/ptStFHLeCNwr+2cZjkjNwQu/jYRS0CHlnPecOJMpuS5M6/BH+0J/YkEg==} + cpu: [arm64] + os: [android] + '@oxc-resolver/binding-darwin-arm64@11.21.3': resolution: {integrity: sha512-wkh0qKZGHXVUDxFw3oA1TXnU2BDYY/r775oJflGeIr8uDPPoN2pk8gijQIzYRT6hoql/lg3+Tx/SaTn9e2/aGg==} cpu: [arm64] os: [darwin] + '@oxc-resolver/binding-darwin-arm64@11.24.2': + resolution: {integrity: sha512-At29QEMF6HajbQvgY8K6OXnHD1x9rad74xBEfmCB6ZqCGsdq75aK7tOYcTbOanMy8qdIBrfL3SMr3p/lfSlb9w==} + cpu: [arm64] + os: [darwin] + '@oxc-resolver/binding-darwin-x64@11.21.3': resolution: {integrity: sha512-HbNc23FAQYbuyDV2vBWMez4u4mrsm5RAkniGZAWqr6lYZ3N4beeqIb776jzwRl8qL2zRhHVXpUj97X0QgogVzg==} cpu: [x64] os: [darwin] + '@oxc-resolver/binding-darwin-x64@11.24.2': + resolution: {integrity: sha512-A5Kqr1EUj4oIL5CF4WRssq/o5P0Y11cwoFouMRmQ7YnC/A8V93nv1nb7aSU8HwcgmXropjLNkVTl4MN87cu28Q==} + cpu: [x64] + os: [darwin] + '@oxc-resolver/binding-freebsd-x64@11.21.3': resolution: {integrity: sha512-K6xNsTUPEUdfrn0+kbMq5nOUB5w1C5pavPQngt4TM2FpN91lP0PBe2srSpamb4d69O7h86oAi/qWX/kZNRSjkw==} cpu: [x64] os: [freebsd] + '@oxc-resolver/binding-freebsd-x64@11.24.2': + resolution: {integrity: sha512-R5xkRBRRz7ceH/P5Jrc6G7FmdUdgpLYyESFAUDVTNQ9K0sGPxcp4ljiwEwEqsvNcQ4sYbMRrWcHHBCu7ksAJVw==} + cpu: [x64] + os: [freebsd] + '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.3': resolution: {integrity: sha512-VcFmOpcpWX1zoEy8M58tR2M9YxM+Z9RuQhqAx5q0CTmrruaP7Gveejg75hzd/5sg5nk9G3aLALEa3hE2FsmmTQ==} cpu: [arm] os: [linux] + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': + resolution: {integrity: sha512-k/RuYL4L/R58IBn3wT5ma3Wh4k62bp1eYCFRWCmMsasUOqL+H6sW0VGFadEzKWXFFlz+2uIMoeMk9ySSZJHgbg==} + cpu: [arm] + os: [linux] + '@oxc-resolver/binding-linux-arm-musleabihf@11.21.3': resolution: {integrity: sha512-quVoxFLBy43hWaQbbDtQNRwAX5vX76mv7n64icAtQcJ3eNgVeblqmkupF/hAneNthdqSlnd1sTjb3aQSaDPaCQ==} cpu: [arm] os: [linux] + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': + resolution: {integrity: sha512-bnHAak3ujYfH5pKk4NieFNbvYvernfoQDgwLddbZ3OtMYrem87/qjlA+u+aKG0oZcqSLGCful/6/CEA+aeAgaA==} + cpu: [arm] + os: [linux] + '@oxc-resolver/binding-linux-arm64-gnu@11.21.3': resolution: {integrity: sha512-X0AqNZgcD07Q4V3RDK18/vYOj/HQT/FnmEFGYS2jTWqY7JO13ryE3TEs3eAIgUJhBnNkpEaiXqz3VK8M7qQhWQ==} cpu: [arm64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': + resolution: {integrity: sha512-vDT3KHgzYp47gmtNOqL2VNhCyl5Zv643eyxm//A68J8DeUGXrvD1pZFiaT4jSfe+RInfnn1R2yVHye4enx6RnA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-arm64-musl@11.21.3': resolution: {integrity: sha512-YkaQnaKYdbuaXvRt5Qd0GpbihzVnyfR6z1SpYfIUC6RTu4NF7lDKPjVkYb+jRI2gedVO2rVpN35Y6akG6ud4Lw==} cpu: [arm64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': + resolution: {integrity: sha512-+kMlQvbzfyEYtu5FcjE4p+ttBLpKW4d/AsAsuE69BxV6V4twZJeIQZFfD8gh/wqglY0MkPSezWXQH0jBV13MUw==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-resolver/binding-linux-ppc64-gnu@11.21.3': resolution: {integrity: sha512-gB9HwhrPiFqUzDeEq+y/CgAijz1YdI6BnXz5GaH2Pa9cWdutchlkGFAiAuGb/PjVQpiK6NFKzFuztxrweoit7A==} cpu: [ppc64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': + resolution: {integrity: sha512-shjfMhmZ3gq9fv/w7bi3PnZlgOPG+2QAOFf0BJF0EgBSIGZ6PMLN2zbGEblTUYB/NKVDRyYhE2ff3dJ1QqNPkA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-gnu@11.21.3': resolution: {integrity: sha512-zjDWBlYk8QGv0H8dsPUWqkfjYIIjG2TvspGkzXL0eImbgxtZorA/klKeHyolevoT3Kvbi+1iMr9Lhrh7jf54Og==} cpu: [riscv64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': + resolution: {integrity: sha512-zGelwFR5oRo+b69k8Lrzun86DyUHzfKN6cnjbR9l7Z7NIRznOE/2ZvPa1IUKqAL2PzAXOdwkfVqNvO1H2RlpAw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-riscv64-musl@11.21.3': resolution: {integrity: sha512-4UfsQvacV388y1zpXL7C1x1FNYaV52JtuNRiuzrfQA2z1z6ElVrsidkGsrvQ5EgeSq1Pj7kaKqrgGkvFuxJ/tw==} cpu: [riscv64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': + resolution: {integrity: sha512-qxZ1SWCXJY0eyhAlP6Lmo9F2Nrtx7EkYj9oCgL8apDPCwXwCEDA2U697bbT81JIc2IrVjxO4KX6WU2N+oN9Z4w==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@oxc-resolver/binding-linux-s390x-gnu@11.21.3': resolution: {integrity: sha512-b5uH+HKH0MP5mNBYaK75SKsJbw52URqrx2LavYdq6wb0l3ExAG5niYRP9DWUNHdKilpaBVM2bXk9HNWrH3ew7Q==} cpu: [s390x] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': + resolution: {integrity: sha512-sGCecF3cx2DFlH4t/z7ApnOnXqN48p5p5mlHDEnHTAukQa2P+qMVE4CwyWE9W+q/m3QJ7kKfGrIjax31f44oFQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-x64-gnu@11.21.3': resolution: {integrity: sha512-PjYlmilBpNRh2ntXNYAK3Am5w/nPfEpnU/96iNx7CI8EzAn12J4JRiec63wHJTH31nLoCNxBg/829pN+3CfG3Q==} cpu: [x64] os: [linux] libc: [glibc] + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': + resolution: {integrity: sha512-k/VlMMcSzMlahb3/fENM4rTlsJ0s3fFROA0KXPBmKggqmTSaE383sl8F3KCOXPLmVsYfW6hCitMhXCEtNeZxxg==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-resolver/binding-linux-x64-musl@11.21.3': resolution: {integrity: sha512-QTBAb7JuHlZ7JUEyM8UiQi2f7m/L4swBhP2TNpYIDc9Wp/wRw1G/8sl6i13aIzQAXH7LKIm294LeOHd0lQR8zA==} cpu: [x64] os: [linux] libc: [musl] + '@oxc-resolver/binding-linux-x64-musl@11.24.2': + resolution: {integrity: sha512-8hbnZyNi97b/8wapYaIF9+t9GmZKBW2vunaOc3h9HGJptH7b7XpvZqOTBSm/MpTjr7H497BlgOaSfLUdhmy2bw==} + cpu: [x64] + os: [linux] + libc: [musl] + '@oxc-resolver/binding-openharmony-arm64@11.21.3': resolution: {integrity: sha512-4j1DFwjwv36ec9kds0jU/ucQ5Ha4ERO/H95BxR5JFf0kqUUAJ1kwII7XhTc1vZrkdJkvLGC9Q2MbpObpum8RBg==} cpu: [arm64] os: [openharmony] + '@oxc-resolver/binding-openharmony-arm64@11.24.2': + resolution: {integrity: sha512-MvyGik3a6pVgZ0t/kWlbmFxFLmXQJwgLsY2eYFHLpy0wGwRbfzeIGgDwQ3kXqE30z+kSXennRkCrT7TUvkptNg==} + cpu: [arm64] + os: [openharmony] + '@oxc-resolver/binding-wasm32-wasi@11.21.3': resolution: {integrity: sha512-i8oluoel5kru/j1WNrjmQSiA3GQ7wvIYVR1IwIoZtKogAhya2iub+ZKIeSIkcJOrnzQ18Tzl/F+kL3fYOxZLvA==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@oxc-resolver/binding-wasm32-wasi@11.24.2': + resolution: {integrity: sha512-vHcssMPwO08RTvj/c0iOBz90attxyG3wQJ0dTcyEQK43LRpcdLWZlV5feBhv6Isn6ahbQIzHbCgfa81+RiML0Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-resolver/binding-win32-arm64-msvc@11.21.3': resolution: {integrity: sha512-M/8dw8dD6aOs+NlPJax401CZB9I7Aut84isQLgALGGwke4Afvw+/7yYhZb94yXf6t2sPLhQLmSmtSV+2FhsOWg==} cpu: [arm64] os: [win32] + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': + resolution: {integrity: sha512-uokJqro2iBqkFvJdKQLP7d8/BUmFwESQFVmIJUQKj1Xn1a/LysJoe1vmeECLF5b3jsV8CAL5sEMJXX6SdK9Nhg==} + cpu: [arm64] + os: [win32] + '@oxc-resolver/binding-win32-x64-msvc@11.21.3': resolution: {integrity: sha512-H7BCt/VnS9hnmMp42eGhZ99izSCRvlnWwy/N71K1/J8QoExwY4262Z8QiEkMDtduRJrztayDxETTckmUuAVL9Q==} cpu: [x64] os: [win32] + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': + resolution: {integrity: sha512-UqGPmo56KDfLlfXFAFIrNflHT8tFxWGEivWg3Zeyp4Uy2NlKN1FGPr6/BxcLGG3+kZ6Wp14g5Uj+n71boqZfiw==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -3638,19 +3844,6 @@ packages: '@radix-ui/primitive@1.1.7': resolution: {integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==} - '@radix-ui/react-collection@1.1.15': - resolution: {integrity: sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-compose-refs@1.1.5': resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==} peerDependencies: @@ -3678,15 +3871,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-id@1.1.4': - resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-presence@1.1.10': resolution: {integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==} peerDependencies: @@ -3713,19 +3897,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.19': - resolution: {integrity: sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-scroll-area@1.2.18': resolution: {integrity: sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==} peerDependencies: @@ -3739,19 +3910,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.15': - resolution: {integrity: sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-slot@1.3.3': resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==} peerDependencies: @@ -3761,19 +3919,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-tabs@1.1.21': - resolution: {integrity: sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-use-callback-ref@1.1.4': resolution: {integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==} peerDependencies: @@ -3783,33 +3928,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.2.6': - resolution: {integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-effect-event@0.0.5': - resolution: {integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-is-hydrated@0.1.3': - resolution: {integrity: sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-layout-effect@1.1.4': resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==} peerDependencies: @@ -5562,9 +5680,6 @@ packages: citty@0.2.2: resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -6456,6 +6571,9 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -6514,6 +6632,11 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} @@ -6986,6 +7109,11 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + knip@6.31.0: + resolution: {integrity: sha512-NbeIEmUS2VUMjAkbiSNOKPJeV9wpCsr0660sUyKyMQbk4Iom0++nTLInVp4MJ+LfR4kORnw67bDi5tvO7YLnzA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + knitwork@1.3.0: resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} @@ -7610,9 +7738,16 @@ packages: resolution: {integrity: sha512-h6QFWd6lBMfjESqgQ27GjzrSDb0qbznp7VDQqp2zvgsrWut4vcchyMIzOVXvGQ2GMZgKw9RWrFNWv9WqGL0p7Q==} engines: {node: ^20.19.0 || >=22.12.0} + oxc-parser@0.142.0: + resolution: {integrity: sha512-kKR+jPiRJYJDexVoziIg/FVGvr1fT1FZSSJOk6tVoMKKSlsf1Cso+cgGCJkOEDWOP174vRntCPFKg+AS7InWvw==} + engines: {node: ^20.19.0 || >=22.12.0} + oxc-resolver@11.21.3: resolution: {integrity: sha512-2Mx3fKQz7+xgrBONjsxOgCGtMHOn38/HxMzW1I5efwXB5a4lRN0Vp40gYUJFBWJslcrvwoofTrqoTnLbwTd3pA==} + oxc-resolver@11.24.2: + resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} + oxc-walker@0.7.0: resolution: {integrity: sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==} peerDependencies: @@ -8344,6 +8479,10 @@ packages: resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} engines: {node: '>=20.0.0'} + smol-toml@1.7.1: + resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==} + engines: {node: '>= 18'} + solid-js@1.9.14: resolution: {integrity: sha512-sAEXC0Kk0S1EDg+8ysEWJDbYhA3RRoEjwuySUGlKIemeo0I5YZfOyumNjNs9Sv3y2nmhD+0rW66ag2HsMuQiGQ==} @@ -8496,6 +8635,10 @@ packages: resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -8761,6 +8904,10 @@ packages: ultrahtml@1.7.0: resolution: {integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==} + unbash@4.0.4: + resolution: {integrity: sha512-60m9IVGbavD6jholbxt0jVBXZkEB/HsMZq7Tyaghseve2/Sf0zQRAIfWsD34sde+DKP2tBxJS2wP88ZM0D1FhA==} + engines: {node: '>=14'} + unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} @@ -9301,6 +9448,10 @@ packages: typescript: optional: true + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + web-worker@1.5.0: resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} @@ -9450,23 +9601,6 @@ snapshots: '@adobe/css-tools@4.5.0': {} - '@antfu/design@0.3.2(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@5.9.3)))(@unocss/core@66.7.5)(colorjs.io@0.6.1)(dompurify@3.4.12)(floating-vue@5.2.2(vue@3.5.40(typescript@5.9.3)))(playwright@1.62.0)(reka-ui@2.10.1(vue@3.5.40(typescript@5.9.3)))(splitpanes@4.1.2(vue@3.5.40(typescript@5.9.3)))(unocss@66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@vueuse/core': 14.3.0(vue@3.5.40(typescript@5.9.3)) - unocss: 66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) - vue: 3.5.40(typescript@5.9.3) - optionalDependencies: - '@antfu/utils': 9.3.0 - '@iconify-json/catppuccin': 1.2.17 - '@tanstack/vue-virtual': 3.13.30(vue@3.5.40(typescript@5.9.3)) - '@unocss/core': 66.7.5 - colorjs.io: 0.6.1 - dompurify: 3.4.12 - floating-vue: 5.2.2(vue@3.5.40(typescript@5.9.3)) - playwright: 1.62.0 - reka-ui: 2.10.1(vue@3.5.40(typescript@5.9.3)) - splitpanes: 4.1.2(vue@3.5.40(typescript@5.9.3)) - '@antfu/design@0.3.2(@antfu/utils@9.3.0)(@iconify-json/catppuccin@1.2.17)(@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@6.0.3)))(@unocss/core@66.7.5)(colorjs.io@0.6.1)(dompurify@3.4.12)(floating-vue@5.2.2(vue@3.5.40(typescript@6.0.3)))(playwright@1.62.0)(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(splitpanes@4.1.2(vue@3.5.40(typescript@6.0.3)))(unocss@66.7.5(@unocss/postcss@66.7.5(postcss@8.5.23))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3))': dependencies: '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) @@ -9556,13 +9690,6 @@ snapshots: package-manager-detector: 1.8.0 tinyexec: 1.2.4 - '@antfu/ni@30.3.0': - dependencies: - fzf: 0.5.2 - package-manager-detector: 1.8.0 - tinyexec: 1.2.4 - tinyglobby: 0.2.17 - '@antfu/utils@9.3.0': {} '@babel/code-frame@7.29.7': @@ -10128,16 +10255,6 @@ snapshots: '@floating-ui/utils@0.2.12': {} - '@floating-ui/vue@1.1.11(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@floating-ui/dom': 1.8.0 - '@floating-ui/utils': 0.2.12 - vue-demi: 0.14.10(vue@3.5.40(typescript@5.9.3)) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - optional: true - '@floating-ui/vue@1.1.11(vue@3.5.40(typescript@6.0.3))': dependencies: '@floating-ui/dom': 1.8.0 @@ -10346,10 +10463,10 @@ snapshots: transitivePeerDependencies: - zod - '@json-render/vue@0.19.0(vue@3.5.40(typescript@5.9.3))(zod@4.4.3)': + '@json-render/vue@0.19.0(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': dependencies: '@json-render/core': 0.19.0(zod@4.4.3) - vue: 3.5.40(typescript@5.9.3) + vue: 3.5.40(typescript@6.0.3) zod: 4.4.3 '@kwsites/file-exists@1.1.1(supports-color@10.2.2)': @@ -10853,6 +10970,9 @@ snapshots: '@oxc-parser/binding-android-arm-eabi@0.140.0': optional: true + '@oxc-parser/binding-android-arm-eabi@0.142.0': + optional: true + '@oxc-parser/binding-android-arm64@0.127.0': optional: true @@ -10865,6 +10985,9 @@ snapshots: '@oxc-parser/binding-android-arm64@0.140.0': optional: true + '@oxc-parser/binding-android-arm64@0.142.0': + optional: true + '@oxc-parser/binding-darwin-arm64@0.127.0': optional: true @@ -10877,6 +11000,9 @@ snapshots: '@oxc-parser/binding-darwin-arm64@0.140.0': optional: true + '@oxc-parser/binding-darwin-arm64@0.142.0': + optional: true + '@oxc-parser/binding-darwin-x64@0.127.0': optional: true @@ -10889,6 +11015,9 @@ snapshots: '@oxc-parser/binding-darwin-x64@0.140.0': optional: true + '@oxc-parser/binding-darwin-x64@0.142.0': + optional: true + '@oxc-parser/binding-freebsd-x64@0.127.0': optional: true @@ -10901,6 +11030,9 @@ snapshots: '@oxc-parser/binding-freebsd-x64@0.140.0': optional: true + '@oxc-parser/binding-freebsd-x64@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.127.0': optional: true @@ -10913,6 +11045,9 @@ snapshots: '@oxc-parser/binding-linux-arm-gnueabihf@0.140.0': optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.127.0': optional: true @@ -10925,6 +11060,9 @@ snapshots: '@oxc-parser/binding-linux-arm-musleabihf@0.140.0': optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.127.0': optional: true @@ -10937,6 +11075,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm64-musl@0.127.0': optional: true @@ -10949,6 +11090,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-musl@0.140.0': optional: true + '@oxc-parser/binding-linux-arm64-musl@0.142.0': + optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.127.0': optional: true @@ -10961,6 +11105,9 @@ snapshots: '@oxc-parser/binding-linux-ppc64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.127.0': optional: true @@ -10973,6 +11120,9 @@ snapshots: '@oxc-parser/binding-linux-riscv64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-riscv64-musl@0.127.0': optional: true @@ -10985,6 +11135,9 @@ snapshots: '@oxc-parser/binding-linux-riscv64-musl@0.140.0': optional: true + '@oxc-parser/binding-linux-riscv64-musl@0.142.0': + optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.127.0': optional: true @@ -10997,6 +11150,9 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-x64-gnu@0.127.0': optional: true @@ -11009,6 +11165,9 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-x64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-x64-musl@0.127.0': optional: true @@ -11021,6 +11180,9 @@ snapshots: '@oxc-parser/binding-linux-x64-musl@0.140.0': optional: true + '@oxc-parser/binding-linux-x64-musl@0.142.0': + optional: true + '@oxc-parser/binding-openharmony-arm64@0.127.0': optional: true @@ -11033,6 +11195,9 @@ snapshots: '@oxc-parser/binding-openharmony-arm64@0.140.0': optional: true + '@oxc-parser/binding-openharmony-arm64@0.142.0': + optional: true + '@oxc-parser/binding-wasm32-wasi@0.127.0': dependencies: '@emnapi/core': 1.9.2 @@ -11061,6 +11226,13 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true + '@oxc-parser/binding-wasm32-wasi@0.142.0': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': optional: true @@ -11073,6 +11245,9 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc@0.140.0': optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.142.0': + optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': optional: true @@ -11085,6 +11260,9 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc@0.140.0': optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.142.0': + optional: true + '@oxc-parser/binding-win32-x64-msvc@0.127.0': optional: true @@ -11097,6 +11275,9 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.140.0': optional: true + '@oxc-parser/binding-win32-x64-msvc@0.142.0': + optional: true + '@oxc-project/types@0.127.0': {} '@oxc-project/types@0.131.0': {} @@ -11107,54 +11288,104 @@ snapshots: '@oxc-project/types@0.140.0': {} + '@oxc-project/types@0.142.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.21.3': optional: true + '@oxc-resolver/binding-android-arm-eabi@11.24.2': + optional: true + '@oxc-resolver/binding-android-arm64@11.21.3': optional: true + '@oxc-resolver/binding-android-arm64@11.24.2': + optional: true + '@oxc-resolver/binding-darwin-arm64@11.21.3': optional: true + '@oxc-resolver/binding-darwin-arm64@11.24.2': + optional: true + '@oxc-resolver/binding-darwin-x64@11.21.3': optional: true + '@oxc-resolver/binding-darwin-x64@11.24.2': + optional: true + '@oxc-resolver/binding-freebsd-x64@11.21.3': optional: true + '@oxc-resolver/binding-freebsd-x64@11.24.2': + optional: true + '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.3': optional: true + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': + optional: true + '@oxc-resolver/binding-linux-arm-musleabihf@11.21.3': optional: true + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': + optional: true + '@oxc-resolver/binding-linux-arm64-gnu@11.21.3': optional: true + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': + optional: true + '@oxc-resolver/binding-linux-arm64-musl@11.21.3': optional: true + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': + optional: true + '@oxc-resolver/binding-linux-ppc64-gnu@11.21.3': optional: true + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': + optional: true + '@oxc-resolver/binding-linux-riscv64-gnu@11.21.3': optional: true + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': + optional: true + '@oxc-resolver/binding-linux-riscv64-musl@11.21.3': optional: true + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': + optional: true + '@oxc-resolver/binding-linux-s390x-gnu@11.21.3': optional: true + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': + optional: true + '@oxc-resolver/binding-linux-x64-gnu@11.21.3': optional: true + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': + optional: true + '@oxc-resolver/binding-linux-x64-musl@11.21.3': optional: true + '@oxc-resolver/binding-linux-x64-musl@11.24.2': + optional: true + '@oxc-resolver/binding-openharmony-arm64@11.21.3': optional: true + '@oxc-resolver/binding-openharmony-arm64@11.24.2': + optional: true + '@oxc-resolver/binding-wasm32-wasi@11.21.3': dependencies: '@emnapi/core': 1.11.0 @@ -11162,12 +11393,25 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) optional: true + '@oxc-resolver/binding-wasm32-wasi@11.24.2': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + optional: true + '@oxc-resolver/binding-win32-arm64-msvc@11.21.3': optional: true + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': + optional: true + '@oxc-resolver/binding-win32-x64-msvc@11.21.3': optional: true + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': + optional: true + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -11327,18 +11571,6 @@ snapshots: '@radix-ui/primitive@1.1.7': {} - '@radix-ui/react-collection@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-slot': 1.3.3(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.8)': dependencies: react: 19.2.8 @@ -11357,13 +11589,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-id@1.1.4(@types/react@19.2.17)(react@19.2.8)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 - '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) @@ -11382,25 +11607,6 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-scroll-area@1.2.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@radix-ui/number': 1.1.3 @@ -11418,15 +11624,6 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-separator@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.8)': dependencies: '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.17)(react@19.2.8) @@ -11434,50 +11631,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-context': 1.2.2(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-direction': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-id': 1.1.4(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - react-dom: 19.2.8(react@19.2.8) - optionalDependencies: - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: react: 19.2.8 optionalDependencies: '@types/react': 19.2.17 - '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.17)(react@19.2.8)': - dependencies: - '@radix-ui/primitive': 1.1.7 - '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.17)(react@19.2.8) - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.17)(react@19.2.8)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.17)(react@19.2.8) - react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 - - '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.2.17)(react@19.2.8)': - dependencies: - react: 19.2.8 - optionalDependencies: - '@types/react': 19.2.17 - '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.17)(react@19.2.8)': dependencies: react: 19.2.8 @@ -11915,22 +12074,6 @@ snapshots: ts-dedent: 2.2.0 type-fest: 5.6.0 - '@storybook/vue3-vite@10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@storybook/builder-vite': 10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) - '@storybook/vue3': 10.5.5(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vue@3.5.40(typescript@5.9.3)) - magic-string: 0.30.21 - storybook: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - typescript: 5.9.3 - vite: 8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0) - vue-component-meta: 3.3.7(typescript@5.9.3) - vue-docgen-api: 4.79.2(vue@3.5.40(typescript@5.9.3)) - transitivePeerDependencies: - - esbuild - - rollup - - vue - - webpack - '@storybook/vue3-vite@10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: '@storybook/builder-vite': 10.5.5(esbuild@0.28.0)(rollup@4.60.3)(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0)) @@ -11947,14 +12090,6 @@ snapshots: - vue - webpack - '@storybook/vue3@10.5.5(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - type-fest: 5.6.0 - vue: 3.5.40(typescript@5.9.3) - vue-component-type-helpers: 3.3.5 - '@storybook/vue3@10.5.5(storybook@10.5.5(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(vue@3.5.40(typescript@6.0.3))': dependencies: '@storybook/global': 5.0.0 @@ -11992,12 +12127,6 @@ snapshots: '@tanstack/virtual-core@3.17.2': {} - '@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@tanstack/virtual-core': 3.17.2 - vue: 3.5.40(typescript@5.9.3) - optional: true - '@tanstack/vue-virtual@3.13.30(vue@3.5.40(typescript@6.0.3))': dependencies: '@tanstack/virtual-core': 3.17.2 @@ -12603,12 +12732,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@rolldown/pluginutils': 1.0.1 - vite: 8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.40(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.47.1)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 @@ -12824,13 +12947,6 @@ snapshots: '@vue/shared@3.5.40': {} - '@vueuse/core@14.3.0(vue@3.5.40(typescript@5.9.3))': - dependencies: - '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 14.3.0 - '@vueuse/shared': 14.3.0(vue@3.5.40(typescript@5.9.3)) - vue: 3.5.40(typescript@5.9.3) - '@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))': dependencies: '@types/web-bluetooth': 0.0.21 @@ -12850,10 +12966,6 @@ snapshots: '@vueuse/metadata@14.3.0': {} - '@vueuse/shared@14.3.0(vue@3.5.40(typescript@5.9.3))': - dependencies: - vue: 3.5.40(typescript@5.9.3) - '@vueuse/shared@14.3.0(vue@3.5.40(typescript@6.0.3))': dependencies: vue: 3.5.40(typescript@6.0.3) @@ -13263,10 +13375,6 @@ snapshots: citty@0.2.2: {} - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - client-only@0.0.1: {} cliui@9.0.1: @@ -13738,9 +13846,9 @@ snapshots: dotenv@17.4.2: {} - dts-resolver@3.0.0(oxc-resolver@11.21.3): + dts-resolver@3.0.0(oxc-resolver@11.24.2): optionalDependencies: - oxc-resolver: 11.21.3 + oxc-resolver: 11.24.2 dunder-proto@1.0.1: dependencies: @@ -14198,6 +14306,10 @@ snapshots: dependencies: format: 0.2.2 + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: picomatch: 4.0.5 @@ -14226,13 +14338,6 @@ snapshots: flatted@3.4.2: {} - floating-vue@5.2.2(vue@3.5.40(typescript@5.9.3)): - dependencies: - '@floating-ui/dom': 1.1.1 - vue: 3.5.40(typescript@5.9.3) - vue-resize: 2.0.0-alpha.1(vue@3.5.40(typescript@5.9.3)) - optional: true - floating-vue@5.2.2(vue@3.5.40(typescript@6.0.3)): dependencies: '@floating-ui/dom': 1.1.1 @@ -14252,6 +14357,10 @@ snapshots: format@0.2.2: {} + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + fraction.js@5.3.4: {} fresh@2.0.0: {} @@ -14691,6 +14800,22 @@ snapshots: klona@2.0.6: {} + knip@6.31.0: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + formatly: 0.3.0 + get-tsconfig: 4.14.0 + jiti: 2.7.0 + oxc-parser: 0.142.0 + oxc-resolver: 11.24.2 + picomatch: 4.0.5 + smol-toml: 1.7.1 + strip-json-comments: 5.0.3 + tinyglobby: 0.2.17 + unbash: 4.0.4 + yaml: 2.9.0 + zod: 4.4.3 + knitwork@1.3.0: {} kolorist@1.8.0: {} @@ -15824,6 +15949,31 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc': 0.140.0 '@oxc-parser/binding-win32-x64-msvc': 0.140.0 + oxc-parser@0.142.0: + dependencies: + '@oxc-project/types': 0.142.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.142.0 + '@oxc-parser/binding-android-arm64': 0.142.0 + '@oxc-parser/binding-darwin-arm64': 0.142.0 + '@oxc-parser/binding-darwin-x64': 0.142.0 + '@oxc-parser/binding-freebsd-x64': 0.142.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.142.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.142.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.142.0 + '@oxc-parser/binding-linux-arm64-musl': 0.142.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.142.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.142.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.142.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.142.0 + '@oxc-parser/binding-linux-x64-gnu': 0.142.0 + '@oxc-parser/binding-linux-x64-musl': 0.142.0 + '@oxc-parser/binding-openharmony-arm64': 0.142.0 + '@oxc-parser/binding-wasm32-wasi': 0.142.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.142.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.142.0 + '@oxc-parser/binding-win32-x64-msvc': 0.142.0 + oxc-resolver@11.21.3: optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.21.3 @@ -15846,6 +15996,28 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.21.3 '@oxc-resolver/binding-win32-x64-msvc': 11.21.3 + oxc-resolver@11.24.2: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.24.2 + '@oxc-resolver/binding-android-arm64': 11.24.2 + '@oxc-resolver/binding-darwin-arm64': 11.24.2 + '@oxc-resolver/binding-darwin-x64': 11.24.2 + '@oxc-resolver/binding-freebsd-x64': 11.24.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.24.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.24.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.24.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.24.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.24.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-x64-musl': 11.24.2 + '@oxc-resolver/binding-openharmony-arm64': 11.24.2 + '@oxc-resolver/binding-wasm32-wasi': 11.24.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.24.2 + oxc-walker@0.7.0(oxc-parser@0.131.0): dependencies: magic-regexp: 0.10.0 @@ -16365,23 +16537,6 @@ snapshots: dependencies: jsesc: 3.1.0 - reka-ui@2.10.1(vue@3.5.40(typescript@5.9.3)): - dependencies: - '@floating-ui/dom': 1.8.0 - '@floating-ui/vue': 1.1.11(vue@3.5.40(typescript@5.9.3)) - '@internationalized/date': 3.12.2 - '@internationalized/number': 3.6.7 - '@tanstack/vue-virtual': 3.13.30(vue@3.5.40(typescript@5.9.3)) - '@vueuse/core': 14.3.0(vue@3.5.40(typescript@5.9.3)) - '@vueuse/shared': 14.3.0(vue@3.5.40(typescript@5.9.3)) - aria-hidden: 1.2.6 - defu: 6.1.7 - ohash: 2.0.11 - vue: 3.5.40(typescript@5.9.3) - transitivePeerDependencies: - - '@vue/composition-api' - optional: true - reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)): dependencies: '@floating-ui/dom': 1.8.0 @@ -16417,24 +16572,9 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(rolldown@1.2.0)(typescript@5.9.3): - dependencies: - dts-resolver: 3.0.0(oxc-resolver@11.21.3) - get-tsconfig: 5.0.0-beta.5 - obug: 2.1.4 - rolldown: 1.2.0 - yuku-ast: 0.7.4 - yuku-codegen: 0.7.4 - yuku-parser: 0.7.4 - optionalDependencies: - '@volar/typescript': 2.4.28 - typescript: 5.9.3 - transitivePeerDependencies: - - oxc-resolver - - rolldown-plugin-dts@0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(rolldown@1.2.0)(typescript@6.0.3): + rolldown-plugin-dts@0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(rolldown@1.2.0)(typescript@6.0.3): dependencies: - dts-resolver: 3.0.0(oxc-resolver@11.21.3) + dts-resolver: 3.0.0(oxc-resolver@11.24.2) get-tsconfig: 5.0.0-beta.5 obug: 2.1.4 rolldown: 1.2.0 @@ -16713,6 +16853,8 @@ snapshots: smob@1.6.1: {} + smol-toml@1.7.1: {} + solid-js@1.9.14: dependencies: csstype: 3.2.3 @@ -16750,11 +16892,6 @@ snapshots: spdx-license-ids@3.0.23: {} - splitpanes@4.1.2(vue@3.5.40(typescript@5.9.3)): - dependencies: - vue: 3.5.40(typescript@5.9.3) - optional: true - splitpanes@4.1.2(vue@3.5.40(typescript@6.0.3)): dependencies: vue: 3.5.40(typescript@6.0.3) @@ -16880,6 +17017,8 @@ snapshots: strip-indent@4.1.1: {} + strip-json-comments@5.0.3: {} + strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -17062,33 +17201,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@5.9.3): - dependencies: - ansis: 4.3.1 - cac: 7.0.0 - defu: 6.1.7 - empathic: 2.0.1 - hookable: 6.1.1 - import-without-cache: 0.4.0 - obug: 2.1.4 - picomatch: 4.0.5 - rolldown: 1.2.0 - rolldown-plugin-dts: 0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(rolldown@1.2.0)(typescript@5.9.3) - tinyexec: 1.2.4 - tinyglobby: 0.2.17 - tree-kill: 1.2.2 - unconfig-core: 7.5.0 - verkit: 0.3.0 - optionalDependencies: - tsx: 4.23.1 - typescript: 5.9.3 - transitivePeerDependencies: - - '@typescript/native-preview' - - '@volar/typescript' - - oxc-resolver - - vue-tsc - - tsdown@0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(tsx@4.23.1)(typescript@6.0.3): + tsdown@0.22.14(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(tsx@4.23.1)(typescript@6.0.3): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -17099,7 +17212,7 @@ snapshots: obug: 2.1.4 picomatch: 4.0.5 rolldown: 1.2.0 - rolldown-plugin-dts: 0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.21.3)(rolldown@1.2.0)(typescript@6.0.3) + rolldown-plugin-dts: 0.27.13(@volar/typescript@2.4.28)(oxc-resolver@11.24.2)(rolldown@1.2.0)(typescript@6.0.3) tinyexec: 1.2.4 tinyglobby: 0.2.17 tree-kill: 1.2.2 @@ -17163,6 +17276,8 @@ snapshots: ultrahtml@1.7.0: {} + unbash@4.0.4: {} + unconfig-core@7.5.0: dependencies: '@quansync/fs': 1.0.0 @@ -17638,33 +17753,12 @@ snapshots: vue-component-type-helpers@3.3.5: {} - vue-demi@0.14.10(vue@3.5.40(typescript@5.9.3)): - dependencies: - vue: 3.5.40(typescript@5.9.3) - optional: true - vue-demi@0.14.10(vue@3.5.40(typescript@6.0.3)): dependencies: vue: 3.5.40(typescript@6.0.3) vue-devtools-stub@0.1.0: {} - vue-docgen-api@4.79.2(vue@3.5.40(typescript@5.9.3)): - dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 - '@vue/compiler-dom': 3.5.40 - '@vue/compiler-sfc': 3.5.40 - ast-types: 0.16.1 - esm-resolve: 1.0.11 - hash-sum: 2.0.0 - lru-cache: 8.0.5 - pug: 3.0.4 - recast: 0.23.11 - ts-map: 1.0.3 - vue: 3.5.40(typescript@5.9.3) - vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.40(typescript@5.9.3)) - vue-docgen-api@4.79.2(vue@3.5.40(typescript@6.0.3)): dependencies: '@babel/parser': 7.29.7 @@ -17693,19 +17787,10 @@ snapshots: transitivePeerDependencies: - supports-color - vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.5.40(typescript@5.9.3)): - dependencies: - vue: 3.5.40(typescript@5.9.3) - vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.5.40(typescript@6.0.3)): dependencies: vue: 3.5.40(typescript@6.0.3) - vue-resize@2.0.0-alpha.1(vue@3.5.40(typescript@5.9.3)): - dependencies: - vue: 3.5.40(typescript@5.9.3) - optional: true - vue-resize@2.0.0-alpha.1(vue@3.5.40(typescript@6.0.3)): dependencies: vue: 3.5.40(typescript@6.0.3) @@ -17744,16 +17829,6 @@ snapshots: - unloader - webpack - vue@3.5.40(typescript@5.9.3): - dependencies: - '@vue/compiler-dom': 3.5.40 - '@vue/compiler-sfc': 3.5.40 - '@vue/runtime-dom': 3.5.40 - '@vue/server-renderer': 3.5.40 - '@vue/shared': 3.5.40 - optionalDependencies: - typescript: 5.9.3 - vue@3.5.40(typescript@6.0.3): dependencies: '@vue/compiler-dom': 3.5.40 @@ -17764,6 +17839,8 @@ snapshots: optionalDependencies: typescript: 6.0.3 + walk-up-path@4.0.0: {} + web-worker@1.5.0: {} webidl-conversions@3.0.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 22fa7cb4..db5395aa 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -59,8 +59,7 @@ overrides: catalogs: build: - '@antfu/ni': ^30.3.0 - '@nuxt/kit': *nuxt + '@nuxt/kit': ^4.5.0 '@preact/preset-vite': ^2.10.6 '@vitejs/plugin-vue': ^6.0.8 mlly: ^1.8.2 @@ -119,9 +118,7 @@ catalogs: '@json-render/vue': ^0.19.0 '@pierre/diffs': ^1.2.12 '@radix-ui/react-scroll-area': ^1.2.18 - '@radix-ui/react-separator': ^1.1.15 '@radix-ui/react-slot': ^1.3.3 - '@radix-ui/react-tabs': ^1.1.21 '@sveltejs/vite-plugin-svelte': ^7.2.0 '@unocss/postcss': ^66.7.5 '@unocss/preset-icons': ^66.7.5 @@ -129,7 +126,6 @@ catalogs: '@xterm/addon-fit': ^0.11.0 '@xterm/xterm': ^6.0.0 axe-core: ^4.12.1 - class-variance-authority: ^0.7.1 clsx: ^2.1.1 colorjs.io: ^0.7.1 dompurify: ^3.4.12 @@ -151,13 +147,13 @@ catalogs: '@antfu/utils': ^9.3.0 ua-parser-modern: ^0.1.1 storybook: - '@storybook/addon-a11y': *storybook - '@storybook/addon-docs': *storybook - '@storybook/react-vite': *storybook - '@storybook/svelte-vite': *storybook - '@storybook/vue3-vite': *storybook + '@storybook/addon-a11y': ^10.5.5 + '@storybook/addon-docs': ^10.5.5 + '@storybook/react-vite': ^10.5.5 + '@storybook/svelte-vite': ^10.5.5 + '@storybook/vue3-vite': ^10.5.5 '@vitejs/plugin-react-oxc': ^0.4.3 - storybook: *storybook + storybook: ^10.5.5 storybook-solidjs-vite: ^10.6.0 testing: '@playwright/test': ^1.62.0 @@ -167,6 +163,7 @@ catalogs: '@antfu/eslint-config': ^9.2.0 bumpp: ^12.0.0 eslint: ^10.8.0 + knip: ^6.31.0 nano-staged: ^1.0.2 prompts: ^2.4.2 simple-git-hooks: ^2.13.1 diff --git a/storybook/src/hub.ts b/storybook/src/hub.ts index a8843de8..52ab5b6f 100644 --- a/storybook/src/hub.ts +++ b/storybook/src/hub.ts @@ -61,7 +61,7 @@ function lastLine(chunk: string): string | undefined { } /** What the client needs to point a dock's iframe at the right place. */ -export type EnsureStorybookResult +type EnsureStorybookResult = | { ok: true, kind: 'port', port: number } | { ok: true, kind: 'path', url: string } | { ok: false, error: string } From c20590709e25d9b2151c3decf9f64fb3f3550c0b Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Mon, 3 Aug 2026 05:02:52 +0000 Subject: [PATCH 2/2] fix: restore pnpm-workspace.yaml catalog YAML anchors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A `pnpm install` run during the knip integration work rewrote `pnpm-workspace.yaml`'s catalogs section and flattened the `*nuxt`/ `*storybook` anchor references (`refs:` block) into literal version strings, defeating their point — keeping `@nuxt/kit`, the `@storybook/*` family, and `storybook` itself in sync with one written version each. Restores those two, and also wires up the `&unocss`/`&vueuse` anchors (defined but never referenced) to `unocss`/`@unocss/*`/`@vueuse/core` in the `frontend` catalog, so all four `refs:` entries are load-bearing. No version values changed. Co-authored-by: opencode --- pnpm-workspace.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index db5395aa..813d2b1d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -59,7 +59,7 @@ overrides: catalogs: build: - '@nuxt/kit': ^4.5.0 + '@nuxt/kit': *nuxt '@preact/preset-vite': ^2.10.6 '@vitejs/plugin-vue': ^6.0.8 mlly: ^1.8.2 @@ -120,9 +120,9 @@ catalogs: '@radix-ui/react-scroll-area': ^1.2.18 '@radix-ui/react-slot': ^1.3.3 '@sveltejs/vite-plugin-svelte': ^7.2.0 - '@unocss/postcss': ^66.7.5 - '@unocss/preset-icons': ^66.7.5 - '@vueuse/core': ^14.3.0 + '@unocss/postcss': *unocss + '@unocss/preset-icons': *unocss + '@vueuse/core': *vueuse '@xterm/addon-fit': ^0.11.0 '@xterm/xterm': ^6.0.0 axe-core: ^4.12.1 @@ -140,20 +140,20 @@ catalogs: splitpanes: ^4.1.2 svelte: ^5.56.8 tailwind-merge: ^3.6.0 - unocss: ^66.7.5 + unocss: *unocss vite-plugin-css-injected-by-js: ^5.0.2 vue: ^3.5.40 inlined: '@antfu/utils': ^9.3.0 ua-parser-modern: ^0.1.1 storybook: - '@storybook/addon-a11y': ^10.5.5 - '@storybook/addon-docs': ^10.5.5 - '@storybook/react-vite': ^10.5.5 - '@storybook/svelte-vite': ^10.5.5 - '@storybook/vue3-vite': ^10.5.5 + '@storybook/addon-a11y': *storybook + '@storybook/addon-docs': *storybook + '@storybook/react-vite': *storybook + '@storybook/svelte-vite': *storybook + '@storybook/vue3-vite': *storybook '@vitejs/plugin-react-oxc': ^0.4.3 - storybook: ^10.5.5 + storybook: *storybook storybook-solidjs-vite: ^10.6.0 testing: '@playwright/test': ^1.62.0