From 420d4113949536f18a800b20258e62a630efc788 Mon Sep 17 00:00:00 2001 From: arlo Date: Wed, 28 Jan 2026 22:11:45 +0800 Subject: [PATCH 1/4] refactor: rename to rolldown devtools --- .gitignore | 6 +- AGENTS.md | 18 +-- CONTRIBUTING.md | 10 +- alias.ts | 2 +- docs/guide/index.md | 2 +- docs/public/rolldown-devtools-logo-dark.svg | 98 ++++++++++++++++ docs/public/rolldown-devtools-logo-light.svg | 98 ++++++++++++++++ eslint.config.js | 4 +- package.json | 6 +- packages/core/package.json | 4 +- packages/core/playground/vite.config.ts | 4 +- packages/core/src/node/plugins/index.ts | 2 +- packages/{vite => rolldown}/package.json | 4 +- packages/{vite => rolldown}/src/app/app.vue | 3 +- .../src/app/components/assets/BaseInfo.vue | 0 .../src/app/components/assets/Flamegraph.vue | 0 .../src/app/components/assets/Folder.vue | 0 .../src/app/components/assets/List.vue | 0 .../src/app/components/assets/ListItem.vue | 0 .../src/app/components/assets/Sunburst.vue | 0 .../app/components/chart/ModuleFlamegraph.vue | 0 .../app/components/chart/NavBreadcrumb.vue | 0 .../src/app/components/chart/Treemap.vue | 0 .../src/app/components/chunks/BaseInfo.vue | 0 .../src/app/components/chunks/Flamegraph.vue | 0 .../src/app/components/chunks/FlatList.vue | 0 .../src/app/components/chunks/Graph.vue | 0 .../src/app/components/chunks/Imports.vue | 0 .../src/app/components/chunks/Sunburst.vue | 0 .../src/app/components/code/DiffEditor.vue | 0 .../src/app/components/code/Viewer.vue | 0 .../src/app/components/compare/MetricCard.vue | 0 .../app/components/compare/SessionMeta.vue | 0 .../src/app/components/data/AssetDetails.vue | 0 .../components/data/AssetDetailsLoader.vue | 0 .../components/data/AssetRelationships.vue | 0 .../src/app/components/data/ChunkDetails.vue | 1 - .../components/data/ChunkDetailsLoader.vue | 1 - .../components/data/ModuleDetailsLoader.vue | 1 - .../data/ModuleImportRelationships.vue | 0 .../components/data/PackageDetailsLoader.vue | 1 - .../src/app/components/data/PathSelector.vue | 0 .../app/components/data/PathSelectorItem.vue | 0 .../components/data/PluginDetailsLoader.vue | 1 - .../components/data/PluginDetailsTable.vue | 0 .../app/components/data/RawEventsTable.vue | 0 .../src/app/components/data/SearchPanel.vue | 0 .../src/app/components/data/VirtualList.vue | 0 .../src/app/components/display/Badge.vue | 0 .../app/components/display/CloseButton.vue | 0 .../app/components/display/ClusterBadge.vue | 0 .../components/display/ComparisonMetric.vue | 0 .../src/app/components/display/Duration.vue | 0 .../display/ExpandableContainer.vue | 0 .../src/app/components/display/FileIcon.vue | 0 .../app/components/display/FileSizeBadge.vue | 0 .../app/components/display/GraphHoverView.vue | 0 .../display/HighlightedPackageName.ts | 0 .../app/components/display/HighlightedPath.ts | 0 .../src/app/components/display/IconButton.vue | 0 .../app/components/display/ModuleGraph.vue | 0 .../src/app/components/display/ModuleId.vue | 0 .../app/components/display/NumberBadge.vue | 0 .../app/components/display/NumberWithUnit.vue | 0 .../src/app/components/display/PluginName.vue | 0 .../src/app/components/display/SafeImage.vue | 0 .../app/components/display/TimeoutView.vue | 0 .../src/app/components/display/Timestamp.vue | 0 .../src/app/components/display/TreeNode.vue | 0 .../src/app/components/display/Version.vue | 0 .../src/app/components/flowmap/Expandable.vue | 0 .../src/app/components/flowmap/ModuleFlow.vue | 0 .../components/flowmap/ModuleFlowDetails.vue | 0 .../components/flowmap/ModuleFlowTimeline.vue | 0 .../src/app/components/flowmap/Node.vue | 0 .../app/components/flowmap/NodeAssetInfo.vue | 0 .../app/components/flowmap/NodeChunkInfo.vue | 0 .../app/components/flowmap/NodeModuleInfo.vue | 0 .../app/components/flowmap/NodePluginInfo.vue | 0 .../src/app/components/flowmap/PluginFlow.vue | 0 .../components/flowmap/PluginFlowTimeline.vue | 0 .../app/components/modules/BuildMetrics.vue | 0 .../app/components/modules/DetailedList.vue | 0 .../src/app/components/modules/FlatList.vue | 0 .../src/app/components/modules/Folder.vue | 0 .../src/app/components/modules/Graph.vue | 0 .../app/components/packages/Duplicated.vue | 0 .../src/app/components/packages/Importers.vue | 0 .../src/app/components/packages/Table.vue | 0 .../app/components/panel/SessionSelector.vue | 0 .../src/app/components/panel/SideNav.vue | 0 .../src/app/components/plugins/FlatList.vue | 0 .../src/app/components/plugins/Sunburst.vue | 0 .../src/app/components/visual/Loading.vue | 17 +++ .../src/app/components/visual/LogoBanner.vue | 111 ++++++++++++++++++ .../src/app/composables/chart.ts | 0 .../src/app/composables/codemirror.ts | 0 .../app/composables/graph-path-selector.ts | 0 .../src/app/composables/module-graph.ts | 0 .../src/app/composables/rpc.ts | 0 .../src/app/composables/zoom-element.ts | 0 .../app/pages/compare/[sessions]/index.vue | 1 - .../src/app/pages/index.vue | 1 - .../src/app/pages/session/[session].vue | 1 - .../app/pages/session/[session]/assets.vue | 1 - .../app/pages/session/[session]/chunks.vue | 1 - .../pages/session/[session]/graph/index.vue | 0 .../src/app/pages/session/[session]/index.vue | 0 .../app/pages/session/[session]/packages.vue | 1 - .../app/pages/session/[session]/plugins.vue | 0 .../src/app/pages/session/[session]/raw.vue | 1 - .../src/app/plugins/floating-vue.ts | 0 .../app/public/fonts/dmmono-53a90e28.woff2} | Bin .../app/public/fonts/dmmono-8beacb38.woff2 | Bin .../app/public/fonts/dmmono-bb868a37.woff2 | Bin 0 -> 5700 bytes .../app/public/fonts/dmmono-cd6ed524.woff2 | Bin 0 -> 8688 bytes .../app/public/fonts/dmsans-54dbf8a8.woff2 | Bin .../app/public/fonts/dmsans-c55bbe7a.woff2 | Bin .../src/app/state/flowmap.ts | 0 .../{vite => rolldown}/src/app/state/nav.ts | 0 .../src/app/state/settings.ts | 0 .../{vite => rolldown}/src/app/styles/cm.css | 0 .../src/app/styles/global.css | 0 .../src/app/styles/splitpanes.css | 0 .../{vite => rolldown}/src/app/types/chart.ts | 0 .../src/app/utils/__tests__/cache.test.ts | 0 .../src/app/utils/__tests__/color.test.ts | 0 .../src/app/utils/__tests__/filepath.test.ts | 0 .../src/app/utils/__tests__/format.test.ts | 0 .../src/app/utils/__tests__/icon.test.ts | 0 .../src/app/utils/__tests__/is.test.ts | 0 .../{vite => rolldown}/src/app/utils/cache.ts | 0 .../{vite => rolldown}/src/app/utils/color.ts | 0 .../src/app/utils/filepath.ts | 0 .../src/app/utils/format.ts | 0 .../{vite => rolldown}/src/app/utils/icon.ts | 0 .../{vite => rolldown}/src/app/utils/is.ts | 0 .../{vite => rolldown}/src/app/worker/diff.ts | 0 .../src/app/worker/diff.worker.ts | 0 packages/{vite => rolldown}/src/dirs.ts | 0 packages/{vite => rolldown}/src/index.ts | 0 .../{vite => rolldown}/src/modules/rpc.ts | 0 packages/{vite => rolldown}/src/node/index.ts | 0 .../{vite => rolldown}/src/node/plugin.ts | 14 +-- .../src/node/rolldown/events-manager.ts | 0 .../src/node/rolldown/events-reader.ts | 0 .../src/node/rolldown/logs-manager.ts | 0 .../functions/rolldown-get-asset-details.ts | 0 .../rpc/functions/rolldown-get-assets-list.ts | 0 .../rpc/functions/rolldown-get-chunk-info.ts | 0 .../functions/rolldown-get-chunks-graph.ts | 0 .../rpc/functions/rolldown-get-module-info.ts | 0 .../rolldown-get-module-raw-events.ts | 0 .../rolldown-get-module-transforms.ts | 0 .../functions/rolldown-get-package-details.ts | 0 .../rpc/functions/rolldown-get-packages.ts | 0 .../functions/rolldown-get-plugin-details.ts | 0 .../rpc/functions/rolldown-get-raw-events.ts | 0 .../rolldown-get-session-compare-summary.ts | 0 .../functions/rolldown-get-session-summary.ts | 0 .../rpc/functions/rolldown-list-sessions.ts | 0 .../{vite => rolldown}/src/node/rpc/index.ts | 0 .../{vite => rolldown}/src/node/rpc/utils.ts | 2 +- .../src/node/utils/chunk.ts | 0 .../src/node/utils/format.ts | 0 .../src/node/utils/json-parse-stream.ts | 0 .../{vite => rolldown}/src/nuxt.config.ts | 10 +- .../src/public/dot-grid-dark.png | Bin .../src/public/dot-grid-light.png | Bin packages/rolldown/src/public/favicon.svg | 90 ++++++++++++++ .../src/shared/constants.ts | 0 .../{vite => rolldown}/src/shared/types.ts | 0 .../src/shared/types/data.ts | 0 .../src/shared/types/vite.ts | 0 .../{vite => rolldown}/src/shared/utils.ts | 0 .../shared/utils/__tests__/filepath.test.ts | 0 .../utils/__tests__/guess-chunk-name.test.ts | 0 .../src/shared/utils/filepath.ts | 0 .../src/shared/utils/guess-chunk-name.ts | 0 packages/{vite => rolldown}/src/tsconfig.json | 0 packages/{vite => rolldown}/src/uno.config.ts | 0 packages/{vite => rolldown}/tsdown.config.ts | 0 packages/vite/src/public/favicon.svg | 15 --- packages/vite/src/public/vite-devtools.svg | 17 --- packages/webext/scripts/build-app.ts | 2 +- pnpm-lock.yaml | 109 ++++++++--------- ...tools-vite.yaml => devtools-rolldown.yaml} | 2 +- tsconfig.base.json | 4 +- tsconfig.json | 8 +- 189 files changed, 516 insertions(+), 158 deletions(-) create mode 100644 docs/public/rolldown-devtools-logo-dark.svg create mode 100644 docs/public/rolldown-devtools-logo-light.svg rename packages/{vite => rolldown}/package.json (96%) rename packages/{vite => rolldown}/src/app/app.vue (85%) rename packages/{vite => rolldown}/src/app/components/assets/BaseInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/assets/Flamegraph.vue (100%) rename packages/{vite => rolldown}/src/app/components/assets/Folder.vue (100%) rename packages/{vite => rolldown}/src/app/components/assets/List.vue (100%) rename packages/{vite => rolldown}/src/app/components/assets/ListItem.vue (100%) rename packages/{vite => rolldown}/src/app/components/assets/Sunburst.vue (100%) rename packages/{vite => rolldown}/src/app/components/chart/ModuleFlamegraph.vue (100%) rename packages/{vite => rolldown}/src/app/components/chart/NavBreadcrumb.vue (100%) rename packages/{vite => rolldown}/src/app/components/chart/Treemap.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/BaseInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/Flamegraph.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/FlatList.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/Graph.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/Imports.vue (100%) rename packages/{vite => rolldown}/src/app/components/chunks/Sunburst.vue (100%) rename packages/{vite => rolldown}/src/app/components/code/DiffEditor.vue (100%) rename packages/{vite => rolldown}/src/app/components/code/Viewer.vue (100%) rename packages/{vite => rolldown}/src/app/components/compare/MetricCard.vue (100%) rename packages/{vite => rolldown}/src/app/components/compare/SessionMeta.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/AssetDetails.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/AssetDetailsLoader.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/AssetRelationships.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/ChunkDetails.vue (98%) rename packages/{vite => rolldown}/src/app/components/data/ChunkDetailsLoader.vue (91%) rename packages/{vite => rolldown}/src/app/components/data/ModuleDetailsLoader.vue (97%) rename packages/{vite => rolldown}/src/app/components/data/ModuleImportRelationships.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/PackageDetailsLoader.vue (97%) rename packages/{vite => rolldown}/src/app/components/data/PathSelector.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/PathSelectorItem.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/PluginDetailsLoader.vue (99%) rename packages/{vite => rolldown}/src/app/components/data/PluginDetailsTable.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/RawEventsTable.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/SearchPanel.vue (100%) rename packages/{vite => rolldown}/src/app/components/data/VirtualList.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/Badge.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/CloseButton.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/ClusterBadge.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/ComparisonMetric.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/Duration.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/ExpandableContainer.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/FileIcon.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/FileSizeBadge.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/GraphHoverView.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/HighlightedPackageName.ts (100%) rename packages/{vite => rolldown}/src/app/components/display/HighlightedPath.ts (100%) rename packages/{vite => rolldown}/src/app/components/display/IconButton.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/ModuleGraph.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/ModuleId.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/NumberBadge.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/NumberWithUnit.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/PluginName.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/SafeImage.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/TimeoutView.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/Timestamp.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/TreeNode.vue (100%) rename packages/{vite => rolldown}/src/app/components/display/Version.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/Expandable.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/ModuleFlow.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/ModuleFlowDetails.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/ModuleFlowTimeline.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/Node.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/NodeAssetInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/NodeChunkInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/NodeModuleInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/NodePluginInfo.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/PluginFlow.vue (100%) rename packages/{vite => rolldown}/src/app/components/flowmap/PluginFlowTimeline.vue (100%) rename packages/{vite => rolldown}/src/app/components/modules/BuildMetrics.vue (100%) rename packages/{vite => rolldown}/src/app/components/modules/DetailedList.vue (100%) rename packages/{vite => rolldown}/src/app/components/modules/FlatList.vue (100%) rename packages/{vite => rolldown}/src/app/components/modules/Folder.vue (100%) rename packages/{vite => rolldown}/src/app/components/modules/Graph.vue (100%) rename packages/{vite => rolldown}/src/app/components/packages/Duplicated.vue (100%) rename packages/{vite => rolldown}/src/app/components/packages/Importers.vue (100%) rename packages/{vite => rolldown}/src/app/components/packages/Table.vue (100%) rename packages/{vite => rolldown}/src/app/components/panel/SessionSelector.vue (100%) rename packages/{vite => rolldown}/src/app/components/panel/SideNav.vue (100%) rename packages/{vite => rolldown}/src/app/components/plugins/FlatList.vue (100%) rename packages/{vite => rolldown}/src/app/components/plugins/Sunburst.vue (100%) create mode 100644 packages/rolldown/src/app/components/visual/Loading.vue create mode 100644 packages/rolldown/src/app/components/visual/LogoBanner.vue rename packages/{vite => rolldown}/src/app/composables/chart.ts (100%) rename packages/{vite => rolldown}/src/app/composables/codemirror.ts (100%) rename packages/{vite => rolldown}/src/app/composables/graph-path-selector.ts (100%) rename packages/{vite => rolldown}/src/app/composables/module-graph.ts (100%) rename packages/{vite => rolldown}/src/app/composables/rpc.ts (100%) rename packages/{vite => rolldown}/src/app/composables/zoom-element.ts (100%) rename packages/{vite => rolldown}/src/app/pages/compare/[sessions]/index.vue (98%) rename packages/{vite => rolldown}/src/app/pages/index.vue (97%) rename packages/{vite => rolldown}/src/app/pages/session/[session].vue (98%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/assets.vue (98%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/chunks.vue (99%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/graph/index.vue (100%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/index.vue (100%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/packages.vue (98%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/plugins.vue (100%) rename packages/{vite => rolldown}/src/app/pages/session/[session]/raw.vue (91%) rename packages/{vite => rolldown}/src/app/plugins/floating-vue.ts (100%) rename packages/{vite/src/app/public/fonts/dmmono-bb868a37.woff2 => rolldown/src/app/public/fonts/dmmono-53a90e28.woff2} (100%) rename packages/{vite => rolldown}/src/app/public/fonts/dmmono-8beacb38.woff2 (100%) create mode 100644 packages/rolldown/src/app/public/fonts/dmmono-bb868a37.woff2 create mode 100644 packages/rolldown/src/app/public/fonts/dmmono-cd6ed524.woff2 rename packages/{vite => rolldown}/src/app/public/fonts/dmsans-54dbf8a8.woff2 (100%) rename packages/{vite => rolldown}/src/app/public/fonts/dmsans-c55bbe7a.woff2 (100%) rename packages/{vite => rolldown}/src/app/state/flowmap.ts (100%) rename packages/{vite => rolldown}/src/app/state/nav.ts (100%) rename packages/{vite => rolldown}/src/app/state/settings.ts (100%) rename packages/{vite => rolldown}/src/app/styles/cm.css (100%) rename packages/{vite => rolldown}/src/app/styles/global.css (100%) rename packages/{vite => rolldown}/src/app/styles/splitpanes.css (100%) rename packages/{vite => rolldown}/src/app/types/chart.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/cache.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/color.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/filepath.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/format.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/icon.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/__tests__/is.test.ts (100%) rename packages/{vite => rolldown}/src/app/utils/cache.ts (100%) rename packages/{vite => rolldown}/src/app/utils/color.ts (100%) rename packages/{vite => rolldown}/src/app/utils/filepath.ts (100%) rename packages/{vite => rolldown}/src/app/utils/format.ts (100%) rename packages/{vite => rolldown}/src/app/utils/icon.ts (100%) rename packages/{vite => rolldown}/src/app/utils/is.ts (100%) rename packages/{vite => rolldown}/src/app/worker/diff.ts (100%) rename packages/{vite => rolldown}/src/app/worker/diff.worker.ts (100%) rename packages/{vite => rolldown}/src/dirs.ts (100%) rename packages/{vite => rolldown}/src/index.ts (100%) rename packages/{vite => rolldown}/src/modules/rpc.ts (100%) rename packages/{vite => rolldown}/src/node/index.ts (100%) rename packages/{vite => rolldown}/src/node/plugin.ts (61%) rename packages/{vite => rolldown}/src/node/rolldown/events-manager.ts (100%) rename packages/{vite => rolldown}/src/node/rolldown/events-reader.ts (100%) rename packages/{vite => rolldown}/src/node/rolldown/logs-manager.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-asset-details.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-assets-list.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-chunk-info.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-chunks-graph.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-module-info.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-module-raw-events.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-module-transforms.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-package-details.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-packages.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-plugin-details.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-raw-events.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-session-compare-summary.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-get-session-summary.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/functions/rolldown-list-sessions.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/index.ts (100%) rename packages/{vite => rolldown}/src/node/rpc/utils.ts (83%) rename packages/{vite => rolldown}/src/node/utils/chunk.ts (100%) rename packages/{vite => rolldown}/src/node/utils/format.ts (100%) rename packages/{vite => rolldown}/src/node/utils/json-parse-stream.ts (100%) rename packages/{vite => rolldown}/src/nuxt.config.ts (91%) rename packages/{vite => rolldown}/src/public/dot-grid-dark.png (100%) rename packages/{vite => rolldown}/src/public/dot-grid-light.png (100%) create mode 100644 packages/rolldown/src/public/favicon.svg rename packages/{vite => rolldown}/src/shared/constants.ts (100%) rename packages/{vite => rolldown}/src/shared/types.ts (100%) rename packages/{vite => rolldown}/src/shared/types/data.ts (100%) rename packages/{vite => rolldown}/src/shared/types/vite.ts (100%) rename packages/{vite => rolldown}/src/shared/utils.ts (100%) rename packages/{vite => rolldown}/src/shared/utils/__tests__/filepath.test.ts (100%) rename packages/{vite => rolldown}/src/shared/utils/__tests__/guess-chunk-name.test.ts (100%) rename packages/{vite => rolldown}/src/shared/utils/filepath.ts (100%) rename packages/{vite => rolldown}/src/shared/utils/guess-chunk-name.ts (100%) rename packages/{vite => rolldown}/src/tsconfig.json (100%) rename packages/{vite => rolldown}/src/uno.config.ts (100%) rename packages/{vite => rolldown}/tsdown.config.ts (100%) delete mode 100644 packages/vite/src/public/favicon.svg delete mode 100644 packages/vite/src/public/vite-devtools.svg rename test/exports/@vitejs/{devtools-vite.yaml => devtools-rolldown.yaml} (54%) diff --git a/.gitignore b/.gitignore index 7bd4e23f..394b534a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,9 +8,9 @@ dist .idea/ .DS_Store .vite-devtools -packages/vite/src/public/fonts -packages/vite/src/app/public/fonts -packages/vite/runtime +packages/rolldown/src/public/fonts +packages/rolldown/src/app/public/fonts +packages/rolldown/runtime .rolldown *.tsbuildinfo docs/.vitepress/cache diff --git a/AGENTS.md b/AGENTS.md index d8b7c4c2..3e513478 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,7 +9,7 @@ Quick reference for future agents working on this repo. - `packages/core` (`@vitejs/devtools`): Vite plugin, CLI, host/runtime (docks, views, terminals), websocket RPC server, standalone/webcomponents client. - `packages/kit` (`@vitejs/devtools-kit`): public types/utilities (`defineRpcFunction`, shared state, events) for integration authors; client helpers. - `packages/rpc` (`@vitejs/devtools-rpc`): thin typed RPC wrapper over `birpc`, with WS presets. - - `packages/vite` (`@vitejs/devtools-vite`): Nuxt-based UI served from the plugin; registers Vite dock and RPC functions for Rolldown build data. + - `packages/rolldown` (`@vitejs/devtools-rolldown`): Nuxt-based UI served from the plugin; registers Vite dock and RPC functions for Rolldown build data. - `packages/webext`: browser extension scaffolding (currently ancillary). - Docs under `docs/` (VitePress); user-facing guides in `docs/guide`. - Path aliases defined in `alias.ts` and propagated to `tsconfig.base.json` (do not edit paths manually). @@ -18,9 +18,9 @@ Quick reference for future agents working on this repo. flowchart TD core["@vitejs/devtools"] --> kit["@vitejs/devtools-kit"] core --> rpc["@vitejs/devtools-rpc"] - core --> viteUI["@vitejs/devtools-vite (Nuxt UI)"] - viteUI --> kit - viteUI --> rpc + core --> rolldownUI["@vitejs/devtools-rolldown (Nuxt UI)"] + rolldownUI --> kit + rolldownUI --> rpc webext["@vitejs/devtools-webext"] --> core ``` @@ -31,8 +31,8 @@ flowchart TD - **Client context**: webcomponents/Nuxt UI state (`packages/core/src/client/webcomponents/state/*`), holding dock entries, selected panels, and RPC client; created with `clientType` of `embedded` or `standalone`. - Websocket server (`packages/core/src/node/ws.ts`) exposes RPC via `@vitejs/devtools-rpc/presets/ws`. Auth is skipped in build mode or when `devtools.clientAuth` is `false`; trusted IDs stored under `node_modules/.vite/devtools/auth.json`. - DevTools middleware (`packages/core/src/node/server.ts`) serves connection meta and standalone client assets. -- The Vite UI plugin (`packages/vite/src/node/plugin.ts`) registers RPC functions (Rolldown data fetchers) and hosts the Nuxt-generated static UI at `/.devtools-vite/`, adding a dock entry. -- Nuxt app config (`packages/vite/src/nuxt.config.ts`): SPA, base `/.devtools-vite/`, disables Nuxt devtools, enables typed pages, uses Unocss/VueUse; sets `vite.devtools.clientAuth = false` for UI. +- The Rolldown UI plugin (`packages/rolldown/src/node/plugin.ts`) registers RPC functions (Rolldown data fetchers) and hosts the Nuxt-generated static UI at `/.devtools-rolldown/`, adding a dock entry. +- Nuxt app config (`packages/rolldown/src/nuxt.config.ts`): SPA, base `/.devtools-rolldown/`, disables Nuxt devtools, enables typed pages, uses Unocss/VueUse; sets `vite.devtools.clientAuth = false` for UI. ## Client Modes (kit/core) - **Embedded mode**: default overlay injected into the host app; docks render inside the app shell; use `clientType: 'embedded'` when creating client context. @@ -40,10 +40,10 @@ flowchart TD ## Development Workflow - Install: `pnpm install` (repo requires `pnpm@10.x`). -- Build all: `pnpm build` (runs `turbo run build`; for UI data, build generates Rolldown metadata under `packages/vite/node_modules/.rolldown`). +- Build all: `pnpm build` (runs `turbo run build`; for UI data, build generates Rolldown metadata under `packages/rolldown/node_modules/.rolldown`). - Dev: - Core playground: `pnpm -C packages/core run play` - - Vite UI: `pnpm -C packages/vite run dev` + - Rolldown UI: `pnpm -C packages/rolldown run dev` - Standalone core client: `pnpm -C packages/core run dev:standalone` - Tests: `pnpm test` (Vitest; projects under `packages/*` and `test`). - Typecheck: `pnpm typecheck` (via `vue-tsc -b`). @@ -64,7 +64,7 @@ flowchart TD - Core webcomponents: `packages/core/src/client/webcomponents` - Kit utilities: `packages/kit/src/utils/*` - RPC presets: `packages/rpc/src/presets/ws/*` -- Vite UI app: `packages/vite/src/app` +- Rolldown UI app: `packages/rolldown/src/app` - Docs: `docs/guide/*` ## Quick Checks Before PRs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 36645806..9d8fcbf7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,11 +12,11 @@ You can check the [TODO list](https://github.com/vitejs/devtools/issues/9) (excl ```bash pnpm install -pnpm build # Required: generates Rolldown meta under ./packages/vite/node_modules/.rolldown +pnpm build # Required: generates Rolldown meta under ./packages/rolldown/node_modules/.rolldown pnpm dev # Start dev server ``` -**Note**: After pulling latest commits, remove `./packages/vite/node_modules/.rolldown` and rebuild to get the latest data format. +**Note**: After pulling latest commits, remove `./packages/rolldown/node_modules/.rolldown` and rebuild to get the latest data format. ## Project Structure @@ -51,9 +51,9 @@ Utility library for integration authors. --- -### `packages/vite` - `@vitejs/devtools-vite` +### `packages/rolldown` - `@vitejs/devtools-rolldown` -Built-in UI panel for Vite/Rolldown integration. +Built-in UI panel for Rolldown integration. - Vite plugin (enabled by default) - Nuxt-based UI for build visualization @@ -94,7 +94,7 @@ Browser extension (planned for future dev mode). **Not accepting contributions c - `pnpm test` - Vitest - `pnpm typecheck` - Type check -Package-specific: `pnpm -C packages/core run cli`, `pnpm -C packages/vite run dev` +Package-specific: `pnpm -C packages/core run cli`, `pnpm -C packages/rolldown run dev` ## Workflow diff --git a/alias.ts b/alias.ts index e552f1d2..4c077e0b 100644 --- a/alias.ts +++ b/alias.ts @@ -16,7 +16,7 @@ export const alias = { '@vitejs/devtools-kit/utils/nanoid': r('kit/src/utils/nanoid.ts'), '@vitejs/devtools-kit/utils/shared-state': r('kit/src/utils/shared-state.ts'), '@vitejs/devtools-kit': r('kit/src/index.ts'), - '@vitejs/devtools-vite': r('vite/src/index.ts'), + '@vitejs/devtools-rolldown': r('rolldown/src/index.ts'), '@vitejs/devtools/client/inject': r('core/src/client/inject/index.ts'), '@vitejs/devtools/client/webcomponents': r('core/src/client/webcomponents/index.ts'), '@vitejs/devtools': r('core/src/index.ts'), diff --git a/docs/guide/index.md b/docs/guide/index.md index 21e75729..b75f8713 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -95,7 +95,7 @@ Vite DevTools consists of several core packages: - **`@vitejs/devtools`**: The main entry point and CLI - **`@vitejs/devtools-kit`**: Utilities and types for building custom integrations -- **`@vitejs/devtools-vite`**: Built-in UI panel for Vite/Rolldown +- **`@vitejs/devtools-rolldown`**: Built-in UI panel for Rolldown - **`@vitejs/devtools-rpc`**: RPC layer for server-client communication For more details on extending Vite DevTools, see the [DevTools Kit documentation](/kit/). diff --git a/docs/public/rolldown-devtools-logo-dark.svg b/docs/public/rolldown-devtools-logo-dark.svg new file mode 100644 index 00000000..4ae8a2bb --- /dev/null +++ b/docs/public/rolldown-devtools-logo-dark.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/rolldown-devtools-logo-light.svg b/docs/public/rolldown-devtools-logo-light.svg new file mode 100644 index 00000000..037c0ccb --- /dev/null +++ b/docs/public/rolldown-devtools-logo-light.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eslint.config.js b/eslint.config.js index b0051131..c79bf201 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,13 +1,13 @@ // @ts-check import antfu from '@antfu/eslint-config' -import nuxt from './packages/vite/src/.nuxt/eslint.config.mjs' +import nuxt from './packages/rolldown/src/.nuxt/eslint.config.mjs' export default antfu({ pnpm: true, }) .append(nuxt()) .append({ - files: ['./packages/vite/src/node/**/*.ts'], + files: ['./packages/rolldown/src/node/**/*.ts'], rules: { 'no-console': 'off', }, diff --git a/package.json b/package.json index 4a0977f3..a64d55e7 100644 --- a/package.json +++ b/package.json @@ -7,14 +7,14 @@ "build": "turbo run build", "build:debug": "NUXT_DEBUG_BUILD=true pnpm -r run build", "watch": "pnpm -r run watch", - "dev": "pnpm -C packages/vite run dev", + "dev": "pnpm -C packages/rolldown run dev", "docs": "pnpm -C docs run docs", "docs:build": "pnpm -C docs run docs:build", "docs:serve": "pnpm -C docs run docs:serve", "play:devtools": "pnpm -C packages/core run play", "play:devtools:standalone": "pnpm -C packages/core run dev:standalone", - "play:ui": "pnpm -C packages/vite run dev", - "prepare": "npx simple-git-hooks && pnpm -C packages/vite run dev:prepare && turbo run build", + "play:ui": "pnpm -C packages/rolldown run dev", + "prepare": "npx simple-git-hooks && pnpm -C packages/rolldown run dev:prepare && turbo run build", "lint": "eslint --cache", "test": "vitest", "release": "bumpp -r", diff --git a/packages/core/package.json b/packages/core/package.json index 954a9fda..80aef85d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -53,8 +53,8 @@ }, "dependencies": { "@vitejs/devtools-kit": "workspace:*", + "@vitejs/devtools-rolldown": "workspace:*", "@vitejs/devtools-rpc": "workspace:*", - "@vitejs/devtools-vite": "workspace:*", "birpc": "catalog:deps", "birpc-x": "catalog:deps", "cac": "catalog:deps", @@ -72,7 +72,7 @@ }, "devDependencies": { "@clack/prompts": "catalog:inlined", - "@vitejs/devtools-vite": "workspace:*", + "@vitejs/devtools-rolldown": "workspace:*", "@vitejs/plugin-vue": "catalog:build", "@xterm/addon-fit": "catalog:frontend", "@xterm/xterm": "catalog:frontend", diff --git a/packages/core/playground/vite.config.ts b/packages/core/playground/vite.config.ts index c956befd..bdd322cc 100644 --- a/packages/core/playground/vite.config.ts +++ b/packages/core/playground/vite.config.ts @@ -7,7 +7,7 @@ import Tracer from 'vite-plugin-vue-tracer' import { alias } from '../../../alias' // eslint-disable-next-line ts/ban-ts-comment // @ts-ignore ignore the type error -import { DevToolsViteUI } from '../../vite/src/node' +import { DevToolsRolldownUI } from '../../rolldown/src/node' import { DevTools } from '../src' import { buildCSS } from '../src/client/webcomponents/scripts/build-css' @@ -42,7 +42,7 @@ export default defineConfig({ DevTools({ builtinDevTools: false, }), - DevToolsViteUI(), + DevToolsRolldownUI(), UnoCSS(), Tracer({ viteDevtools: true, diff --git a/packages/core/src/node/plugins/index.ts b/packages/core/src/node/plugins/index.ts index e55c7ad1..710a116b 100644 --- a/packages/core/src/node/plugins/index.ts +++ b/packages/core/src/node/plugins/index.ts @@ -24,7 +24,7 @@ export async function DevTools(options: DevToolsOptions = {}): Promise if (builtinDevTools) { // eslint-disable-next-line ts/ban-ts-comment // @ts-ignore ignore the type error - plugins.push(await import('@vitejs/devtools-vite').then(m => m.DevToolsViteUI())) + plugins.push(await import('@vitejs/devtools-rolldown').then(m => m.DevToolsRolldownUI())) } return plugins diff --git a/packages/vite/package.json b/packages/rolldown/package.json similarity index 96% rename from packages/vite/package.json rename to packages/rolldown/package.json index e6205b31..30c5cded 100644 --- a/packages/vite/package.json +++ b/packages/rolldown/package.json @@ -1,8 +1,8 @@ { - "name": "@vitejs/devtools-vite", + "name": "@vitejs/devtools-rolldown", "type": "module", "version": "0.0.0-alpha.26", - "description": "DevTools for Vite (work in progress)", + "description": "DevTools for Rolldown (work in progress)", "author": "VoidZero Inc.", "license": "MIT", "homepage": "https://github.com/vitejs/devtools#readme", diff --git a/packages/vite/src/app/app.vue b/packages/rolldown/src/app/app.vue similarity index 85% rename from packages/vite/src/app/app.vue rename to packages/rolldown/src/app/app.vue index edd5c87a..1a7b4cb8 100644 --- a/packages/vite/src/app/app.vue +++ b/packages/rolldown/src/app/app.vue @@ -1,7 +1,6 @@ + + diff --git a/packages/rolldown/src/app/components/visual/LogoBanner.vue b/packages/rolldown/src/app/components/visual/LogoBanner.vue new file mode 100644 index 00000000..517203a8 --- /dev/null +++ b/packages/rolldown/src/app/components/visual/LogoBanner.vue @@ -0,0 +1,111 @@ + + + diff --git a/packages/vite/src/app/composables/chart.ts b/packages/rolldown/src/app/composables/chart.ts similarity index 100% rename from packages/vite/src/app/composables/chart.ts rename to packages/rolldown/src/app/composables/chart.ts diff --git a/packages/vite/src/app/composables/codemirror.ts b/packages/rolldown/src/app/composables/codemirror.ts similarity index 100% rename from packages/vite/src/app/composables/codemirror.ts rename to packages/rolldown/src/app/composables/codemirror.ts diff --git a/packages/vite/src/app/composables/graph-path-selector.ts b/packages/rolldown/src/app/composables/graph-path-selector.ts similarity index 100% rename from packages/vite/src/app/composables/graph-path-selector.ts rename to packages/rolldown/src/app/composables/graph-path-selector.ts diff --git a/packages/vite/src/app/composables/module-graph.ts b/packages/rolldown/src/app/composables/module-graph.ts similarity index 100% rename from packages/vite/src/app/composables/module-graph.ts rename to packages/rolldown/src/app/composables/module-graph.ts diff --git a/packages/vite/src/app/composables/rpc.ts b/packages/rolldown/src/app/composables/rpc.ts similarity index 100% rename from packages/vite/src/app/composables/rpc.ts rename to packages/rolldown/src/app/composables/rpc.ts diff --git a/packages/vite/src/app/composables/zoom-element.ts b/packages/rolldown/src/app/composables/zoom-element.ts similarity index 100% rename from packages/vite/src/app/composables/zoom-element.ts rename to packages/rolldown/src/app/composables/zoom-element.ts diff --git a/packages/vite/src/app/pages/compare/[sessions]/index.vue b/packages/rolldown/src/app/pages/compare/[sessions]/index.vue similarity index 98% rename from packages/vite/src/app/pages/compare/[sessions]/index.vue rename to packages/rolldown/src/app/pages/compare/[sessions]/index.vue index 9166f4b0..0dee7855 100644 --- a/packages/vite/src/app/pages/compare/[sessions]/index.vue +++ b/packages/rolldown/src/app/pages/compare/[sessions]/index.vue @@ -2,7 +2,6 @@ import type { SessionCompareContext } from '~~/shared/types' import { useRoute } from '#app/composables/router' import { useRpc } from '#imports' -import VisualLoading from '@vitejs/devtools-ui/components/VisualLoading.vue' import { computed, onMounted, ref } from 'vue' const isLoading = ref(false) diff --git a/packages/vite/src/app/pages/index.vue b/packages/rolldown/src/app/pages/index.vue similarity index 97% rename from packages/vite/src/app/pages/index.vue rename to packages/rolldown/src/app/pages/index.vue index 7ace42e1..3f0398a4 100644 --- a/packages/vite/src/app/pages/index.vue +++ b/packages/rolldown/src/app/pages/index.vue @@ -1,7 +1,6 @@ + + +``` + +## Vite Config for Client (src/client/vite.config.ts) + +```ts +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' + +export default defineConfig({ + plugins: [vue()], + build: { + outDir: '../../dist/client', + emptyOutDir: true, + }, +}) +``` + +## Real-World Reference + +See [packages/vite](https://github.com/user/vite-devtools/tree/main/packages/vite) for a complete implementation example with: + +- Multiple RPC functions organized by feature +- Nuxt-based client UI +- Complex data visualization +- Build session management diff --git a/skills/vite-devtools-kit/references/rpc-patterns.md b/skills/vite-devtools-kit/references/rpc-patterns.md new file mode 100644 index 00000000..bfce7cee --- /dev/null +++ b/skills/vite-devtools-kit/references/rpc-patterns.md @@ -0,0 +1,185 @@ +# RPC Patterns + +Advanced patterns for server-client communication in DevTools integrations. + +## Function Types + +| Type | Caching | Use Case | +|------|---------|----------| +| `query` | Can be cached | Read operations, data fetching | +| `action` | Never cached | Mutations, side effects | +| `static` | Cached indefinitely | Constants, configuration | + +## Type-Safe RPC Setup + +### Step 1: Define Types + +```ts +// src/types.ts +import '@vitejs/devtools-kit' + +interface Module { + id: string + size: number + imports: string[] +} + +declare module '@vitejs/devtools-kit' { + interface DevToolsRpcServerFunctions { + 'my-plugin:list-modules': () => Promise + 'my-plugin:get-module': (id: string) => Promise + 'my-plugin:analyze': (options: { deep: boolean }) => Promise + } + + interface DevToolsRpcClientFunctions { + 'my-plugin:highlight': (selector: string) => void + 'my-plugin:refresh': () => void + } +} +``` + +### Step 2: Import Types File + +```ts +// src/node/plugin.ts +import '../types' // Side-effect import for type augmentation +``` + +### Step 3: Register Functions + +```ts +import { defineRpcFunction } from '@vitejs/devtools-kit' + +const listModules = defineRpcFunction({ + name: 'my-plugin:list-modules', + type: 'query', + setup: () => ({ + handler: async (): Promise => { + return Array.from(moduleMap.values()) + }, + }), +}) +``` + +## Context Access in Setup + +The `setup` function receives the full `DevToolsNodeContext`: + +```ts +defineRpcFunction({ + name: 'my-plugin:get-config', + type: 'static', + setup: (ctx) => { + // Access at setup time (runs once) + const root = ctx.viteConfig.root + const isDev = ctx.mode === 'dev' + + return { + handler: async () => ({ + root, + isDev, + plugins: ctx.viteConfig.plugins.map(p => p.name), + }), + } + }, +}) +``` + +## Broadcasting Patterns + +### Basic Broadcast + +```ts +// Notify all clients +ctx.rpc.broadcast({ + method: 'my-plugin:refresh', + args: [], +}) +``` + +### Broadcast with Data + +```ts +ctx.viteServer?.watcher.on('change', (file) => { + ctx.rpc.broadcast({ + method: 'my-plugin:file-changed', + args: [{ path: file, timestamp: Date.now() }], + }) +}) +``` + +### Optional Broadcast + +```ts +// Won't error if no clients have registered the function +ctx.rpc.broadcast({ + method: 'my-plugin:optional-update', + args: [data], + optional: true, +}) +``` + +## Client Function Registration + +```ts +// Client-side (action/renderer script) +export default function setup(ctx: DevToolsClientScriptContext) { + ctx.current.rpc.client.register({ + name: 'my-plugin:highlight', + type: 'action', + handler: (selector: string) => { + const el = document.querySelector(selector) + if (el) { + el.style.outline = '3px solid red' + setTimeout(() => { + el.style.outline = '' + }, 2000) + } + }, + }) +} +``` + +## Collecting RPC Functions + +Organize RPC functions in a registry pattern: + +```ts +import { analyzeBundle } from './functions/analyze-bundle' +// src/node/rpc/index.ts +import { getModules } from './functions/get-modules' +import { getStats } from './functions/get-stats' + +export const rpcFunctions = [ + getModules, + getStats, + analyzeBundle, +] as const + +// Register all in setup +for (const fn of rpcFunctions) { + ctx.rpc.register(fn) +} +``` + +## Type Extraction Utilities + +```ts +import type { + RpcDefinitionsFilter, + RpcDefinitionsToFunctions, +} from '@vitejs/devtools-kit' + +// Extract all function types +export type ServerFunctions = RpcDefinitionsToFunctions + +// Extract only static functions +export type StaticFunctions = RpcDefinitionsToFunctions< + RpcDefinitionsFilter +> + +// Augment the global interface +declare module '@vitejs/devtools-kit' { + export interface DevToolsRpcServerFunctions extends ServerFunctions {} +} +``` diff --git a/skills/vite-devtools-kit/references/shared-state-patterns.md b/skills/vite-devtools-kit/references/shared-state-patterns.md new file mode 100644 index 00000000..1abad59c --- /dev/null +++ b/skills/vite-devtools-kit/references/shared-state-patterns.md @@ -0,0 +1,290 @@ +# Shared State Patterns + +Synchronized state between server and all clients. + +## Basic Usage + +### Server-Side + +```ts +const state = await ctx.rpc.sharedState.get('my-plugin:state', { + initialValue: { + count: 0, + items: [], + settings: { theme: 'dark' }, + }, +}) + +// Read +const current = state.value() + +// Mutate (syncs to all clients) +state.mutate((draft) => { + draft.count += 1 + draft.items.push({ id: Date.now(), name: 'New' }) +}) +``` + +### Client-Side + +```ts +import { getDevToolsRpcClient } from '@vitejs/devtools-kit/client' + +const client = await getDevToolsRpcClient() +const state = await client.rpc.sharedState.get('my-plugin:state') + +// Read +console.log(state.value()) + +// Subscribe +state.on('updated', (newState) => { + console.log('Updated:', newState) +}) +``` + +## Type-Safe Shared State + +```ts +// src/types.ts +interface MyPluginState { + count: number + items: Array<{ id: string, name: string }> + settings: { + theme: 'light' | 'dark' + notifications: boolean + } +} + +declare module '@vitejs/devtools-kit' { + interface DevToolsRpcSharedStates { + 'my-plugin:state': MyPluginState + } +} +``` + +## Vue Integration + +```ts +// composables/useSharedState.ts +import { getDevToolsRpcClient } from '@vitejs/devtools-kit/client' +import { onMounted, shallowRef } from 'vue' + +export function useSharedState(name: string) { + const state = shallowRef(null) + const loading = shallowRef(true) + + onMounted(async () => { + const client = await getDevToolsRpcClient() + const shared = await client.rpc.sharedState.get(name) + + state.value = shared.value() + loading.value = false + + shared.on('updated', (newState) => { + state.value = newState + }) + }) + + return { state, loading } +} + +// Usage in component +const { state, loading } = useSharedState('my-plugin:state') +``` + +### Full Vue Component Example + +```vue + + + +``` + +## React Integration + +```tsx +import { getDevToolsRpcClient } from '@vitejs/devtools-kit/client' +import { useEffect, useState } from 'react' + +function useSharedState(name: string, fallback: T) { + const [state, setState] = useState(fallback) + const [loading, setLoading] = useState(true) + + useEffect(() => { + let mounted = true + + async function init() { + const client = await getDevToolsRpcClient() + const shared = await client.rpc.sharedState.get(name) + + if (mounted) { + setState(shared.value() ?? fallback) + setLoading(false) + + shared.on('updated', (newState) => { + if (mounted) + setState(newState) + }) + } + } + + init() + return () => { + mounted = false + } + }, [name]) + + return { state, loading } +} + +// Usage +function MyComponent() { + const { state, loading } = useSharedState('my-plugin:state', { count: 0 }) + + if (loading) + return
Loading...
+ + return ( +
+ Count: + {state.count} +
+ ) +} +``` + +## Svelte Integration + +```svelte + + +

Count: {$state.count}

+``` + +## Best Practices + +### Batch Mutations + +```ts +// Good - single sync event +state.mutate((draft) => { + draft.count += 1 + draft.lastUpdate = Date.now() + draft.items.push(newItem) +}) + +// Bad - multiple sync events +state.mutate((d) => { + d.count += 1 +}) +state.mutate((d) => { + d.lastUpdate = Date.now() +}) +state.mutate((d) => { + d.items.push(newItem) +}) +``` + +### Keep State Small + +For large datasets, store IDs in shared state and fetch details via RPC: + + +```ts +// Shared state (small) +{ + moduleIds: ['a', 'b', 'c'], + selectedId: 'a' +} + +// Fetch full data via RPC when needed +const module = await rpc.call('my-plugin:get-module', state.selectedId) +``` + +### Serializable Data Only + + +```ts +// Bad - functions can't be serialized +{ count: 0, increment: () => {} } + +// Bad - circular references +const obj = { child: null } +obj.child = obj + +// Good - plain data +{ count: 0, items: [{ id: 1 }] } +``` + +### Real-Time Updates Example + +```ts +const plugin: Plugin = { + devtools: { + async setup(ctx) { + const state = await ctx.rpc.sharedState.get('my-plugin:state', { + initialValue: { modules: [], lastUpdate: 0 }, + }) + + // Update state when Vite processes modules + ctx.viteServer?.watcher.on('change', (file) => { + state.mutate((draft) => { + draft.modules.push(file) + draft.lastUpdate = Date.now() + }) + }) + } + } +} +``` From 223f2e28d43831576fde804164f1d6d24caa4415 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 3 Feb 2026 16:00:20 +0900 Subject: [PATCH 4/4] chore: make turbo respect pnpm-lock --- pnpm-lock.yaml | 361 ++++++++++--------------------------------------- turbo.json | 1 + 2 files changed, 69 insertions(+), 293 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c278d84a..f1dae38b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -526,7 +526,7 @@ importers: version: link:../packages/core '@voidzero-dev/vitepress-theme': specifier: catalog:docs - version: 4.4.1(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + version: 4.4.1(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) mermaid: specifier: catalog:docs version: 11.12.2 @@ -1592,9 +1592,6 @@ packages: '@iconify-json/ri@1.2.7': resolution: {integrity: sha512-j/Fkb8GlWY5y/zLj1BGxWRtDzuJFrI7562zLw+iQVEykieBgew43+r8qAvtSajvb75MfUIHjsNOYQPRD8FfLfw==} - '@iconify-json/simple-icons@1.2.67': - resolution: {integrity: sha512-RGJRwlxyup54L1UDAjCshy3ckX5zcvYIU74YLSnUgHGvqh6B4mvksbGNHAIEp7dZQ6cM13RZVT5KC07CmnFNew==} - '@iconify-json/simple-icons@1.2.68': resolution: {integrity: sha512-bQPl1zuZlX6AnofreA1v7J+hoPncrFMppqGboe/SH54jZO37meiBUGBqNOxEpc0HKfZGxJaVVJwZd4gdMYu3hw==} @@ -2945,10 +2942,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.53.0': - resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.53.1': resolution: {integrity: sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2976,10 +2969,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.53.0': - resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.53.1': resolution: {integrity: sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3014,10 +3003,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.53.0': - resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.53.1': resolution: {integrity: sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3349,30 +3334,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.5.26': - resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} - '@vue/compiler-core@3.5.27': resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==} - '@vue/compiler-dom@3.5.26': - resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} - '@vue/compiler-dom@3.5.27': resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==} '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} - '@vue/compiler-sfc@3.5.26': - resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} - '@vue/compiler-sfc@3.5.27': resolution: {integrity: sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==} - '@vue/compiler-ssr@3.5.26': - resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} - '@vue/compiler-ssr@3.5.27': resolution: {integrity: sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==} @@ -3393,43 +3366,23 @@ packages: '@vue/devtools-shared@8.0.5': resolution: {integrity: sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==} - '@vue/language-core@3.2.2': - resolution: {integrity: sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ==} - '@vue/language-core@3.2.4': resolution: {integrity: sha512-bqBGuSG4KZM45KKTXzGtoCl9cWju5jsaBKaJJe3h5hRAAWpZUuj5G+L+eI01sPIkm4H6setKRlw7E85wLdDNew==} - '@vue/reactivity@3.5.26': - resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==} - '@vue/reactivity@3.5.27': resolution: {integrity: sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==} - '@vue/runtime-core@3.5.26': - resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==} - '@vue/runtime-core@3.5.27': resolution: {integrity: sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==} - '@vue/runtime-dom@3.5.26': - resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==} - '@vue/runtime-dom@3.5.27': resolution: {integrity: sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==} - '@vue/server-renderer@3.5.26': - resolution: {integrity: sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==} - peerDependencies: - vue: 3.5.26 - '@vue/server-renderer@3.5.27': resolution: {integrity: sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==} peerDependencies: vue: 3.5.27 - '@vue/shared@3.5.26': - resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} - '@vue/shared@3.5.27': resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} @@ -3950,10 +3903,6 @@ packages: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} - comment-parser@1.4.4: - resolution: {integrity: sha512-0D6qSQ5IkeRrGJFHRClzaMOenMeT0gErz3zIw3AprKMqhRN6LNU2jQOdkPG/FZ+8bCgXE1VidrgSzlBBDZRr8A==} - engines: {node: '>= 12.0.0'} - comment-parser@1.4.5: resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} engines: {node: '>= 12.0.0'} @@ -4685,10 +4634,6 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@11.0.0: - resolution: {integrity: sha512-+gMeWRrIh/NsG+3NaLeWHuyeyk70p2tbvZIWBYcqQ4/7Xvars6GYTZNhF1sIeLcc6Wb11He5ffz3hsHyXFrw5A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - espree@11.1.0: resolution: {integrity: sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -4942,10 +4887,6 @@ packages: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} - globals@17.0.0: - resolution: {integrity: sha512-gv5BeD2EssA793rlFWVPMMCqefTlpusw6/2TbAVMy0FzcG8wKJn4O+NqJ4+XWmmwrayJgw5TzrmWjFgmz1XPqw==} - engines: {node: '>=18'} - globals@17.2.0: resolution: {integrity: sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg==} engines: {node: '>=18'} @@ -4971,9 +4912,6 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - h3@1.15.4: - resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} - h3@1.15.5: resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==} @@ -5438,9 +5376,6 @@ packages: resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==} engines: {node: '>=20'} - lodash-es@4.17.22: - resolution: {integrity: sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==} - lodash-es@4.17.23: resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} @@ -6023,9 +5958,6 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - perfect-debounce@2.0.0: - resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} - perfect-debounce@2.1.0: resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} @@ -6777,6 +6709,7 @@ packages: tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me terser-webpack-plugin@5.3.16: resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} @@ -6979,9 +6912,6 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.2: - resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==} - ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} @@ -7452,14 +7382,6 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.5.26: - resolution: {integrity: sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - vue@3.5.27: resolution: {integrity: sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==} peerDependencies: @@ -7784,7 +7706,7 @@ snapshots: eslint-plugin-vue: 10.7.0(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) eslint-plugin-yml: 3.0.0(eslint@9.39.2(jiti@2.6.1)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.27)(eslint@9.39.2(jiti@2.6.1)) - globals: 17.0.0 + globals: 17.2.0 jsonc-eslint-parser: 2.4.2 local-pkg: 1.1.2 parse-gitignore: 2.0.0 @@ -8140,7 +8062,7 @@ snapshots: '@es-joy/jsdoccomment@0.78.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/types': 8.54.0 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.0.0 @@ -8148,7 +8070,7 @@ snapshots: '@es-joy/jsdoccomment@0.83.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/types': 8.54.0 comment-parser: 1.4.5 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.1.0 @@ -8348,11 +8270,11 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@floating-ui/vue@1.1.9(vue@3.5.26(typescript@5.9.3))': + '@floating-ui/vue@1.1.9(vue@3.5.27(typescript@5.9.3))': dependencies: '@floating-ui/dom': 1.7.5 '@floating-ui/utils': 0.2.10 - vue-demi: 0.14.10(vue@3.5.26(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.27(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -8406,10 +8328,6 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.67': - dependencies: - '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.68': dependencies: '@iconify/types': 2.0.0 @@ -8569,14 +8487,14 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 pkg-types: 2.3.0 scule: 1.3.0 semver: 7.7.3 srvx: 0.10.0 std-env: 3.10.0 tinyexec: 1.0.2 - ufo: 1.6.2 + ufo: 1.6.3 youch: 4.1.0-beta.13 transitivePeerDependencies: - cac @@ -8628,7 +8546,7 @@ snapshots: nypm: 0.6.2 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 pkg-types: 2.3.0 semver: 7.7.3 simple-git: 3.30.0 @@ -8679,7 +8597,7 @@ snapshots: '@nuxt/eslint-plugin@1.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/types': 8.54.0 '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) transitivePeerDependencies: @@ -8733,7 +8651,7 @@ snapshots: scule: 1.3.0 semver: 7.7.3 tinyglobby: 0.2.15 - ufo: 1.6.2 + ufo: 1.6.3 unctx: 2.5.0 untyped: 2.0.0 transitivePeerDependencies: @@ -8744,7 +8662,7 @@ snapshots: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.2.2(magicast@0.5.1) '@unhead/vue': 2.1.1(vue@3.5.27(typescript@5.9.3)) - '@vue/shared': 3.5.26 + '@vue/shared': 3.5.27 consola: 3.4.2 defu: 6.1.4 destr: 2.0.5 @@ -8762,7 +8680,7 @@ snapshots: pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 - ufo: 1.6.2 + ufo: 1.6.3 unctx: 2.5.0 unstorage: 1.17.4(db0@0.3.4)(idb-keyval@6.2.2)(ioredis@5.9.1) vue: 3.5.27(typescript@5.9.3) @@ -8805,7 +8723,7 @@ snapshots: '@nuxt/schema@4.2.2': dependencies: - '@vue/shared': 3.5.26 + '@vue/shared': 3.5.27 defu: 6.1.4 pathe: 2.0.3 pkg-types: 2.3.0 @@ -9426,7 +9344,7 @@ snapshots: '@shikijs/vitepress-twoslash@3.21.0(@nuxt/kit@4.2.2(magicast@0.5.1))(typescript@5.9.3)': dependencies: '@shikijs/twoslash': 3.21.0(typescript@5.9.3) - floating-vue: 5.2.2(@nuxt/kit@4.2.2(magicast@0.5.1))(vue@3.5.26(typescript@5.9.3)) + floating-vue: 5.2.2(@nuxt/kit@4.2.2(magicast@0.5.1))(vue@3.5.27(typescript@5.9.3)) lz-string: 1.5.0 magic-string: 0.30.21 markdown-it: 14.1.0 @@ -9437,7 +9355,7 @@ snapshots: shiki: 3.21.0 twoslash: 0.3.6(typescript@5.9.3) twoslash-vue: 0.3.6(typescript@5.9.3) - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -9458,10 +9376,10 @@ snapshots: '@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/types': 8.54.0 eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 5.0.0 - espree: 11.0.0 + espree: 11.1.0 estraverse: 5.3.0 picomatch: 4.0.3 @@ -9544,10 +9462,10 @@ snapshots: '@tanstack/virtual-core@3.13.18': {} - '@tanstack/vue-virtual@3.13.18(vue@3.5.26(typescript@5.9.3))': + '@tanstack/vue-virtual@3.13.18(vue@3.5.27(typescript@5.9.3))': dependencies: '@tanstack/virtual-core': 3.13.18 - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) '@tybys/wasm-util@0.10.1': dependencies: @@ -9818,8 +9736,8 @@ snapshots: '@typescript-eslint/project-service@8.53.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) - '@typescript-eslint/types': 8.53.1 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -9834,11 +9752,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.53.0': - dependencies: - '@typescript-eslint/types': 8.53.0 - '@typescript-eslint/visitor-keys': 8.53.0 - '@typescript-eslint/scope-manager@8.53.1': dependencies: '@typescript-eslint/types': 8.53.1 @@ -9869,8 +9782,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.53.0': {} - '@typescript-eslint/types@8.53.1': {} '@typescript-eslint/types@8.54.0': {} @@ -9927,11 +9838,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.53.0': - dependencies: - '@typescript-eslint/types': 8.53.0 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.53.1': dependencies: '@typescript-eslint/types': 8.53.1 @@ -9979,7 +9885,7 @@ snapshots: consola: 3.4.2 magic-string: 0.30.21 pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 tinyglobby: 0.2.15 unplugin-utils: 0.3.1 @@ -10256,12 +10162,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.3(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': - dependencies: - '@rolldown/pluginutils': 1.0.0-beta.53 - vite: 8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - vue: 3.5.26(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.3(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.53 @@ -10270,7 +10170,7 @@ snapshots: '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@typescript-eslint/scope-manager': 8.53.1 + '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) optionalDependencies: @@ -10318,7 +10218,7 @@ snapshots: '@vitest/pretty-format': 4.0.18 tinyrainbow: 3.0.3 - '@voidzero-dev/vitepress-theme@4.4.1(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + '@voidzero-dev/vitepress-theme@4.4.1(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': dependencies: '@docsearch/css': 4.4.0 '@docsearch/js': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3) @@ -10326,15 +10226,15 @@ snapshots: '@tailwindcss/typography': 0.5.19(tailwindcss@4.1.18) '@tailwindcss/vite': 4.1.18(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vue/shared': 3.5.27 - '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3)) - '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.26(typescript@5.9.3)) - '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3)) + '@vueuse/core': 14.1.0(vue@3.5.27(typescript@5.9.3)) + '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.27(typescript@5.9.3)) + '@vueuse/shared': 14.1.0(vue@3.5.27(typescript@5.9.3)) mark.js: 8.11.1 minisearch: 7.2.0 - reka-ui: 2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)) + reka-ui: 2.7.0(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)) tailwindcss: 4.1.18 vitepress: 2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -10371,7 +10271,7 @@ snapshots: '@vue-macros/common@3.1.2(vue@3.5.27(typescript@5.9.3))': dependencies: - '@vue/compiler-sfc': 3.5.26 + '@vue/compiler-sfc': 3.5.27 ast-kit: 2.2.0 local-pkg: 1.1.2 magic-string-ast: 1.0.3 @@ -10408,14 +10308,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.26': - dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.26 - entities: 7.0.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.27': dependencies: '@babel/parser': 7.28.5 @@ -10424,11 +10316,6 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.26': - dependencies: - '@vue/compiler-core': 3.5.26 - '@vue/shared': 3.5.26 - '@vue/compiler-dom@3.5.27': dependencies: '@vue/compiler-core': 3.5.27 @@ -10442,18 +10329,6 @@ snapshots: optionalDependencies: prettier: 2.8.8 - '@vue/compiler-sfc@3.5.26': - dependencies: - '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.26 - '@vue/compiler-dom': 3.5.26 - '@vue/compiler-ssr': 3.5.26 - '@vue/shared': 3.5.26 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.6 - source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.27': dependencies: '@babel/parser': 7.28.5 @@ -10466,11 +10341,6 @@ snapshots: postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.26': - dependencies: - '@vue/compiler-dom': 3.5.26 - '@vue/shared': 3.5.26 - '@vue/compiler-ssr@3.5.27': dependencies: '@vue/compiler-dom': 3.5.27 @@ -10500,7 +10370,7 @@ snapshots: birpc: 2.9.0 hookable: 5.5.3 mitt: 3.0.1 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 speakingurl: 14.0.1 superjson: 2.2.6 @@ -10508,16 +10378,6 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@3.2.2': - dependencies: - '@volar/language-core': 2.4.27 - '@vue/compiler-dom': 3.5.26 - '@vue/shared': 3.5.26 - alien-signals: 3.1.2 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - picomatch: 4.0.3 - '@vue/language-core@3.2.4': dependencies: '@volar/language-core': 2.4.27 @@ -10528,31 +10388,15 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.3 - '@vue/reactivity@3.5.26': - dependencies: - '@vue/shared': 3.5.26 - '@vue/reactivity@3.5.27': dependencies: '@vue/shared': 3.5.27 - '@vue/runtime-core@3.5.26': - dependencies: - '@vue/reactivity': 3.5.26 - '@vue/shared': 3.5.26 - '@vue/runtime-core@3.5.27': dependencies: '@vue/reactivity': 3.5.27 '@vue/shared': 3.5.27 - '@vue/runtime-dom@3.5.26': - dependencies: - '@vue/reactivity': 3.5.26 - '@vue/runtime-core': 3.5.26 - '@vue/shared': 3.5.26 - csstype: 3.2.3 - '@vue/runtime-dom@3.5.27': dependencies: '@vue/reactivity': 3.5.27 @@ -10560,20 +10404,12 @@ snapshots: '@vue/shared': 3.5.27 csstype: 3.2.3 - '@vue/server-renderer@3.5.26(vue@3.5.26(typescript@5.9.3))': - dependencies: - '@vue/compiler-ssr': 3.5.26 - '@vue/shared': 3.5.26 - vue: 3.5.26(typescript@5.9.3) - '@vue/server-renderer@3.5.27(vue@3.5.27(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.27 '@vue/shared': 3.5.27 vue: 3.5.27(typescript@5.9.3) - '@vue/shared@3.5.26': {} - '@vue/shared@3.5.27': {} '@vueuse/components@14.1.0(vue@3.5.27(typescript@5.9.3))': @@ -10591,13 +10427,6 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/core@14.1.0(vue@3.5.26(typescript@5.9.3))': - dependencies: - '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 14.1.0 - '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3)) - vue: 3.5.26(typescript@5.9.3) - '@vueuse/core@14.1.0(vue@3.5.27(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.21 @@ -10605,11 +10434,11 @@ snapshots: '@vueuse/shared': 14.1.0(vue@3.5.27(typescript@5.9.3)) vue: 3.5.27(typescript@5.9.3) - '@vueuse/integrations@14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.26(typescript@5.9.3))': + '@vueuse/integrations@14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.27(typescript@5.9.3))': dependencies: - '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3)) - '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3)) - vue: 3.5.26(typescript@5.9.3) + '@vueuse/core': 14.1.0(vue@3.5.27(typescript@5.9.3)) + '@vueuse/shared': 14.1.0(vue@3.5.27(typescript@5.9.3)) + vue: 3.5.27(typescript@5.9.3) optionalDependencies: change-case: 5.4.4 focus-trap: 7.7.1 @@ -10643,10 +10472,6 @@ snapshots: transitivePeerDependencies: - typescript - '@vueuse/shared@14.1.0(vue@3.5.26(typescript@5.9.3))': - dependencies: - vue: 3.5.26(typescript@5.9.3) - '@vueuse/shared@14.1.0(vue@3.5.27(typescript@5.9.3))': dependencies: vue: 3.5.27(typescript@5.9.3) @@ -10991,7 +10816,7 @@ snapshots: jiti: 2.6.1 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 pkg-types: 2.3.0 rc9: 2.1.2 optionalDependencies: @@ -11030,7 +10855,7 @@ snapshots: chevrotain-allstar@0.3.1(chevrotain@11.1.1): dependencies: chevrotain: 11.1.1 - lodash-es: 4.17.22 + lodash-es: 4.17.23 chevrotain@11.1.1: dependencies: @@ -11112,8 +10937,6 @@ snapshots: comment-parser@1.4.1: {} - comment-parser@1.4.4: {} - comment-parser@1.4.5: {} commondir@1.0.1: {} @@ -11441,7 +11264,7 @@ snapshots: dagre-d3-es@7.0.13: dependencies: d3: 7.9.0 - lodash-es: 4.17.22 + lodash-es: 4.17.23 dayjs@1.11.19: {} @@ -11673,8 +11496,8 @@ snapshots: eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.53.1 - comment-parser: 1.4.4 + '@typescript-eslint/types': 8.54.0 + comment-parser: 1.4.5 debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) @@ -11764,7 +11587,7 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - comment-parser: 1.4.4 + comment-parser: 1.4.5 eslint: 9.39.2(jiti@2.6.1) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 @@ -11775,9 +11598,9 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - comment-parser: 1.4.4 + comment-parser: 1.4.5 eslint: 9.39.2(jiti@2.6.1) - jsdoc-type-pratt-parser: 7.0.0 + jsdoc-type-pratt-parser: 7.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 @@ -11816,7 +11639,7 @@ snapshots: eslint-plugin-unimport@0.1.2(eslint@9.39.2(jiti@2.6.1))(rollup@4.55.1)(typescript@5.9.3): dependencies: - '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) @@ -11934,12 +11757,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 - espree@11.0.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 5.0.0 - espree@11.1.0: dependencies: acorn: 8.15.0 @@ -12067,14 +11884,6 @@ snapshots: flatted@3.3.3: {} - floating-vue@5.2.2(@nuxt/kit@4.2.2(magicast@0.5.1))(vue@3.5.26(typescript@5.9.3)): - dependencies: - '@floating-ui/dom': 1.1.1 - vue: 3.5.26(typescript@5.9.3) - vue-resize: 2.0.0-alpha.1(vue@3.5.26(typescript@5.9.3)) - optionalDependencies: - '@nuxt/kit': 4.2.2(magicast@0.5.1) - floating-vue@5.2.2(@nuxt/kit@4.2.2(magicast@0.5.1))(vue@3.5.27(typescript@5.9.3)): dependencies: '@floating-ui/dom': 1.1.1 @@ -12178,8 +11987,6 @@ snapshots: globals@16.5.0: {} - globals@17.0.0: {} - globals@17.2.0: {} globby@16.1.0: @@ -12205,18 +12012,6 @@ snapshots: dependencies: duplexer: 0.1.2 - h3@1.15.4: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.4 - radix3: 1.1.2 - ufo: 1.6.2 - uncrypto: 0.1.3 - h3@1.15.5: dependencies: cookie-es: 1.2.2 @@ -12645,8 +12440,6 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash-es@4.17.22: {} - lodash-es@4.17.23: {} lodash.defaults@4.2.0: {} @@ -12688,7 +12481,7 @@ snapshots: mlly: 1.8.0 regexp-tree: 0.1.27 type-level-regexp: 0.1.17 - ufo: 1.6.2 + ufo: 1.6.3 unplugin: 2.3.11 magic-string-ast@1.0.3: @@ -12871,7 +12664,7 @@ snapshots: dompurify: 3.3.1 katex: 0.16.27 khroma: 2.1.0 - lodash-es: 4.17.22 + lodash-es: 4.17.23 marked: 16.4.2 roughjs: 4.6.6 stylis: 4.3.6 @@ -13214,7 +13007,7 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 pkg-types: 2.3.0 pretty-bytes: 7.1.0 radix3: 1.1.2 @@ -13328,7 +13121,7 @@ snapshots: '@nuxt/telemetry': 2.6.6(magicast@0.5.1) '@nuxt/vite-builder': https://pkg.pr.new/@nuxt/vite-builder@33682(@types/node@25.0.3)(eslint@9.39.2(jiti@2.6.1))(magicast@0.5.1)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@25.0.3)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.2)(ioredis@5.9.1)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.2)(rollup@4.55.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.4(typescript@5.9.3))(yaml@2.8.2))(optionator@0.9.4)(rolldown@1.0.0-rc.2)(rollup@4.55.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@3.2.4(typescript@5.9.3))(vue@3.5.27(typescript@5.9.3))(yaml@2.8.2) '@unhead/vue': 2.1.1(vue@3.5.27(typescript@5.9.3)) - '@vue/shared': 3.5.26 + '@vue/shared': 3.5.27 c12: 3.3.3(magicast@0.5.1) chokidar: 5.0.0 compatx: 0.2.0 @@ -13340,7 +13133,7 @@ snapshots: errx: 0.1.0 escape-string-regexp: 5.0.0 exsolve: 1.0.8 - h3: 1.15.4 + h3: 1.15.5 hookable: 5.5.3 ignore: 7.0.5 impound: 1.0.0 @@ -13359,14 +13152,14 @@ snapshots: oxc-transform: 0.102.0 oxc-walker: 0.6.0(oxc-parser@0.102.0) pathe: 2.0.3 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 pkg-types: 2.3.0 radix3: 1.1.2 scule: 1.3.0 semver: 7.7.3 std-env: 3.10.0 tinyglobby: 0.2.15 - ufo: 1.6.2 + ufo: 1.6.3 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.5.0 @@ -13653,8 +13446,6 @@ snapshots: pathe@2.0.3: {} - perfect-debounce@2.0.0: {} - perfect-debounce@2.1.0: {} picocolors@1.1.1: {} @@ -13971,19 +13762,19 @@ snapshots: dependencies: jsesc: 3.1.0 - reka-ui@2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)): + reka-ui@2.7.0(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)): dependencies: '@floating-ui/dom': 1.7.5 - '@floating-ui/vue': 1.1.9(vue@3.5.26(typescript@5.9.3)) + '@floating-ui/vue': 1.1.9(vue@3.5.27(typescript@5.9.3)) '@internationalized/date': 3.10.1 '@internationalized/number': 3.6.5 - '@tanstack/vue-virtual': 3.13.18(vue@3.5.26(typescript@5.9.3)) + '@tanstack/vue-virtual': 3.13.18(vue@3.5.27(typescript@5.9.3)) '@vueuse/core': 12.8.2(typescript@5.9.3) '@vueuse/shared': 12.8.2(typescript@5.9.3) aria-hidden: 1.2.6 defu: 6.1.4 ohash: 2.0.11 - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' - typescript @@ -14570,7 +14361,7 @@ snapshots: twoslash-vue@0.3.6(typescript@5.9.3): dependencies: - '@vue/language-core': 3.2.2 + '@vue/language-core': 3.2.4 twoslash: 0.3.6(typescript@5.9.3) twoslash-protocol: 0.3.6 typescript: 5.9.3 @@ -14601,8 +14392,6 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.6.2: {} - ufo@1.6.3: {} ultrahtml@1.6.0: {} @@ -14745,7 +14534,7 @@ snapshots: '@babel/generator': 7.28.5 '@vue-macros/common': 3.1.2(vue@3.5.27(typescript@5.9.3)) '@vue/compiler-sfc': 3.5.27 - '@vue/language-core': 3.2.2 + '@vue/language-core': 3.2.4 ast-walker-scope: 0.8.3 chokidar: 5.0.0 json5: 2.2.3 @@ -14957,7 +14746,7 @@ snapshots: error-stack-parser-es: 1.0.5 ohash: 2.0.11 open: 10.2.0 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 vite: 8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) @@ -15014,22 +14803,22 @@ snapshots: dependencies: '@docsearch/css': 4.4.0 '@docsearch/js': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.67 + '@iconify-json/simple-icons': 1.2.68 '@shikijs/core': 3.21.0 '@shikijs/transformers': 3.21.0 '@shikijs/types': 3.21.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 6.0.3(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.3(vite@8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) '@vue/devtools-api': 8.0.5 - '@vue/shared': 3.5.26 - '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3)) - '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.26(typescript@5.9.3)) + '@vue/shared': 3.5.27 + '@vueuse/core': 14.1.0(vue@3.5.27(typescript@5.9.3)) + '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.27(typescript@5.9.3)) focus-trap: 7.7.1 mark.js: 8.11.1 minisearch: 7.2.0 shiki: 3.21.0 vite: 8.0.0-beta.10(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) optionalDependencies: oxc-minify: 0.102.0 postcss: 8.5.6 @@ -15127,9 +14916,9 @@ snapshots: dependencies: ufo: 1.6.3 - vue-demi@0.14.10(vue@3.5.26(typescript@5.9.3)): + vue-demi@0.14.10(vue@3.5.27(typescript@5.9.3)): dependencies: - vue: 3.5.26(typescript@5.9.3) + vue: 3.5.27(typescript@5.9.3) vue-devtools-stub@0.1.0: {} @@ -15151,10 +14940,6 @@ snapshots: dependencies: vue: 3.5.27(typescript@5.9.3) - vue-resize@2.0.0-alpha.1(vue@3.5.26(typescript@5.9.3)): - dependencies: - vue: 3.5.26(typescript@5.9.3) - vue-resize@2.0.0-alpha.1(vue@3.5.27(typescript@5.9.3)): dependencies: vue: 3.5.27(typescript@5.9.3) @@ -15182,16 +14967,6 @@ snapshots: '@vue/compiler-sfc': 2.7.16 csstype: 3.2.3 - vue@3.5.26(typescript@5.9.3): - dependencies: - '@vue/compiler-dom': 3.5.26 - '@vue/compiler-sfc': 3.5.26 - '@vue/runtime-dom': 3.5.26 - '@vue/server-renderer': 3.5.26(vue@3.5.26(typescript@5.9.3)) - '@vue/shared': 3.5.26 - optionalDependencies: - typescript: 5.9.3 - vue@3.5.27(typescript@5.9.3): dependencies: '@vue/compiler-dom': 3.5.27 diff --git a/turbo.json b/turbo.json index af907315..68a52a94 100644 --- a/turbo.json +++ b/turbo.json @@ -1,5 +1,6 @@ { "$schema": "https://turbo.build/schema.json", + "globalDependencies": ["pnpm-lock.yaml"], "tasks": { "build": { "outputLogs": "new-only",