diff --git a/docs/content/1.guide/0.getting-started.md b/docs/content/1.guide/0.getting-started.md index fde507d5e1..e9f070a24a 100644 --- a/docs/content/1.guide/0.getting-started.md +++ b/docs/content/1.guide/0.getting-started.md @@ -1,17 +1,11 @@ --- title: Getting Started -description: Using Nuxt DevTools in your Nuxt project is only a command away. +description: Nuxt DevTools is shipped with Nuxt. Enable it in your config to get started. --- ## Installation -::callout -Nuxt DevTools v2 requires **Nuxt v3.15.0 or higher**. -:: - -### Auto Install - -You just need to go to your `nuxt.config` file and set `devtools` to `true`: +Nuxt DevTools is shipped with Nuxt. To enable it, set `devtools` to `true` in your `nuxt.config`: ```ts [nuxt.config.ts] export default defineNuxtConfig({ @@ -19,46 +13,10 @@ export default defineNuxtConfig({ }) ``` -Nuxt will automatically install the DevTools module for you. - -### Install using Nuxi - -You can opt-in Nuxt DevTools per-project by going to the project root and run: - -```bash -npx nuxi@latest devtools enable -``` - ### Open the DevTools Panel Restart your Nuxt server and open your app in browser. Click the Nuxt icon on the bottom (or press Shift + Alt / ⇧ Shift + ⌥ Option + D) to toggle the DevTools. -::callout -If you using `nvm` or other Node version managers, we suggest to run the enable command again after switching Node version. -:: - -Similarly, you can disable it per-project by running: - -```bash -npx nuxi@latest devtools disable -``` - -### Install Manually - -Nuxt DevTools is currently provided as a module (might be changed in the future). If you prefer, you can also install it locally, which will be activated for all your team members. - -```bash -npm i -D @nuxt/devtools -``` - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - modules: [ - '@nuxt/devtools', - ], -}) -``` - ### Nightly Release Channel Similar to [Nuxt's Nightly Channel](https://nuxt.com/docs/guide/going-further/nightly-release-channel), DevTools also offers a nightly release channel, that automatically releases for every commit to `main` branch. diff --git a/docs/content/2.module/3.migration-v4.md b/docs/content/2.module/3.migration-v4.md index 239593005e..e783a0a41d 100644 --- a/docs/content/2.module/3.migration-v4.md +++ b/docs/content/2.module/3.migration-v4.md @@ -50,3 +50,32 @@ const subprocess = startSubprocess(/* ... */) + const result = subprocess.getResult() + result.process?.stdout?.on('data', handler) ``` + +## Global Install Support Removed + +Nuxt DevTools no longer supports being installed globally. + +- The `devtoolsGlobal` Nuxt config option (with `projects` whitelist) is no longer supported +- The `-g` flag is no longer used when installing/uninstalling `@nuxt/devtools` via the DevTools UI +- The `isGlobalInstall` property has been removed from `NuxtDevtoolsInfo` + +## `@nuxt/devtools-wizard` Package and `nuxi devtools` Removed + +The `@nuxt/devtools-wizard` package, its CLI, and the `nuxi devtools enable/disable` subcommand have been removed. DevTools is shipped with Nuxt — to enable or disable it, update your `nuxt.config.ts` directly: + +```ts +export default defineNuxtConfig({ + devtools: { enabled: true }, // or false +}) +``` + +## `runWizard` RPC Removed + +The `runWizard` server RPC function has been removed from `ServerFunctions`. The `enablePages` action is now available as a direct RPC function: + +```diff +- await rpc.runWizard(token, 'enablePages') ++ await rpc.enablePages(token) +``` + +The `WizardFunctions`, `WizardActions`, and `GetWizardArgs` types have been removed from `@nuxt/devtools-kit`. diff --git a/packages/devtools-kit/src/_types/index.ts b/packages/devtools-kit/src/_types/index.ts index 44dca2ea3e..d54ed0fd98 100644 --- a/packages/devtools-kit/src/_types/index.ts +++ b/packages/devtools-kit/src/_types/index.ts @@ -10,4 +10,3 @@ export * from './rpc' export * from './server-ctx' export * from './terminals' export * from './timeline-metrics' -export * from './wizard' diff --git a/packages/devtools-kit/src/_types/integrations.ts b/packages/devtools-kit/src/_types/integrations.ts index 6e5c97f9ea..0245ddb98a 100644 --- a/packages/devtools-kit/src/_types/integrations.ts +++ b/packages/devtools-kit/src/_types/integrations.ts @@ -32,7 +32,6 @@ export type NpmCommandType = 'install' | 'uninstall' | 'update' export interface NpmCommandOptions { dev?: boolean - global?: boolean } export interface AutoImportsWithMetadata { diff --git a/packages/devtools-kit/src/_types/options.ts b/packages/devtools-kit/src/_types/options.ts index b0ac0ae05a..903acd9478 100644 --- a/packages/devtools-kit/src/_types/options.ts +++ b/packages/devtools-kit/src/_types/options.ts @@ -125,13 +125,6 @@ export interface ModuleOptions { telemetry?: boolean } -export interface ModuleGlobalOptions { - /** - * List of projects to enable devtools for. Only works when devtools is installed globally. - */ - projects?: string[] -} - export interface VSCodeIntegrationOptions { /** * Enable VS Code Server integration diff --git a/packages/devtools-kit/src/_types/rpc.ts b/packages/devtools-kit/src/_types/rpc.ts index 70a37f52b2..399c6c7eff 100644 --- a/packages/devtools-kit/src/_types/rpc.ts +++ b/packages/devtools-kit/src/_types/rpc.ts @@ -8,7 +8,6 @@ import type { AssetEntry, AssetInfo, AutoImportsWithMetadata, ComponentRelations import type { ModuleOptions, NuxtDevToolsOptions } from './options' import type { InstallModuleReturn, ServerDebugContext } from './server-ctx' import type { TerminalAction, TerminalInfo } from './terminals' -import type { GetWizardArgs, WizardActions } from './wizard' export interface ServerFunctions { // Static RPCs (can be provide on production build in the future) @@ -67,7 +66,7 @@ export interface ServerFunctions { // Actions telemetryEvent: (payload: object, immediate?: boolean) => void customTabAction: (name: string, action: number) => Promise - runWizard: (token: string, name: T, ...args: GetWizardArgs) => Promise + enablePages: (token: string) => Promise openInEditor: (filepath: string) => Promise restartNuxt: (token: string, hard?: boolean) => Promise installNuxtModule: (token: string, name: string, dry?: boolean) => Promise diff --git a/packages/devtools-kit/src/_types/server-ctx.ts b/packages/devtools-kit/src/_types/server-ctx.ts index d2c27b56dc..8cbb2f70d9 100644 --- a/packages/devtools-kit/src/_types/server-ctx.ts +++ b/packages/devtools-kit/src/_types/server-ctx.ts @@ -33,7 +33,6 @@ export interface NuxtDevtoolsServerContext { export interface NuxtDevtoolsInfo { version: string packagePath: string - isGlobalInstall: boolean } export interface InstallModuleReturn { diff --git a/packages/devtools-kit/src/_types/wizard.ts b/packages/devtools-kit/src/_types/wizard.ts deleted file mode 100644 index e5391e72ba..0000000000 --- a/packages/devtools-kit/src/_types/wizard.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface WizardFunctions { - enablePages: (nuxt: any) => Promise -} - -export type WizardActions = keyof WizardFunctions - -export type GetWizardArgs = WizardFunctions[T] extends (nuxt: any, ...args: infer A) => any ? A : never diff --git a/packages/devtools-wizard/build.config.ts b/packages/devtools-wizard/build.config.ts deleted file mode 100644 index ef1ade7b09..0000000000 --- a/packages/devtools-wizard/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild' - -export default defineBuildConfig({ - entries: [ - 'src/index', - ], -}) diff --git a/packages/devtools-wizard/cli.mjs b/packages/devtools-wizard/cli.mjs deleted file mode 100755 index 23bd774894..0000000000 --- a/packages/devtools-wizard/cli.mjs +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -import('./dist/index.mjs') diff --git a/packages/devtools-wizard/package.json b/packages/devtools-wizard/package.json deleted file mode 100644 index 940c4a5d97..0000000000 --- a/packages/devtools-wizard/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@nuxt/devtools-wizard", - "type": "module", - "version": "3.2.4", - "description": "CLI Wizard to toggle Nuxt DevTools", - "license": "MIT", - "homepage": "https://devtools.nuxt.com", - "repository": { - "type": "git", - "url": "git+https://github.com/nuxt/devtools.git", - "directory": "packages/devtools-wizard" - }, - "main": "./dist/index.mjs", - "bin": "./cli.mjs", - "files": [ - "*.cjs", - "*.d.ts", - "*.mjs", - "dist" - ], - "scripts": { - "build": "unbuild", - "stub": "unbuild --stub", - "dev:prepare": "nr stub", - "prepack": "pnpm build" - }, - "dependencies": { - "@clack/prompts": "catalog:prod", - "consola": "catalog:prod", - "diff": "catalog:frontend", - - "magicast": "catalog:prod", - "pathe": "catalog:frontend", - "pkg-types": "catalog:prod", - "semver": "catalog:prod" - }, - "devDependencies": { - "@types/diff": "catalog:types", - "unbuild": "catalog:buildtools" - } -} diff --git a/packages/devtools-wizard/src/builtin.ts b/packages/devtools-wizard/src/builtin.ts deleted file mode 100644 index ff8785581b..0000000000 --- a/packages/devtools-wizard/src/builtin.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { existsSync } from 'node:fs' -import fsp from 'node:fs/promises' -import { relative } from 'node:path' -import * as p from '@clack/prompts' -import { consola } from 'consola' -import { colors } from 'consola/utils' -import { diffLines } from 'diff' -import { parseModule } from 'magicast' -import { join } from 'pathe' - -function findNuxtConfig(cwd: string) { - const names = [ - 'nuxt.config.ts', - 'nuxt.config.js', - ] - - for (const name of names) { - const path = join(cwd, name) - if (existsSync(path)) - return path - } -} - -function printOutManual(value: boolean) { - consola.info(colors.yellow('To manually enable Nuxt DevTools, add the following to your Nuxt config:')) - consola.info(colors.cyan(`\n devtools: { enabled: ${value} }\n`)) -} - -async function toggleConfig(cwd: string, value?: boolean) { - const nuxtConfig = findNuxtConfig(cwd) - if (!nuxtConfig) { - consola.error(colors.red('Unable to find Nuxt config file in current directory')) - process.exitCode = 1 - printOutManual(true) - return false - } - - try { - const source = await fsp.readFile(nuxtConfig, 'utf-8') - const mod = await parseModule(source, { sourceFileName: nuxtConfig }) - const config = mod.exports.default.$type === 'function-call' - ? mod.exports.default.$args[0] - : mod.exports.default - - if (config.devtools || value) { - config.devtools ||= {} - if (typeof config.devtools === 'object') - config.devtools.enabled = value - } - - const generated = mod.generate().code - - if (source.trim() === generated.trim()) { - consola.info(colors.yellow(`Nuxt DevTools is already ${value ? 'enabled' : 'disabled'}`)) - } - else { - consola.log('') - consola.log('We are going to update the Nuxt config with the following changes:') - consola.log(colors.bold(colors.green(`./${relative(cwd, nuxtConfig)}`))) - consola.log('') - printDiffToCLI(source, generated) - consola.log('') - - const confirm = await p.confirm({ - message: 'Continue?', - initialValue: true, - }) - - if (confirm !== true) - return false - - await fsp.writeFile(nuxtConfig, `${generated.trimEnd()}\n`, 'utf-8') - } - } - catch { - consola.error(colors.red('Unable to update Nuxt config file automatically')) - process.exitCode = 1 - printOutManual(true) - return false - } - - return true -} - -export async function enable(cwd: string) { - await toggleConfig(cwd, true) -} - -export async function disable(cwd: string) { - await toggleConfig(cwd, false) -} - -// diff `from` and `to` by line and pretty print to console with line numbers, using the `diff` package -function printDiffToCLI(from: string, to: string) { - const diffs = diffLines(from.trim(), to.trim()) - let output = '' - - let no = 0 - - // TODO: frame only the diff parts - for (const diff of diffs) { - const lines = diff.value.trimEnd().split('\n') - for (const line of lines) { - if (!diff.added) - no += 1 - if (diff.added) - output += colors.green(`+ | ${line}\n`) - else if (diff.removed) - output += colors.red(`-${no.toString().padStart(3, ' ')} | ${line}\n`) - else - output += colors.gray(`${colors.dim(`${no.toString().padStart(4, ' ')} |`)} ${line}\n`) - } - } - - consola.log(output.trimEnd()) -} diff --git a/packages/devtools-wizard/src/index.ts b/packages/devtools-wizard/src/index.ts deleted file mode 100644 index 16be62ba08..0000000000 --- a/packages/devtools-wizard/src/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { consola } from 'consola' -import { colors } from 'consola/utils' -import { readPackageJSON } from 'pkg-types' -import { name as moduleName, version } from '../package.json' - -async function getNuxtVersion(path: string): Promise { - try { - const pkg = await readPackageJSON('nuxt', { url: path }) - if (!pkg.version) - consola.warn('Cannot find any installed nuxt versions in ', path) - - return pkg.version || null - } - catch { - return null - } -} - -async function run() { - const args = process.argv.slice(2) - const command = args[0] - const cwd = process.cwd() - - consola.log('') - consola.log(colors.bold(colors.green(' Nuxt '))) - consola.log(`${colors.inverse(colors.bold(colors.green(' DevTools ')))} ${colors.green(`v${version}`)}`) - consola.log(`\n${colors.gray('Learn more at https://devtools.nuxt.com\n')}`) - - if (moduleName.endsWith('-edge') || moduleName.endsWith('-nightly')) - throw new Error('[Nuxt DevTools] Nightly release of Nuxt DevTools requires to be installed locally. Learn more at https://github.com/nuxt/devtools/#nightly-release-channel') - - const nuxtVersion = await getNuxtVersion(cwd) - if (!nuxtVersion) { - consola.error('[Nuxt DevTools] Unable to find any installed nuxt version in the current directory') - process.exit(1) - } - if (command === 'enable') { - consola.log(colors.green('Enabling Nuxt DevTools...')) - await import('./builtin').then(r => r.enable(cwd)) - } - else if (command === 'disable') { - consola.log(colors.magenta('Disabling Nuxt DevTools...')) - await import('./builtin').then(r => r.disable(cwd)) - } - else if (!command) { - consola.log(`npx ${moduleName} enable|disable`) - process.exit(1) - } - else { - consola.log(colors.red(`Unknown command "${command}"`)) - process.exit(1) - } -} - -run() - .catch((err) => { - consola.error(err) - process.exit(1) - }) - -export {} diff --git a/packages/devtools/cli.mjs b/packages/devtools/cli.mjs deleted file mode 100755 index b0a7d76a0f..0000000000 --- a/packages/devtools/cli.mjs +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -import('@nuxt/devtools-wizard') diff --git a/packages/devtools/client/pages/modules/pages.vue b/packages/devtools/client/pages/modules/pages.vue index b3c48541ca..1b8ff14a8a 100644 --- a/packages/devtools/client/pages/modules/pages.vue +++ b/packages/devtools/client/pages/modules/pages.vue @@ -181,7 +181,7 @@ const pagesPath = computed(() => `./${compatibilityVersion === 4 ? 'app/' : ''}p { label: 'Enable Routing', async handle() { - return rpc.runWizard(await ensureDevAuthToken(), 'enablePages') + return rpc.enablePages(await ensureDevAuthToken()) }, }, ]" diff --git a/packages/devtools/package.json b/packages/devtools/package.json index e9d34c3da6..4aa9aa1c0e 100644 --- a/packages/devtools/package.json +++ b/packages/devtools/package.json @@ -25,7 +25,6 @@ "./*": "./*" }, "types": "./dist/module.d.mts", - "bin": "./cli.mjs", "files": [ "*.cjs", "*.d.ts", @@ -56,7 +55,6 @@ }, "dependencies": { "@nuxt/devtools-kit": "workspace:*", - "@nuxt/devtools-wizard": "workspace:*", "@nuxt/kit": "catalog:prod", "@vue/devtools-core": "catalog:frontend", "@vue/devtools-kit": "catalog:prod", @@ -68,7 +66,6 @@ "get-port-please": "catalog:prod", "hookable": "catalog:frontend", "image-meta": "catalog:prod", - "is-installed-globally": "catalog:prod", "launch-editor": "catalog:prod", "local-pkg": "catalog:prod", "magicast": "catalog:prod", diff --git a/packages/devtools/src/dirs.ts b/packages/devtools/src/dirs.ts index f04153960a..2942744183 100644 --- a/packages/devtools/src/dirs.ts +++ b/packages/devtools/src/dirs.ts @@ -1,32 +1,8 @@ import { resolve } from 'node:path' import { fileURLToPath } from 'node:url' -import isInstalledGlobally from 'is-installed-globally' export const packageDir = resolve(fileURLToPath(import.meta.url), '../..') export const distDir = resolve(fileURLToPath(import.meta.url), '..') -const BACKSLASH_RE = /\\/g export const runtimeDir = resolve(distDir, 'runtime') export const clientDir = resolve(distDir, 'client') - -const globalInstallMatch = [ - '/yarn/global/', - '/pnpm/global/', - '/npm/global/', - '/.nvm/', - '/.volta/', - '/.fnm/', - // On Windows - '/nvm/versions/', - '/n/versions/', - // TODO: More info for other package managers -] - -export function isGlobalInstall() { - // @ts-expect-error jiti v2 has a bug with default export with is-installed-globally - // @see https://github.com/unjs/jiti/issues/342 - if (isInstalledGlobally === true || isInstalledGlobally.default === true) - return true - const dir = packageDir.replace(BACKSLASH_RE, '/') - return globalInstallMatch.some(i => dir.includes(i)) -} diff --git a/packages/devtools/src/module-main.ts b/packages/devtools/src/module-main.ts index ea1aac2b7a..7c41576127 100644 --- a/packages/devtools/src/module-main.ts +++ b/packages/devtools/src/module-main.ts @@ -14,7 +14,7 @@ import { searchForWorkspaceRoot } from 'vite' import { version } from '../package.json' import { defaultTabOptions } from './constant' import { getDevAuthToken } from './dev-auth' -import { clientDir, isGlobalInstall, packageDir, runtimeDir } from './dirs' +import { clientDir, packageDir, runtimeDir } from './dirs' import { setupRPC } from './server-rpc' import { readLocalOptions } from './utils/local-options' @@ -246,7 +246,6 @@ window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now() nuxt.hook('modules:done', () => nuxt.callHook('devtools:initialized', { version, packagePath: packageDir, - isGlobalInstall: isGlobalInstall(), })) const isMac = os.platform() === 'darwin' diff --git a/packages/devtools/src/module.ts b/packages/devtools/src/module.ts index 1b8a7a5f10..e95d13ba25 100644 --- a/packages/devtools/src/module.ts +++ b/packages/devtools/src/module.ts @@ -1,7 +1,6 @@ -import type { ModuleGlobalOptions, ModuleOptions } from './types' +import type { ModuleOptions } from './types' import { defineNuxtModule } from '@nuxt/kit' import { defaultOptions } from './constant' -import { isGlobalInstall } from './dirs' export type { ModuleOptions } @@ -23,20 +22,6 @@ export default defineNuxtModule({ if (options.enabled === false) return - if (isGlobalInstall()) { - // @ts-expect-error missing types - const globalOptions = nuxt.options.devtoolsGlobal || {} as ModuleGlobalOptions - if (options.enabled !== true && !globalOptions.projects?.includes(nuxt.options.rootDir)) - return - } - - /** - * Enable conditions: - * - * - `enabled` is NOT explicitly set to false - * - Installed locally - * - Installed globally, and enabled via `nuxi enable devtools`, or `enabled` is explicitly set to true - */ return import('./module-main').then(({ enableModule }) => enableModule(options as ModuleOptions, nuxt)) }, }) diff --git a/packages/devtools/src/server-rpc/general.ts b/packages/devtools/src/server-rpc/general.ts index 2861c6a0fa..fbe40d286f 100644 --- a/packages/devtools/src/server-rpc/general.ts +++ b/packages/devtools/src/server-rpc/general.ts @@ -3,10 +3,11 @@ import type { Component, NuxtApp, NuxtPage } from 'nuxt/schema' import type { Import, Unimport } from 'unimport' import type { AutoImportsWithMetadata, HookInfo, NuxtDevtoolsServerContext, ServerDebugContext, ServerFunctions } from '../types' import { existsSync } from 'node:fs' +import fs from 'node:fs/promises' import { logger } from '@nuxt/kit' import { colors } from 'consola/utils' import destr from 'destr' -import { resolve } from 'pathe' +import { dirname, join, resolve } from 'pathe' import { snakeCase } from 'scule' import { resolveBuiltinPresets } from 'unimport' @@ -19,6 +20,7 @@ const ABSOLUTE_PATH_RE = /^[a-z]:|^\//i // eslint-disable-next-line regexp/no-super-linear-backtracking const FILE_LINE_COL_RE = /^(.*?)(:[:\d]*)$/ const MULTIPLE_SLASHES_RE = /\/+/g +const NUXT_WELCOME_RE = // export function setupGeneralRPC({ nuxt, @@ -233,6 +235,36 @@ export function setupGeneralRPC({ return false } }, + async enablePages(token: string) { + await ensureDevAuthToken(token) + + const baseDir = nuxt.options.future.compatibilityVersion === 4 ? nuxt.options.dir.app : nuxt.options.srcDir + const pathApp = join(baseDir, 'app.vue') + const pathPageIndex = join(baseDir, 'pages/index.vue') + + if (existsSync(pathPageIndex)) { + logger.warn('pages/index.vue already exists, skipping') + return + } + + const pagesIndexTemplate = `\n\n\n` + + await fs.mkdir(dirname(pathPageIndex), { recursive: true }) + await fs.writeFile(pathPageIndex, pagesIndexTemplate, 'utf-8') + + let appContent = existsSync(pathApp) + ? await fs.readFile(pathApp, 'utf-8') + : undefined + + if (appContent && !appContent.includes('', ' \n') + .replace(NUXT_WELCOME_RE, '') + await fs.writeFile(pathApp, appContent, 'utf-8') + } + + logger.success('Routing creation completed') + }, async restartNuxt(token: string, hard = true) { await ensureDevAuthToken(token) logger.info('Restarting Nuxt...') diff --git a/packages/devtools/src/server-rpc/index.ts b/packages/devtools/src/server-rpc/index.ts index 75043fd97b..5d16c3783a 100644 --- a/packages/devtools/src/server-rpc/index.ts +++ b/packages/devtools/src/server-rpc/index.ts @@ -23,7 +23,6 @@ import { setupStorageRPC } from './storage' import { setupTelemetryRPC } from './telemetry' import { setupTerminalRPC } from './terminals' import { setupTimelineRPC } from './timeline' -import { setupWizardRPC } from './wizard' export function setupRPC(nuxt: Nuxt, options: ModuleOptions) { const serverFunctions = {} as ServerFunctions @@ -94,7 +93,6 @@ export function setupRPC(nuxt: Nuxt, options: ModuleOptions) { ...setupStorageRPC(ctx), ...setupAssetsRPC(ctx), ...setupNpmRPC(ctx), - ...setupWizardRPC(ctx), ...setupTerminalRPC(ctx), ...setupServerRoutesRPC(ctx), ...setupServerTasksRPC(ctx), diff --git a/packages/devtools/src/server-rpc/npm.ts b/packages/devtools/src/server-rpc/npm.ts index 593301024c..f695de1e44 100644 --- a/packages/devtools/src/server-rpc/npm.ts +++ b/packages/devtools/src/server-rpc/npm.ts @@ -2,7 +2,6 @@ import type { PackageManager } from 'nypm' import type { NpmCommandOptions, NpmCommandType, NuxtDevtoolsServerContext, PackageUpdateInfo, ServerFunctions } from '../types' import fs from 'node:fs/promises' import { startSubprocess } from '@nuxt/devtools-kit' -import isInstalledGlobally from 'is-installed-globally' import { parseModule } from 'magicast' import { addNuxtModule, getDefaultExportOptions } from 'magicast/helpers' import { detectPackageManager } from 'nypm' @@ -21,20 +20,17 @@ export function setupNpmRPC({ nuxt, ensureDevAuthToken }: NuxtDevtoolsServerCont async function getNpmCommand(command: NpmCommandType, packageName: string, options: NpmCommandOptions = {}) { const { dev = true, - global = (packageName === '@nuxt/devtools' && isInstalledGlobally), } = options const agent = await getPackageManager() const name = agent?.name || 'npm' - // TODO: smartly detect dev/global installs as default if (command === 'install' || command === 'update') { return [ name, name === 'npm' ? 'install' : 'add', `${packageName}@latest`, dev ? '-D' : '', - global ? '-g' : '', // In yarn berry, `--ignore-scripts` is removed (name === 'yarn' && !agent?.version?.startsWith('1.')) ? '' : '--ignore-scripts', ].filter(Boolean) @@ -45,7 +41,6 @@ export function setupNpmRPC({ nuxt, ensureDevAuthToken }: NuxtDevtoolsServerCont name, name === 'npm' ? 'uninstall' : 'remove', packageName, - global ? '-g' : '', ].filter(Boolean) } } diff --git a/packages/devtools/src/server-rpc/wizard.ts b/packages/devtools/src/server-rpc/wizard.ts deleted file mode 100644 index 60b51e8fb8..0000000000 --- a/packages/devtools/src/server-rpc/wizard.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { NuxtDevtoolsServerContext, ServerFunctions, WizardActions } from '@nuxt/devtools-kit/types' -import { logger } from '@nuxt/kit' -import { colors } from 'consola/utils' -import { LOG_PREFIX } from '../logger' -import { wizard } from '../wizard' - -export function setupWizardRPC({ nuxt, ensureDevAuthToken }: NuxtDevtoolsServerContext) { - return { - async runWizard(token, name: WizardActions, ...args: any[]) { - await ensureDevAuthToken(token) - logger.info(LOG_PREFIX, `Running wizard ${colors.green(name)}...`) - return (wizard[name] as any)(nuxt, ...args as []) - }, - } satisfies Partial -} diff --git a/packages/devtools/src/wizard/enable-pages.ts b/packages/devtools/src/wizard/enable-pages.ts deleted file mode 100644 index 7bb94b9f13..0000000000 --- a/packages/devtools/src/wizard/enable-pages.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { Nuxt } from 'nuxt/schema' -import fs from 'node:fs' -import fsp from 'node:fs/promises' -import { logger } from '@nuxt/kit' -import { dirname, join } from 'pathe' - -const NUXT_WELCOME_RE = // - -const pagesIndexTemplate = ` - - -` - -export async function enablePages(nuxt: Nuxt) { - const baseDir = nuxt.options.future.compatibilityVersion === 4 ? nuxt.options.dir.app : nuxt.options.srcDir - const pathApp = join(baseDir, 'app.vue') - const pathPageIndex = join(baseDir, 'pages/index.vue') - - if (fs.existsSync(pathPageIndex)) { - logger.warn('pages/index.vue already exists, skipping') - return - } - - let appContent = fs.existsSync(pathApp) - ? await fsp.readFile(pathApp, 'utf-8') - : undefined - - await fsp.mkdir(dirname(pathPageIndex), { recursive: true }) - await fsp.writeFile(pathPageIndex, pagesIndexTemplate, 'utf-8') - - if (appContent && !appContent.includes('', ' \n') - .replace(NUXT_WELCOME_RE, '') - await fsp.writeFile(pathApp, appContent, 'utf-8') - } - - logger.success('Routing creation wizard completed') -} diff --git a/packages/devtools/src/wizard/index.ts b/packages/devtools/src/wizard/index.ts deleted file mode 100644 index 2bdcc15739..0000000000 --- a/packages/devtools/src/wizard/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { WizardFunctions } from '@nuxt/devtools-kit/types' -import { enablePages } from './enable-pages' - -export const wizard: WizardFunctions = { - enablePages, -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d5555378b4..b8150ad31f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,9 +170,6 @@ catalogs: cronstrue: specifier: ^3.13.0 version: 3.13.0 - diff: - specifier: ^8.0.3 - version: 8.0.3 error-stack-parser-es: specifier: ^1.0.5 version: 1.0.5 @@ -284,9 +281,6 @@ catalogs: specifier: ^1.1.3 version: 1.1.3 prod: - '@clack/prompts': - specifier: ^1.1.0 - version: 1.1.0 '@nuxt/kit': specifier: ^4.4.2 version: 4.4.2 @@ -311,9 +305,6 @@ catalogs: image-meta: specifier: ^0.2.2 version: 0.2.2 - is-installed-globally: - specifier: ^1.0.0 - version: 1.0.0 launch-editor: specifier: ^2.13.1 version: 2.13.1 @@ -357,9 +348,6 @@ catalogs: '@nuxt/schema': specifier: ^4.4.2 version: 4.4.2 - '@types/diff': - specifier: ^8.0.0 - version: 8.0.0 '@types/markdown-it': specifier: ^14.1.2 version: 14.1.2 @@ -508,9 +496,6 @@ importers: '@nuxt/devtools-kit': specifier: workspace:* version: link:../devtools-kit - '@nuxt/devtools-wizard': - specifier: workspace:* - version: link:../devtools-wizard '@nuxt/kit': specifier: catalog:prod version: 4.4.2(magicast@0.5.2) @@ -544,9 +529,6 @@ importers: image-meta: specifier: catalog:prod version: 0.2.2 - is-installed-globally: - specifier: catalog:prod - version: 1.0.0 launch-editor: specifier: catalog:prod version: 2.13.1 @@ -769,7 +751,7 @@ importers: version: 1.0.4 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + version: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) devDependencies: '@nuxt/schema': specifier: catalog:types @@ -863,37 +845,6 @@ importers: specifier: catalog:buildtools version: 4.4.2(@babel/core@7.29.0)(@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0))(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.6)(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(@vue/compiler-sfc@3.5.30)(cac@6.7.14)(db0@0.3.4)(esbuild@0.27.4)(eslint@10.0.3(jiti@2.6.1))(ioredis@5.9.2)(magicast@0.5.2)(meow@13.2.0)(optionator@0.9.4)(pinia@3.0.4(typescript@5.9.3)(vue@3.5.30(typescript@5.9.3)))(rolldown@1.0.0-rc.9)(rollup-plugin-visualizer@6.0.5(rolldown@1.0.0-rc.9)(rollup@4.59.0))(rollup@4.59.0)(terser@5.39.0)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(yaml@2.8.2) - packages/devtools-wizard: - dependencies: - '@clack/prompts': - specifier: catalog:prod - version: 1.1.0 - consola: - specifier: catalog:prod - version: 3.4.2 - diff: - specifier: catalog:frontend - version: 8.0.3 - magicast: - specifier: catalog:prod - version: 0.5.2 - pathe: - specifier: catalog:frontend - version: 2.0.3 - pkg-types: - specifier: catalog:prod - version: 2.3.0 - semver: - specifier: ^7.7.4 - version: 7.7.4 - devDependencies: - '@types/diff': - specifier: catalog:types - version: 8.0.0 - unbuild: - specifier: catalog:buildtools - version: 3.6.1(typescript@5.9.3)(vue-sfc-transformer@0.1.16(@vue/compiler-core@3.5.30)(esbuild@0.27.4)(vue@3.5.30(typescript@5.9.3)))(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) - playgrounds/empty: devDependencies: '@types/node': @@ -3192,10 +3143,6 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@types/diff@8.0.0': - resolution: {integrity: sha512-o7jqJM04gfaYrdCecCVMbZhNdG6T1MHg/oQoRFdERLV+4d+V7FijhiEAbFu0Usww84Yijk9yH58U4Jk4HbtzZw==} - deprecated: This is a stub types definition. diff provides its own type definitions, so you do not need this installed. - '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -5627,10 +5574,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob 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 exorbitant rates) by contacting i@izs.me - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} @@ -5816,10 +5759,6 @@ packages: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ioredis@5.9.2: resolution: {integrity: sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==} engines: {node: '>=12.22.0'} @@ -5885,10 +5824,6 @@ packages: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} - is-installed-globally@1.0.0: - resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} - engines: {node: '>=18'} - is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -9708,7 +9643,7 @@ snapshots: dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) execa: 8.0.1 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - magicast @@ -10072,7 +10007,7 @@ snapshots: std-env: 4.0.0 ufo: 1.6.3 unenv: 2.0.0-rc.24 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vite-node: 5.3.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-checker: 0.12.0(eslint@10.0.3(jiti@2.6.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.3)(vite@8.0.0)(vue-tsc@3.2.5(typescript@5.9.3)) vue: 3.5.30(typescript@5.9.3) @@ -10973,10 +10908,6 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/diff@8.0.0': - dependencies: - diff: 8.0.3 - '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -11407,7 +11338,7 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.15 unplugin-utils: 0.3.1 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) '@unocss/webpack@66.6.6(webpack@5.98.0(esbuild@0.27.4))': dependencies: @@ -11506,7 +11437,7 @@ snapshots: '@vitejs/devtools-rpc': 0.0.0-alpha.33(typescript@5.9.3)(ws@8.19.0) birpc: 4.0.0 immer: 11.1.4 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - typescript - ws @@ -11517,7 +11448,7 @@ snapshots: '@vitejs/devtools-rpc': 0.1.2(typescript@5.9.3)(ws@8.19.0) birpc: 4.0.0 immer: 11.1.4 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - typescript - ws @@ -11675,7 +11606,7 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 tinyexec: 1.0.4 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) ws: 8.19.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -11756,7 +11687,7 @@ snapshots: '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.9 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.30(typescript@5.9.3) transitivePeerDependencies: - supports-color @@ -11764,7 +11695,7 @@ snapshots: '@vitejs/plugin-vue@6.0.4(vite@8.0.0)(vue@3.5.30(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.30(typescript@5.9.3) '@vitest/eslint-plugin@1.6.12(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.0)': @@ -11793,7 +11724,7 @@ snapshots: estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@4.1.0': dependencies: @@ -14030,10 +13961,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global-directory@4.0.1: - dependencies: - ini: 4.1.1 - global-dirs@3.0.1: dependencies: ini: 2.0.0 @@ -14218,8 +14145,6 @@ snapshots: ini@2.0.0: {} - ini@4.1.1: {} - ioredis@5.9.2: dependencies: '@ioredis/commands': 1.5.0 @@ -14277,11 +14202,6 @@ snapshots: global-dirs: 3.0.1 is-path-inside: 3.0.3 - is-installed-globally@1.0.0: - dependencies: - global-directory: 4.0.1 - is-path-inside: 4.0.0 - is-module@1.0.0: {} is-number@7.0.0: {} @@ -17466,7 +17386,7 @@ snapshots: vite-hot-client@2.1.0(vite@8.0.0): dependencies: - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vite-node@5.3.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: @@ -17474,7 +17394,7 @@ snapshots: es-module-lexer: 2.0.0 obug: 2.1.1 pathe: 2.0.3 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -17519,7 +17439,7 @@ snapshots: picomatch: 4.0.3 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vscode-uri: 3.1.0 optionalDependencies: eslint: 10.0.3(jiti@2.6.1) @@ -17555,7 +17475,7 @@ snapshots: vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.30(typescript@5.9.3) - vite@8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33(@netlify/blobs@9.1.2)(@pnpm/logger@1001.0.1)(db0@0.3.4)(ioredis@5.9.2)(typescript@5.9.3)(vite@8.0.0)(vue@3.5.30(typescript@5.9.3)))(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2): + vite@8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 @@ -17630,7 +17550,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.1.2)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(@vitejs/devtools@0.0.0-alpha.33)(esbuild@0.27.4)(jiti@2.6.1)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fa002fa702..b4e8e9fe6b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -74,7 +74,6 @@ catalogs: '@xterm/xterm': ^6.0.0 birpc: ^4.0.0 cronstrue: ^3.13.0 - diff: ^8.0.3 error-stack-parser-es: ^1.0.5 floating-vue: ^5.2.2 focus-trap: ^8.0.0 @@ -114,7 +113,6 @@ catalogs: playground: '@exampledev/new.css': ^1.1.3 prod: - '@clack/prompts': ^1.1.0 '@nuxt/kit': ^4.4.2 '@vue/devtools-kit': ^8.1.0 consola: ^3.4.2 @@ -123,7 +121,6 @@ catalogs: fast-npm-meta: ^1.4.2 get-port-please: ^3.2.0 image-meta: ^0.2.2 - is-installed-globally: ^1.0.0 launch-editor: ^2.13.1 local-pkg: ^1.1.2 magicast: ^0.5.2 @@ -140,7 +137,6 @@ catalogs: ws: ^8.19.0 types: '@nuxt/schema': ^4.4.2 - '@types/diff': ^8.0.0 '@types/markdown-it': ^14.1.2 '@types/markdown-it-link-attributes': ^3.0.5 '@types/node': ^25.5.0