From ada0c86877ae2957ebecebaee43c665cf3c8c3e6 Mon Sep 17 00:00:00 2001 From: fkatsuhiro <113022468+fkatsuhiro@users.noreply.github.com> Date: Sun, 26 Jul 2026 12:30:17 +0900 Subject: [PATCH] chore!: Remove deprecated APIs (#2488) Co-authored-by: Gliches Co-authored-by: Aaron --- packages/wxt-demo/vitest.config.ts | 2 +- packages/wxt/e2e/tests/auto-imports.test.ts | 6 ++-- packages/wxt/e2e/tests/dev.test.ts | 6 ++-- packages/wxt/package.json | 4 --- packages/wxt/src/core/builders/vite/index.ts | 8 +++--- packages/wxt/src/core/clean.ts | 19 +------------ packages/wxt/src/core/create-server.ts | 6 ++-- .../wxt/src/core/define-web-ext-config.ts | 9 ------ packages/wxt/src/core/resolve-config.ts | 28 ++++--------------- .../__tests__/detect-dev-changes.test.ts | 2 +- .../core/utils/building/detect-dev-changes.ts | 4 +-- .../src/core/utils/testing/fake-objects.ts | 3 -- packages/wxt/src/core/utils/time.ts | 2 +- packages/wxt/src/testing/index.ts | 9 ------ packages/wxt/src/testing/wxt-vitest-plugin.ts | 2 +- packages/wxt/src/types.ts | 14 ---------- packages/wxt/src/virtual/mock-browser.ts | 2 +- packages/wxt/vitest.config.ts | 5 +++- 18 files changed, 29 insertions(+), 102 deletions(-) delete mode 100644 packages/wxt/src/testing/index.ts diff --git a/packages/wxt-demo/vitest.config.ts b/packages/wxt-demo/vitest.config.ts index bec0c7c2..4d801346 100644 --- a/packages/wxt-demo/vitest.config.ts +++ b/packages/wxt-demo/vitest.config.ts @@ -1,5 +1,5 @@ import { defineProject } from 'vitest/config'; -import { WxtVitest } from 'wxt/testing'; +import { WxtVitest } from 'wxt/testing/vitest-plugin'; export default defineProject({ test: { diff --git a/packages/wxt/e2e/tests/auto-imports.test.ts b/packages/wxt/e2e/tests/auto-imports.test.ts index 8e82f7ee..9afa3cd1 100644 --- a/packages/wxt/e2e/tests/auto-imports.test.ts +++ b/packages/wxt/e2e/tests/auto-imports.test.ts @@ -28,7 +28,7 @@ describe('Auto Imports', () => { const defineContentScript: typeof import('wxt/utils/define-content-script').defineContentScript const defineUnlistedScript: typeof import('wxt/utils/define-unlisted-script').defineUnlistedScript const defineWxtPlugin: typeof import('wxt/utils/define-wxt-plugin').defineWxtPlugin - const fakeBrowser: typeof import('wxt/testing').fakeBrowser + const fakeBrowser: typeof import('wxt/testing/fake-browser').fakeBrowser const getAppConfig: typeof import('wxt/utils/app-config').getAppConfig const injectScript: typeof import('wxt/utils/inject-script').injectScript const storage: typeof import('wxt/utils/storage').storage @@ -124,7 +124,7 @@ describe('Auto Imports', () => { export { defineWxtPlugin } from 'wxt/utils/define-wxt-plugin'; export { injectScript, ScriptPublicPath, InjectScriptOptions } from 'wxt/utils/inject-script'; export { InvalidMatchPattern, MatchPattern } from 'wxt/utils/match-patterns'; - export { fakeBrowser } from 'wxt/testing'; + export { fakeBrowser } from 'wxt/testing/fake-browser'; export { startOfDay } from '../utils/time'; } " @@ -209,7 +209,7 @@ describe('Auto Imports', () => { export { defineWxtPlugin } from 'wxt/utils/define-wxt-plugin'; export { injectScript, ScriptPublicPath, InjectScriptOptions } from 'wxt/utils/inject-script'; export { InvalidMatchPattern, MatchPattern } from 'wxt/utils/match-patterns'; - export { fakeBrowser } from 'wxt/testing'; + export { fakeBrowser } from 'wxt/testing/fake-browser'; } " `); diff --git a/packages/wxt/e2e/tests/dev.test.ts b/packages/wxt/e2e/tests/dev.test.ts index 10ea7e34..794aa9bc 100644 --- a/packages/wxt/e2e/tests/dev.test.ts +++ b/packages/wxt/e2e/tests/dev.test.ts @@ -30,7 +30,7 @@ describe('Dev Mode', () => { ); const server = await project.startServer({ - runner: { disabled: true }, + webExt: { disabled: true }, dev: { server: { port: 4400 } }, }); try { @@ -51,7 +51,7 @@ describe('Dev Mode', () => { ); const server = await project.startServer({ - runner: { disabled: true }, + webExt: { disabled: true }, dev: { server: { port } }, }); try { @@ -76,7 +76,7 @@ describe('Dev Mode', () => { try { await expect( project.startServer({ - runner: { disabled: true }, + webExt: { disabled: true }, dev: { server: { port, strictPort: true } }, }), ).rejects.toThrow(); diff --git a/packages/wxt/package.json b/packages/wxt/package.json index 5d904d0c..d3bee878 100644 --- a/packages/wxt/package.json +++ b/packages/wxt/package.json @@ -196,10 +196,6 @@ "types": "./dist/testing/wxt-vitest-plugin.d.mts", "default": "./dist/testing/wxt-vitest-plugin.mjs" }, - "./testing": { - "types": "./dist/testing/index.d.mts", - "default": "./dist/testing/index.mjs" - }, "./vite-builder-env": { "types": "./dist/vite-builder-env.d.ts" }, diff --git a/packages/wxt/src/core/builders/vite/index.ts b/packages/wxt/src/core/builders/vite/index.ts index 05e560c8..f24b9c62 100644 --- a/packages/wxt/src/core/builders/vite/index.ts +++ b/packages/wxt/src/core/builders/vite/index.ts @@ -427,16 +427,16 @@ export function getRunnerProfileWatchIgnores( ): string[] { const root = normalizePath(wxtConfig.root); const chromiumArgProfiles = extractPathArgs( - wxtConfig.runnerConfig.config?.chromiumArgs, + wxtConfig.webExt.config?.chromiumArgs, '--user-data-dir', ); const firefoxArgProfiles = extractPathArgs( - wxtConfig.runnerConfig.config?.firefoxArgs, + wxtConfig.webExt.config?.firefoxArgs, '-profile', ); const profiles = [ - wxtConfig.runnerConfig.config?.chromiumProfile, - wxtConfig.runnerConfig.config?.firefoxProfile, + wxtConfig.webExt.config?.chromiumProfile, + wxtConfig.webExt.config?.firefoxProfile, ...chromiumArgProfiles, ...firefoxArgProfiles, ].filter((profile): profile is string => typeof profile === 'string'); diff --git a/packages/wxt/src/core/clean.ts b/packages/wxt/src/core/clean.ts index 17a283de..98423489 100644 --- a/packages/wxt/src/core/clean.ts +++ b/packages/wxt/src/core/clean.ts @@ -13,24 +13,7 @@ import { styleText } from 'node:util'; * * @param config Optional config that will override your `/wxt.config.ts`. */ -export async function clean(config?: InlineConfig): Promise; -/** - * Remove generated/temp files from the directory. - * - * @deprecated - * @example - * await clean(); - * - * @param root The directory to look for generated/temp files in. Defaults to - * `process.cwd()`. Can be relative to `process.cwd()` or absolute. - */ -export async function clean(root?: string): Promise; - -export async function clean(config?: string | InlineConfig) { - if (typeof config === 'string') { - config = { root: config }; - } - +export async function clean(config?: InlineConfig): Promise { await registerWxt('build', config); wxt.logger.info('Cleaning Project'); diff --git a/packages/wxt/src/core/create-server.ts b/packages/wxt/src/core/create-server.ts index 5939870c..aa246e36 100644 --- a/packages/wxt/src/core/create-server.ts +++ b/packages/wxt/src/core/create-server.ts @@ -125,8 +125,7 @@ async function createServerInternal(): Promise { keyboardShortcuts.start(); keyboardShortcuts.printHelp({ canReopenBrowser: - !wxt.config.runnerConfig.config.disabled && - !!wxt.config.runner.canOpen?.(), + !wxt.config.webExt.config.disabled && !!wxt.config.runner.canOpen?.(), }); }, }; @@ -169,8 +168,7 @@ async function createServerInternal(): Promise { keyboardShortcuts.start(); keyboardShortcuts.printHelp({ canReopenBrowser: - !wxt.config.runnerConfig.config.disabled && - !!wxt.config.runner.canOpen?.(), + !wxt.config.webExt.config.disabled && !!wxt.config.runner.canOpen?.(), }); }; diff --git a/packages/wxt/src/core/define-web-ext-config.ts b/packages/wxt/src/core/define-web-ext-config.ts index 31b150b3..2ea46fe4 100644 --- a/packages/wxt/src/core/define-web-ext-config.ts +++ b/packages/wxt/src/core/define-web-ext-config.ts @@ -1,14 +1,5 @@ -import consola from 'consola'; import { WebExtConfig } from '../types'; -/** @deprecated Use `defineWebExtConfig` instead. Same function, different name. */ -export function defineRunnerConfig(config: WebExtConfig): WebExtConfig { - consola.warn( - '`defineRunnerConfig` is deprecated, use `defineWebExtConfig` instead. See https://wxt.dev/guide/resources/upgrading.html#v0-19-0-rarr-v0-20-0', - ); - return defineWebExtConfig(config); -} - /** * Configure how [`web-ext`](https://github.com/mozilla/web-ext) starts the * browser during development. diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index f04c711e..55abe21e 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -124,19 +124,13 @@ export async function resolveConfig( const outDir = path.resolve(outBaseDir, outDirTemplate); const reloadCommand = mergedConfig.dev?.reloadCommand ?? 'Alt+R'; - - if (inlineConfig.runner != null || userConfig.runner != null) { - logger.warn( - '`InlineConfig#runner` is deprecated, use `InlineConfig#webExt` instead. See https://wxt.dev/guide/resources/upgrading.html#v0-19-0-rarr-v0-20-0', - ); - } const webExt = await loadConfig({ name: 'web-ext', cwd: root, globalRc: true, rcFile: '.webextrc', - overrides: inlineConfig.webExt ?? inlineConfig.runner, - defaults: userConfig.webExt ?? userConfig.runner, + overrides: inlineConfig.webExt, + defaults: userConfig.webExt, }); // Make sure alias are absolute const alias = Object.fromEntries( @@ -151,20 +145,9 @@ export async function resolveConfig( let devServerConfig: ResolvedConfig['dev']['server']; if (command === 'serve') { - if (mergedConfig.dev?.server?.hostname) - logger.warn( - `The 'hostname' option is deprecated, please use 'host' or 'origin' depending on your circumstances.`, - ); - - const host = - mergedConfig.dev?.server?.host ?? - mergedConfig.dev?.server?.hostname ?? - 'localhost'; + const host = mergedConfig.dev?.server?.host ?? 'localhost'; let port = mergedConfig.dev?.server?.port; - const origin = - mergedConfig.dev?.server?.origin ?? - mergedConfig.dev?.server?.hostname ?? - 'localhost'; + const origin = mergedConfig.dev?.server?.origin ?? 'localhost'; const strictPort = mergedConfig.dev?.server?.strictPort ?? false; if (port == null || !isFinite(port)) { port = await getPort({ @@ -230,7 +213,6 @@ export async function resolveConfig( publicDir, wxtModuleDir, root, - runnerConfig: webExt, webExt, runner: command === 'serve' @@ -390,7 +372,7 @@ async function getUnimportOptions( ]; const defaultOptions: WxtResolvedUnimportOptions = { - imports: [{ name: 'fakeBrowser', from: 'wxt/testing' }], + imports: [{ name: 'fakeBrowser', from: 'wxt/testing/fake-browser' }], presets: [ { from: 'wxt/browser', diff --git a/packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts b/packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts index ff7facff..0aa78f79 100644 --- a/packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts +++ b/packages/wxt/src/core/utils/building/__tests__/detect-dev-changes.test.ts @@ -103,7 +103,7 @@ describe('Detect Dev Changes', () => { const runnerFile = '/root/web-ext.config.ts'; setFakeWxt({ config: { - runnerConfig: { + webExt: { configFile: runnerFile, }, }, diff --git a/packages/wxt/src/core/utils/building/detect-dev-changes.ts b/packages/wxt/src/core/utils/building/detect-dev-changes.ts index 13705761..a81f3cb2 100644 --- a/packages/wxt/src/core/utils/building/detect-dev-changes.ts +++ b/packages/wxt/src/core/utils/building/detect-dev-changes.ts @@ -63,7 +63,7 @@ export function detectDevChanges( const isRunnerChange = some( relevantChangedFiles, - (file) => file === wxt.config.runnerConfig.configFile, + (file) => file === wxt.config.webExt.configFile, ); if (isRunnerChange) return { type: 'browser-restart' }; @@ -146,7 +146,7 @@ export function getRelevantDevChangedFiles( return Array.from(new Set(changedFiles)).filter((changedFile) => { if (changedFile === wxt.config.userConfigMetadata.configFile) return true; if (changedFile.startsWith(wxt.config.modulesDir)) return true; - if (changedFile === wxt.config.runnerConfig.configFile) return true; + if (changedFile === wxt.config.webExt.configFile) return true; if (changedFile.startsWith(wxt.config.publicDir)) return true; return findEffectedSteps(changedFile, currentOutput).length > 0; }); diff --git a/packages/wxt/src/core/utils/testing/fake-objects.ts b/packages/wxt/src/core/utils/testing/fake-objects.ts index aa6c177a..56f1586c 100644 --- a/packages/wxt/src/core/utils/testing/fake-objects.ts +++ b/packages/wxt/src/core/utils/testing/fake-objects.ts @@ -264,9 +264,6 @@ export const fakeResolvedConfig = fakeObjectCreator(() => { publicDir: fakeDir(), root: fakeDir(), wxtModuleDir: fakeDir(), - runnerConfig: { - config: {}, - }, webExt: { config: {}, }, diff --git a/packages/wxt/src/core/utils/time.ts b/packages/wxt/src/core/utils/time.ts index e595ce23..44dbba1c 100644 --- a/packages/wxt/src/core/utils/time.ts +++ b/packages/wxt/src/core/utils/time.ts @@ -22,7 +22,7 @@ export function withTimeout( } /** - * @deprecated Don't use in production, just for testing and slowing things + * @internal Don't use in production, just for testing and slowing things * down. */ export function sleep(ms: number): Promise { diff --git a/packages/wxt/src/testing/index.ts b/packages/wxt/src/testing/index.ts deleted file mode 100644 index 09fea1a2..00000000 --- a/packages/wxt/src/testing/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Utilities for unit testing WXT extensions. - * - * @module wxt/testing - * @deprecated Use `wxt/testing/*` instead to prevent issues with JSDOM or - * HappyDOM environments. Will be removed in the next major version of WXT. - */ -export * from './fake-browser'; -export * from './wxt-vitest-plugin'; diff --git a/packages/wxt/src/testing/wxt-vitest-plugin.ts b/packages/wxt/src/testing/wxt-vitest-plugin.ts index 4c3ebc28..6e5eed92 100644 --- a/packages/wxt/src/testing/wxt-vitest-plugin.ts +++ b/packages/wxt/src/testing/wxt-vitest-plugin.ts @@ -2,7 +2,7 @@ * Contains a Vitest plugin that configures your test environment to work with * WXT projects. * - * @module wxt/testing/vitest + * @module wxt/testing/vitest-plugin */ import type * as vite from 'vite'; diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index a3c5282a..7c8e389d 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -184,8 +184,6 @@ export interface InlineConfig { * `web-ext.config.ts` file. */ webExt?: WebExtConfig; - /** @deprecated Use `webExt` instead. Same option, just renamed. */ - runner?: WebExtConfig; zip?: { /** * Configure the filename output when zipping files. @@ -416,13 +414,6 @@ export interface InlineConfig { * @default false */ strictPort?: boolean; - /** - * Hostname to run the dev server on. - * - * @deprecated Use `host` to specify the interface to bind to, or use - * `origin` to specify the dev server hostname. - */ - hostname?: string; }; /** * Controls whether a custom keyboard shortcut command, `Alt+R`, is added @@ -1142,9 +1133,6 @@ export interface ConfigEnv { export type WxtCommand = 'build' | 'serve'; -/** @deprecated Use `WebExtConfig` instead. */ -export type ExtensionRunnerConfig = WebExtConfig; - /** * Options for how [`web-ext`](https://github.com/mozilla/web-ext) starts the * browser. @@ -1537,8 +1525,6 @@ export interface ResolvedConfig { imports: WxtResolvedUnimportOptions; manifest: UserManifest; fsCache: FsCache; - /** @deprecated - Use {@link webExt} instead. */ - runnerConfig: C12ResolvedConfig; webExt: C12ResolvedConfig; runner: ExtensionRunner; zip: { diff --git a/packages/wxt/src/virtual/mock-browser.ts b/packages/wxt/src/virtual/mock-browser.ts index 38024710..d95335b4 100644 --- a/packages/wxt/src/virtual/mock-browser.ts +++ b/packages/wxt/src/virtual/mock-browser.ts @@ -1,4 +1,4 @@ -import { fakeBrowser } from 'wxt/testing'; +import { fakeBrowser } from 'wxt/testing/fake-browser'; export const browser = fakeBrowser; export default fakeBrowser; diff --git a/packages/wxt/vitest.config.ts b/packages/wxt/vitest.config.ts index 733e7b92..fbf893e6 100644 --- a/packages/wxt/vitest.config.ts +++ b/packages/wxt/vitest.config.ts @@ -22,7 +22,10 @@ export default defineConfig({ plugins: [RandomSeed({ define: 'import.meta.env.TEST_SEED' })], resolve: { alias: { - 'wxt/testing': path.resolve('src/testing'), + 'wxt/testing/fake-browser': path.resolve('src/testing/fake-browser.ts'), + 'wxt/testing/vitest-plugin': path.resolve( + 'src/testing/wxt-vitest-plugin.ts', + ), }, }, });