@depup/vitest 4.1.3-depup.0 → 4.1.4-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +6 -5
  2. package/changes.json +8 -4
  3. package/dist/browser.js +1 -1
  4. package/dist/chunks/{base.C3wvLFNM.js → base.Cv_yNPUJ.js} +4 -4
  5. package/dist/chunks/{cac.Bb7YBzMA.js → cac.wyYWMVI-.js} +5 -5
  6. package/dist/chunks/{cli-api.CaPRsymo.js → cli-api.lDy4N9kC.js} +6 -10
  7. package/dist/chunks/{coverage.CwUlQe0s.js → coverage.Da5gzbsu.js} +15 -2
  8. package/dist/chunks/{globals.7B-4LHAF.js → globals.BVDtJR67.js} +2 -2
  9. package/dist/chunks/{index.DICur-LY.js → index.BMXTnDNz.js} +10 -2
  10. package/dist/chunks/{index.4L3g53iW.js → index.C-zNJvRx.js} +1 -1
  11. package/dist/chunks/{index.Cj9kDiDi.js → index.C3MK_gXn.js} +2 -2
  12. package/dist/chunks/{plugin.d.BssAumYw.d.ts → plugin.d.CEihBODF.d.ts} +1 -1
  13. package/dist/chunks/{reporters.d.yJ2fBir5.d.ts → reporters.d.BwkR0iL5.d.ts} +2 -0
  14. package/dist/chunks/{setup-common.NdrZGMhw.js → setup-common.BDwxwUWG.js} +1 -1
  15. package/dist/chunks/{test.BmQO5GaM.js → test.D1JkM1w4.js} +106 -19
  16. package/dist/chunks/{utils.DK8FXp4T.js → utils.BS4fH3nR.js} +1 -1
  17. package/dist/cli.js +1 -1
  18. package/dist/config.d.ts +3 -3
  19. package/dist/coverage.d.ts +1 -1
  20. package/dist/coverage.js +2 -1
  21. package/dist/index.d.ts +21 -2
  22. package/dist/index.js +2 -2
  23. package/dist/node.d.ts +3 -3
  24. package/dist/node.js +7 -7
  25. package/dist/reporters.d.ts +1 -1
  26. package/dist/reporters.js +2 -2
  27. package/dist/runners.js +1 -1
  28. package/dist/worker.js +5 -5
  29. package/dist/workers/forks.js +5 -5
  30. package/dist/workers/runVmTests.js +4 -4
  31. package/dist/workers/threads.js +5 -5
  32. package/package.json +26 -22
package/README.md CHANGED
@@ -13,10 +13,10 @@ npm install @depup/vitest
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [vitest](https://www.npmjs.com/package/vitest) @ 4.1.3 |
17
- | Processed | 2026-04-07 |
16
+ | Original | [vitest](https://www.npmjs.com/package/vitest) @ 4.1.4 |
17
+ | Processed | 2026-04-09 |
18
18
  | Smoke test | passed |
19
- | Deps updated | 5 |
19
+ | Deps updated | 6 |
20
20
 
21
21
  ## Dependency Changes
22
22
 
@@ -24,8 +24,9 @@ npm install @depup/vitest
24
24
  |------------|------|-----|
25
25
  | picomatch | ^4.0.3 | ^4.0.4 |
26
26
  | tinybench | ^2.9.0 | ^6.0.0 |
27
- | tinyexec | ^1.0.2 | ^1.0.4 |
28
- | vite | ^6.0.0 || ^7.0.0 || ^8.0.0 | ^8.0.6 |
27
+ | tinyexec | ^1.0.2 | ^1.1.1 |
28
+ | tinyglobby | ^0.2.15 | ^0.2.16 |
29
+ | vite | ^6.0.0 || ^7.0.0 || ^8.0.0 | ^8.0.8 |
29
30
  | why-is-node-running | ^2.3.0 | ^3.2.2 |
30
31
 
31
32
  ---
package/changes.json CHANGED
@@ -10,17 +10,21 @@
10
10
  },
11
11
  "tinyexec": {
12
12
  "from": "^1.0.2",
13
- "to": "^1.0.4"
13
+ "to": "^1.1.1"
14
+ },
15
+ "tinyglobby": {
16
+ "from": "^0.2.15",
17
+ "to": "^0.2.16"
14
18
  },
15
19
  "vite": {
16
20
  "from": "^6.0.0 || ^7.0.0 || ^8.0.0",
17
- "to": "^8.0.6"
21
+ "to": "^8.0.8"
18
22
  },
19
23
  "why-is-node-running": {
20
24
  "from": "^2.3.0",
21
25
  "to": "^3.2.2"
22
26
  }
23
27
  },
24
- "timestamp": "2026-04-07T12:27:27.182Z",
25
- "totalUpdated": 5
28
+ "timestamp": "2026-04-09T08:38:38.208Z",
29
+ "totalUpdated": 6
26
30
  }
package/dist/browser.js CHANGED
@@ -1,4 +1,4 @@
1
- export { l as loadDiffConfig, a as loadSnapshotSerializers, s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker, t as takeCoverageInsideWorker } from './chunks/setup-common.NdrZGMhw.js';
1
+ export { l as loadDiffConfig, a as loadSnapshotSerializers, s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker, t as takeCoverageInsideWorker } from './chunks/setup-common.BDwxwUWG.js';
2
2
  export { T as Traces } from './chunks/traces.DT5aQ62U.js';
3
3
  export { collectTests, startTests } from '@vitest/runner';
4
4
  import * as spyModule from '@vitest/spy';
@@ -1,6 +1,6 @@
1
1
  import { runInThisContext } from 'node:vm';
2
2
  import * as spyModule from '@vitest/spy';
3
- import { r as resolveTestRunner, a as resolveSnapshotEnvironment, d as detectAsyncLeaks, s as setupChaiConfig } from './index.Cj9kDiDi.js';
3
+ import { r as resolveTestRunner, a as resolveSnapshotEnvironment, d as detectAsyncLeaks, s as setupChaiConfig } from './index.C3MK_gXn.js';
4
4
  import { l as loadEnvironment, e as emitModuleRunner, a as listenForErrors } from './init.D98-gwRW.js';
5
5
  import { N as NativeModuleRunner } from './nativeModuleRunner.BIakptoF.js';
6
6
  import { T as Traces } from './traces.DT5aQ62U.js';
@@ -8,15 +8,15 @@ import { V as VitestEvaluatedModules } from './evaluatedModules.Dg1zASAC.js';
8
8
  import { s as startVitestModuleRunner, c as createNodeImportMeta } from './startVitestModuleRunner.bRl2_oI_.js';
9
9
  import { performance as performance$1 } from 'node:perf_hooks';
10
10
  import { startTests, collectTests } from '@vitest/runner';
11
- import { s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker } from './setup-common.NdrZGMhw.js';
12
- import { g as globalExpect, v as vi } from './test.BmQO5GaM.js';
11
+ import { s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker } from './setup-common.BDwxwUWG.js';
12
+ import { g as globalExpect, v as vi } from './test.D1JkM1w4.js';
13
13
  import { c as closeInspector } from './inspector.CvyFGlXm.js';
14
14
  import { createRequire } from 'node:module';
15
15
  import timers from 'node:timers';
16
16
  import timersPromises from 'node:timers/promises';
17
17
  import util from 'node:util';
18
18
  import { KNOWN_ASSET_TYPES } from '@vitest/utils/constants';
19
- import { i as index } from './index.4L3g53iW.js';
19
+ import { i as index } from './index.C-zNJvRx.js';
20
20
  import { g as getWorkerState, r as resetModules, p as provideWorkerState, a as getSafeWorkerState } from './utils.BX5Fg8C4.js';
21
21
 
22
22
  // this should only be used in Node
@@ -621,7 +621,7 @@ class CAC extends EventEmitter {
621
621
 
622
622
  const cac = (name = "") => new CAC(name);
623
623
 
624
- var version = "4.1.3";
624
+ var version = "4.1.4";
625
625
 
626
626
  const apiConfig = (port) => ({
627
627
  port: {
@@ -2336,11 +2336,11 @@ function normalizeCliOptions(cliFilters, argv) {
2336
2336
  }
2337
2337
  async function start(mode, cliFilters, options) {
2338
2338
  try {
2339
- const { startVitest } = await import('./cli-api.CaPRsymo.js').then(function (n) { return n.q; });
2339
+ const { startVitest } = await import('./cli-api.lDy4N9kC.js').then(function (n) { return n.q; });
2340
2340
  const ctx = await startVitest(mode, cliFilters.map(normalize), normalizeCliOptions(cliFilters, options));
2341
2341
  if (!ctx.shouldKeepServer()) await ctx.exit();
2342
2342
  } catch (e) {
2343
- const { errorBanner } = await import('./utils.DK8FXp4T.js').then(function (n) { return n.u; });
2343
+ const { errorBanner } = await import('./utils.BS4fH3nR.js').then(function (n) { return n.u; });
2344
2344
  console.error(`\n${errorBanner("Startup Error")}`);
2345
2345
  console.error(e);
2346
2346
  console.error("\n\n");
@@ -2358,7 +2358,7 @@ async function init(project) {
2358
2358
  }
2359
2359
  async function collect(mode, cliFilters, options) {
2360
2360
  try {
2361
- const { prepareVitest, processCollected, outputFileList } = await import('./cli-api.CaPRsymo.js').then(function (n) { return n.q; });
2361
+ const { prepareVitest, processCollected, outputFileList } = await import('./cli-api.lDy4N9kC.js').then(function (n) { return n.q; });
2362
2362
  const ctx = await prepareVitest(mode, {
2363
2363
  ...normalizeCliOptions(cliFilters, options),
2364
2364
  watch: false,
@@ -2380,7 +2380,7 @@ async function collect(mode, cliFilters, options) {
2380
2380
  } else outputFileList(await ctx.getRelevantTestSpecifications(cliFilters.map(normalize)), options);
2381
2381
  await ctx.close();
2382
2382
  } catch (e) {
2383
- const { errorBanner } = await import('./utils.DK8FXp4T.js').then(function (n) { return n.u; });
2383
+ const { errorBanner } = await import('./utils.BS4fH3nR.js').then(function (n) { return n.u; });
2384
2384
  console.error(`\n${errorBanner("Collect Error")}`);
2385
2385
  console.error(e);
2386
2386
  console.error("\n\n");
@@ -13,20 +13,20 @@ import nodeos__default, { tmpdir } from 'node:os';
13
13
  import { generateHash as generateHash$1, createTaskName, validateTags, calculateSuiteHash, hasFailed, generateFileHash, limitConcurrency, createFileTask as createFileTask$1, createTagsFilter, someTasksAreOnly, interpretTaskModes, getTasks, isTestCase } from '@vitest/runner/utils';
14
14
  import { SnapshotManager } from '@vitest/snapshot/manager';
15
15
  import { serializeValue } from '@vitest/utils/serialize';
16
- import { v as version$1 } from './cac.Bb7YBzMA.js';
16
+ import { v as version$1 } from './cac.wyYWMVI-.js';
17
17
  import { rootDir, distDir } from '../path.js';
18
- import { f as createIndexLocationsMap, g as TraceMap, o as originalPositionFor, h as ancestor, s as stringify, p as parse, i as printError, j as Typechecker, k as generateCodeFrame, l as escapeRegExp, m as createDefinesScript, a as BenchmarkReportsMap, R as ReportersMap, n as groupBy, q as BlobReporter, r as readBlobs, t as convertTasksToEvents, H as HangingProcessReporter, w as wildcardPatternToRegExp, u as stdout } from './index.DICur-LY.js';
18
+ import { f as createIndexLocationsMap, g as TraceMap, o as originalPositionFor, h as ancestor, s as stringify, p as parse, i as printError, j as Typechecker, k as generateCodeFrame, l as escapeRegExp, m as createDefinesScript, a as BenchmarkReportsMap, R as ReportersMap, n as groupBy, q as BlobReporter, r as readBlobs, t as convertTasksToEvents, H as HangingProcessReporter, w as wildcardPatternToRegExp, u as stdout } from './index.BMXTnDNz.js';
19
19
  import { N as NativeModuleRunner } from './nativeModuleRunner.BIakptoF.js';
20
20
  import { T as Traces } from './traces.DT5aQ62U.js';
21
21
  import { createDebug } from 'obug';
22
- import { h as hash, R as RandomSequencer, i as isBrowserEnabled, r as resolveConfig, g as getCoverageProvider, b as resolveApiServerConfig } from './coverage.CwUlQe0s.js';
22
+ import { h as hash, R as RandomSequencer, i as isBrowserEnabled, r as resolveConfig, g as getCoverageProvider, b as resolveApiServerConfig } from './coverage.Da5gzbsu.js';
23
23
  import { rm, readFile, writeFile, rename, stat, unlink, mkdir, copyFile } from 'node:fs/promises';
24
24
  import c from 'tinyrainbow';
25
25
  import { VitestModuleEvaluator } from '#module-evaluator';
26
26
  import { ModuleRunner } from 'vite/module-runner';
27
27
  import { Console } from 'node:console';
28
28
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers.D26ty3Ew.js';
29
- import { g as formatProjectName, w as withLabel, e as errorBanner, d as divider } from './utils.DK8FXp4T.js';
29
+ import { g as formatProjectName, w as withLabel, e as errorBanner, d as divider } from './utils.BS4fH3nR.js';
30
30
  import { createRequire, builtinModules, isBuiltin as isBuiltin$1 } from 'node:module';
31
31
  import url, { fileURLToPath, pathToFileURL } from 'node:url';
32
32
  import { i as isTTY, a as isWindows } from './env.D4Lgay0q.js';
@@ -2320,7 +2320,7 @@ class VitestPackageInstaller {
2320
2320
  } catch {}
2321
2321
  }
2322
2322
  if (/* @__PURE__ */ isPackageExists(dependency, { paths: [root, __dirname$1] })) return true;
2323
- process.stderr.write(c.red(`${c.inverse(c.red(" MISSING DEPENDENCY "))} Cannot find dependency '${dependency}'\n\n`));
2323
+ process.stderr.write(withLabel("red", "MISSING DEPENDENCY", `Cannot find dependency '${dependency}'\n\n`));
2324
2324
  if (!isTTY) return false;
2325
2325
  const { install } = await (await import('./index.og1WyBLx.js').then(function (n) { return n.i; })).default({
2326
2326
  type: "confirm",
@@ -14051,7 +14051,7 @@ async function VitestPlugin(options = {}, vitest = new Vitest("test", deepClone(
14051
14051
  // preliminary merge of options to be able to create server options for vite
14052
14052
  // however to allow vitest plugins to modify vitest config values
14053
14053
  // this is repeated in configResolved where the config is final
14054
- const testConfig = deepMerge({}, configDefaults, removeUndefinedValues(viteConfig.test ?? {}), options);
14054
+ const testConfig = deepMerge({}, configDefaults, viteConfig.test ?? {}, options);
14055
14055
  testConfig.api = resolveApiServerConfig(testConfig, defaultPort);
14056
14056
  // store defines for globalThis to make them
14057
14057
  // reassignable when running in worker in src/runtime/setup.ts
@@ -14171,10 +14171,6 @@ async function VitestPlugin(options = {}, vitest = new Vitest("test", deepClone(
14171
14171
  ModuleRunnerTransform()
14172
14172
  ].filter(notNullish);
14173
14173
  }
14174
- function removeUndefinedValues(obj) {
14175
- for (const key in Object.keys(obj)) if (obj[key] === void 0) delete obj[key];
14176
- return obj;
14177
- }
14178
14174
 
14179
14175
  async function createVitest(mode, options, viteOverrides = {}, vitestOptions = {}) {
14180
14176
  const ctx = new Vitest(mode, deepClone(options), vitestOptions);
@@ -14,7 +14,8 @@ import { mergeConfig } from 'vite';
14
14
  import { c as configFiles, d as defaultBrowserPort, a as defaultInspectPort, b as defaultPort } from './constants.CPYnjOGj.js';
15
15
  import './env.D4Lgay0q.js';
16
16
  import nodeos__default from 'node:os';
17
- import { isCI, isAgent, provider } from 'std-env';
17
+ import { w as withLabel } from './utils.BS4fH3nR.js';
18
+ import { isAgent, isCI, provider } from 'std-env';
18
19
  import { r as resolveCoverageProviderModule } from './coverage.CTzCuANN.js';
19
20
 
20
21
  const hash = crypto.hash ?? ((algorithm, data, outputEncoding) => crypto.createHash(algorithm).update(data).digest(outputEncoding));
@@ -155,7 +156,7 @@ function resolveConfig$1(vitest, options, viteConfig) {
155
156
  const mode = vitest.mode;
156
157
  const logger = vitest.logger;
157
158
  if (options.dom) {
158
- if (viteConfig.test?.environment != null && viteConfig.test.environment !== "happy-dom") logger.console.warn(c.yellow(`${c.inverse(c.yellow(" Vitest "))} Your config.test.environment ("${viteConfig.test.environment}") conflicts with --dom flag ("happy-dom"), ignoring "${viteConfig.test.environment}"`));
159
+ if (viteConfig.test?.environment != null && viteConfig.test.environment !== "happy-dom") logger.console.warn(withLabel("yellow", "Vitest", `Your config.test.environment ("${viteConfig.test.environment}") conflicts with --dom flag ("happy-dom"), ignoring "${viteConfig.test.environment}"`));
159
160
  options.environment = "happy-dom";
160
161
  }
161
162
  const resolved = {
@@ -296,6 +297,18 @@ function resolveConfig$1(vitest, options, viteConfig) {
296
297
  }
297
298
  }
298
299
  resolved.coverage.reporter = resolveCoverageReporters(resolved.coverage.reporter);
300
+ if (isAgent) {
301
+ // default to `skipFull` and add `text-summary` reporter when `text` reporter is used on agents
302
+ const text = resolved.coverage.reporter.find(([name]) => name === "text");
303
+ const textSummary = resolved.coverage.reporter.find(([name]) => name === "text-summary");
304
+ if (text) {
305
+ text[1] = {
306
+ skipFull: true,
307
+ ...text[1]
308
+ };
309
+ if (!textSummary) resolved.coverage.reporter.push(["text-summary", {}]);
310
+ }
311
+ }
299
312
  if (resolved.coverage.changed === void 0 && resolved.changed !== void 0) resolved.coverage.changed = resolved.changed;
300
313
  if (resolved.coverage.enabled && resolved.coverage.reportsDirectory) {
301
314
  const reportsDirectory = resolve(resolved.root, resolved.coverage.reportsDirectory);
@@ -1,6 +1,6 @@
1
1
  import { g as globalApis } from './constants.CPYnjOGj.js';
2
- import { i as index } from './index.4L3g53iW.js';
3
- import './test.BmQO5GaM.js';
2
+ import { i as index } from './index.C-zNJvRx.js';
3
+ import './test.D1JkM1w4.js';
4
4
  import '@vitest/runner';
5
5
  import '@vitest/utils/helpers';
6
6
  import '@vitest/utils/timers';
@@ -3,7 +3,7 @@ import { getTests, generateHash, createTaskName, calculateSuiteHash, someTasksAr
3
3
  import * as pathe from 'pathe';
4
4
  import { relative, basename, resolve as resolve$1, join, normalize, dirname } from 'pathe';
5
5
  import c from 'tinyrainbow';
6
- import { t as truncateString, e as errorBanner, F as F_POINTER, d as divider, f as formatTimeString, a as taskFail, s as separator, b as F_CHECK, c as F_DOWN_RIGHT, g as formatProjectName, h as getStateSymbol, w as withLabel, r as renderSnapshotSummary, p as padSummaryTitle, i as getStateString$1, j as formatTime, k as countTestErrors, l as F_TREE_NODE_END, m as F_TREE_NODE_MIDDLE, n as noun, o as F_RIGHT } from './utils.DK8FXp4T.js';
6
+ import { t as truncateString, e as errorBanner, F as F_POINTER, d as divider, f as formatTimeString, a as taskFail, s as separator, b as F_CHECK, c as F_DOWN_RIGHT, g as formatProjectName, h as getStateSymbol, w as withLabel, r as renderSnapshotSummary, p as padSummaryTitle, i as getStateString$1, j as formatTime, k as countTestErrors, l as F_TREE_NODE_END, m as F_TREE_NODE_MIDDLE, n as noun, o as F_RIGHT } from './utils.BS4fH3nR.js';
7
7
  import { stripVTControlCharacters } from 'node:util';
8
8
  import { isPrimitive, toArray, deepMerge, notNullish } from '@vitest/utils/helpers';
9
9
  import { performance as performance$1 } from 'node:perf_hooks';
@@ -3572,6 +3572,7 @@ class JsonReporter {
3572
3572
  const numTodoTests = tests.filter((t) => t.mode === "todo").length;
3573
3573
  const testResults = [];
3574
3574
  const success = !!(files.length > 0 || this.ctx.config.passWithNoTests) && numFailedTestSuites === 0 && numFailedTests === 0;
3575
+ const { filterMeta } = this.options;
3575
3576
  for (const file of files) {
3576
3577
  const tests = getTests([file]);
3577
3578
  let startTime = tests.reduce((prev, next) => Math.min(prev, next.result?.startTime ?? Number.POSITIVE_INFINITY), Number.POSITIVE_INFINITY);
@@ -3593,7 +3594,14 @@ class JsonReporter {
3593
3594
  duration: t.result?.duration,
3594
3595
  failureMessages: t.result?.errors?.map((e) => e.stack || e.message) || [],
3595
3596
  location: t.location,
3596
- meta: t.meta,
3597
+ meta: filterMeta ? (() => {
3598
+ const filtered = {};
3599
+ for (const key in t.meta) {
3600
+ const value = t.meta[key];
3601
+ if (filterMeta(key, value)) filtered[key] = value;
3602
+ }
3603
+ return filtered;
3604
+ })() : t.meta,
3597
3605
  tags: t.tags || []
3598
3606
  };
3599
3607
  });
@@ -1,4 +1,4 @@
1
- import { v as vi, N as NodeBenchmarkRunner, S as Snapshots, T as TestRunner, a as assert, c as createExpect, g as globalExpect, i as inject, s as should, b as vitest } from './test.BmQO5GaM.js';
1
+ import { v as vi, N as NodeBenchmarkRunner, S as Snapshots, T as TestRunner, a as assert, c as createExpect, g as globalExpect, i as inject, s as should, b as vitest } from './test.D1JkM1w4.js';
2
2
  import { b as bench } from './benchmark.CX_oY03V.js';
3
3
  import { V as VitestEvaluatedModules } from './evaluatedModules.Dg1zASAC.js';
4
4
  import { expectTypeOf } from 'expect-type';
@@ -1,9 +1,9 @@
1
1
  import { chai } from '@vitest/expect';
2
2
  import { createHook } from 'node:async_hooks';
3
- import { l as loadDiffConfig, a as loadSnapshotSerializers, t as takeCoverageInsideWorker } from './setup-common.NdrZGMhw.js';
3
+ import { l as loadDiffConfig, a as loadSnapshotSerializers, t as takeCoverageInsideWorker } from './setup-common.BDwxwUWG.js';
4
4
  import { r as rpc } from './rpc.MzXet3jl.js';
5
5
  import { g as getWorkerState } from './utils.BX5Fg8C4.js';
6
- import { T as TestRunner, N as NodeBenchmarkRunner } from './test.BmQO5GaM.js';
6
+ import { T as TestRunner, N as NodeBenchmarkRunner } from './test.D1JkM1w4.js';
7
7
 
8
8
  function setupChaiConfig(config) {
9
9
  Object.assign(chai.config, config);
@@ -1,5 +1,5 @@
1
1
  import { DevEnvironment } from 'vite';
2
- import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.yJ2fBir5.js';
2
+ import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.BwkR0iL5.js';
3
3
 
4
4
  /**
5
5
  * Generate a unique cache identifier.
@@ -2268,6 +2268,8 @@ interface JsonTestResults {
2268
2268
  }
2269
2269
  interface JsonOptions {
2270
2270
  outputFile?: string;
2271
+ /** @experimental */
2272
+ filterMeta?: (key: string, value: unknown) => unknown;
2271
2273
  }
2272
2274
  declare class JsonReporter implements Reporter {
2273
2275
  start: number;
@@ -26,7 +26,7 @@ async function setupCommonEnv(config) {
26
26
  if (globalSetup) return;
27
27
  globalSetup = true;
28
28
  setSafeTimers();
29
- if (config.globals) (await import('./globals.7B-4LHAF.js')).registerApiGlobally();
29
+ if (config.globals) (await import('./globals.BVDtJR67.js')).registerApiGlobally();
30
30
  }
31
31
  function setupDefines(config) {
32
32
  for (const key in config.defines) globalThis[key] = config.defines[key];
@@ -3715,6 +3715,10 @@ function createExpectPoll(expect) {
3715
3715
  // @ts-expect-error private poll access
3716
3716
  const assertion = expect(null, message).withContext({ poll: true });
3717
3717
  fn = fn.bind(assertion);
3718
+ // injected so that domain snapshot can take over poll implementation.
3719
+ chai.util.flag(assertion, "_poll.fn", fn);
3720
+ chai.util.flag(assertion, "_poll.timeout", timeout);
3721
+ chai.util.flag(assertion, "_poll.interval", interval);
3718
3722
  const test = chai.util.flag(assertion, "vitest-test");
3719
3723
  if (!test) throw new Error("expect.poll() must be called inside a test");
3720
3724
  const proxy = new Proxy(assertion, { get(target, key, receiver) {
@@ -3722,17 +3726,50 @@ function createExpectPoll(expect) {
3722
3726
  if (typeof assertionFunction !== "function") return assertionFunction instanceof chai.Assertion ? proxy : assertionFunction;
3723
3727
  if (key === "assert") return assertionFunction;
3724
3728
  if (typeof key === "string" && unsupported.includes(key)) throw new SyntaxError(`expect.poll() is not supported in combination with .${key}(). Use vi.waitFor() if your assertion condition is unstable.`);
3725
- return function(...args) {
3729
+ // Core poll stack-trace trick:
3730
+ // 1. capture STACK_TRACE_ERROR here before entering the async poll loop
3731
+ // 2. when the matcher eventually fails, rethrow via throwWithCause()
3732
+ // so the final error keeps this earlier stack
3733
+ //
3734
+ // For example, when user writes:
3735
+ // await expect.poll(...).toBeSomething()
3736
+ // STACK_TRACE_ERROR.stack would look like
3737
+ // at ...(more internal stacks)...
3738
+ // at __VITEST_POLL_CHAIN__ .../packages/vitest/dist/...
3739
+ // at .../my-file.test.ts:12:3 (this points to `toBeSomething()` callsite in user test file)
3740
+ // Vitest later filters out internal stacks from `vitest/dist`, so the reported errors correctly
3741
+ // points to the user callsite for poll assertion errors.
3742
+ //
3743
+ // Inline snapshots piggyback on the same idea. We pass
3744
+ // STACK_TRACE_ERROR through `chai.util.flag(assertion, 'error', ...)`.
3745
+ // Inline snapshot assertion access the same error stack for
3746
+ // extracting inline snapshot location to validate and update new snapshots.
3747
+ return function __VITEST_POLL_CHAIN__(...args) {
3726
3748
  const STACK_TRACE_ERROR = /* @__PURE__ */ new Error("STACK_TRACE_ERROR");
3727
3749
  const promise = async () => {
3750
+ chai.util.flag(assertion, "_name", key);
3751
+ chai.util.flag(assertion, "error", STACK_TRACE_ERROR);
3752
+ const onSettled = chai.util.flag(assertion, "_poll.onSettled");
3753
+ if (Object.getOwnPropertyDescriptor(assertionFunction, "__vitest_poll_takeover__")?.value) try {
3754
+ const output = await assertionFunction.call(assertion, ...args);
3755
+ await onSettled?.({
3756
+ assertion,
3757
+ status: "pass"
3758
+ });
3759
+ return output;
3760
+ } catch (err) {
3761
+ await onSettled?.({
3762
+ assertion,
3763
+ status: "fail"
3764
+ });
3765
+ throwWithCause(err, STACK_TRACE_ERROR);
3766
+ }
3728
3767
  const { setTimeout, clearTimeout } = getSafeTimers();
3729
3768
  let executionPhase = "fn";
3730
3769
  let hasTimedOut = false;
3731
3770
  const timerId = setTimeout(() => {
3732
3771
  hasTimedOut = true;
3733
3772
  }, timeout);
3734
- chai.util.flag(assertion, "_name", key);
3735
- const onSettled = chai.util.flag(assertion, "_poll.onSettled");
3736
3773
  try {
3737
3774
  while (true) {
3738
3775
  const isLastAttempt = hasTimedOut;
@@ -3847,7 +3884,7 @@ const SnapshotPlugin = (chai, utils) => {
3847
3884
  assertion: this,
3848
3885
  received: utils.flag(this, "object"),
3849
3886
  ...normalizeArguments(propertiesOrHint, hint)
3850
- }));
3887
+ }), chai.util.flag(this, "message"));
3851
3888
  }));
3852
3889
  utils.addMethod(chai.Assertion.prototype, "toMatchFileSnapshot", function(filepath, hint) {
3853
3890
  // set name manually since it's not wrapped by wrapAssertion
@@ -3859,7 +3896,7 @@ const SnapshotPlugin = (chai, utils) => {
3859
3896
  received: utils.flag(this, "object"),
3860
3897
  filepath,
3861
3898
  hint
3862
- }).then((result) => assertMatchResult(result));
3899
+ }).then((result) => assertMatchResult(result, chai.util.flag(this, "message")));
3863
3900
  return recordAsyncExpect(getTest(this), assertPromise, createAssertionMessage(utils, this, true), /* @__PURE__ */ new Error("resolves"), utils.flag(this, "soft"));
3864
3901
  });
3865
3902
  utils.addMethod(chai.Assertion.prototype, "toMatchInlineSnapshot", wrapAssertion(utils, "toMatchInlineSnapshot", function __INLINE_SNAPSHOT_OFFSET_3__(propertiesOrInlineSnapshot, inlineSnapshotOrHint, hint) {
@@ -3868,7 +3905,7 @@ const SnapshotPlugin = (chai, utils) => {
3868
3905
  received: utils.flag(this, "object"),
3869
3906
  isInline: true,
3870
3907
  ...normalizeInlineArguments(propertiesOrInlineSnapshot, inlineSnapshotOrHint, hint)
3871
- }));
3908
+ }), chai.util.flag(this, "message"));
3872
3909
  }));
3873
3910
  utils.addMethod(chai.Assertion.prototype, "toThrowErrorMatchingSnapshot", wrapAssertion(utils, "toThrowErrorMatchingSnapshot", function(propertiesOrHint, hint) {
3874
3911
  validateAssertion(this);
@@ -3878,7 +3915,7 @@ const SnapshotPlugin = (chai, utils) => {
3878
3915
  assertion: this,
3879
3916
  received: getError(received, promise),
3880
3917
  ...normalizeArguments(propertiesOrHint, hint)
3881
- }));
3918
+ }), chai.util.flag(this, "message"));
3882
3919
  }));
3883
3920
  utils.addMethod(chai.Assertion.prototype, "toThrowErrorMatchingInlineSnapshot", wrapAssertion(utils, "toThrowErrorMatchingInlineSnapshot", function __INLINE_SNAPSHOT_OFFSET_3__(inlineSnapshotOrHint, hint) {
3884
3921
  validateAssertion(this);
@@ -3889,10 +3926,43 @@ const SnapshotPlugin = (chai, utils) => {
3889
3926
  received: getError(received, promise),
3890
3927
  isInline: true,
3891
3928
  ...normalizeInlineArguments(void 0, inlineSnapshotOrHint, hint)
3892
- }));
3929
+ }), chai.util.flag(this, "message"));
3893
3930
  }));
3894
3931
  utils.addMethod(chai.expect, "addSnapshotSerializer", addSerializer);
3895
3932
  };
3933
+ function toMatchDomainSnapshotImpl(opts) {
3934
+ const { assertion } = opts;
3935
+ validateAssertion(assertion);
3936
+ const assertionName = getAssertionName(assertion);
3937
+ const test = getTest(assertion);
3938
+ let { inlineSnapshot } = opts;
3939
+ if (inlineSnapshot) inlineSnapshot = stripSnapshotIndentation(inlineSnapshot);
3940
+ const pollFn = chai.util.flag(assertion, "_poll.fn");
3941
+ if (pollFn) return getSnapshotClient().pollMatchDomain({
3942
+ poll: pollFn,
3943
+ adapter: opts.adapter,
3944
+ message: opts.hint,
3945
+ isInline: opts.isInline,
3946
+ errorMessage: chai.util.flag(assertion, "message"),
3947
+ timeout: chai.util.flag(assertion, "_poll.timeout"),
3948
+ interval: chai.util.flag(assertion, "_poll.interval"),
3949
+ assertionName,
3950
+ inlineSnapshot,
3951
+ error: chai.util.flag(assertion, "error"),
3952
+ ...getTestNames(test)
3953
+ });
3954
+ return getSnapshotClient().matchDomain({
3955
+ received: opts.received,
3956
+ adapter: opts.adapter,
3957
+ message: opts.hint,
3958
+ isInline: opts.isInline,
3959
+ errorMessage: chai.util.flag(assertion, "message"),
3960
+ assertionName,
3961
+ inlineSnapshot,
3962
+ error: chai.util.flag(assertion, "error"),
3963
+ ...getTestNames(test)
3964
+ });
3965
+ }
3896
3966
  // toMatchSnapshot(propertiesOrHint?, hint?)
3897
3967
  function normalizeArguments(propertiesOrHint, hint) {
3898
3968
  if (typeof propertiesOrHint === "string") return { hint: propertiesOrHint };
@@ -3929,7 +3999,6 @@ function toMatchSnapshotImpl(options) {
3929
3999
  message: options.hint,
3930
4000
  isInline: options.isInline,
3931
4001
  inlineSnapshot: options.inlineSnapshot,
3932
- errorMessage: chai.util.flag(assertion, "message"),
3933
4002
  assertionName,
3934
4003
  error: chai.util.flag(assertion, "error"),
3935
4004
  ...getTestNames(test)
@@ -3945,7 +4014,6 @@ async function toMatchFileSnapshotImpl(options) {
3945
4014
  return getSnapshotClient().match({
3946
4015
  received: options.received,
3947
4016
  message: options.hint,
3948
- errorMessage: chai.util.flag(assertion, "message"),
3949
4017
  rawSnapshot: {
3950
4018
  file: rawSnapshotFile,
3951
4019
  content: rawSnapshotContent ?? void 0
@@ -3953,12 +4021,15 @@ async function toMatchFileSnapshotImpl(options) {
3953
4021
  ...testNames
3954
4022
  });
3955
4023
  }
3956
- function assertMatchResult(result) {
3957
- if (!result.pass) throw Object.assign(new Error(result.message()), {
3958
- actual: result.actual,
3959
- expected: result.expected,
3960
- diffOptions: { expand: getWorkerState().config.snapshotOptions.expand }
3961
- });
4024
+ function assertMatchResult(result, customMessage) {
4025
+ if (!result.pass) {
4026
+ const errorMessage = (customMessage ? `${customMessage}: ` : "") + result.message();
4027
+ throw Object.assign(new Error(errorMessage), {
4028
+ actual: result.actual,
4029
+ expected: result.expected,
4030
+ diffOptions: { expand: getWorkerState().config.snapshotOptions.expand }
4031
+ });
4032
+ }
3962
4033
  }
3963
4034
  /**
3964
4035
  * Composable snapshot matcher helpers for building custom snapshot matchers
@@ -3970,14 +4041,14 @@ function assertMatchResult(result) {
3970
4041
  const Snapshots = {
3971
4042
  toMatchSnapshot(received, propertiesOrHint, hint) {
3972
4043
  return toMatchSnapshotImpl({
3973
- assertion: this.__vitest_assertion__,
4044
+ assertion: this.assertion,
3974
4045
  received,
3975
4046
  ...normalizeArguments(propertiesOrHint, hint)
3976
4047
  });
3977
4048
  },
3978
4049
  toMatchInlineSnapshot(received, propertiesOrInlineSnapshot, inlineSnapshotOrHint, hint) {
3979
4050
  return toMatchSnapshotImpl({
3980
- assertion: this.__vitest_assertion__,
4051
+ assertion: this.assertion,
3981
4052
  received,
3982
4053
  isInline: true,
3983
4054
  ...normalizeInlineArguments(propertiesOrInlineSnapshot, inlineSnapshotOrHint, hint)
@@ -3985,11 +4056,27 @@ const Snapshots = {
3985
4056
  },
3986
4057
  toMatchFileSnapshot(received, filepath, hint) {
3987
4058
  return toMatchFileSnapshotImpl({
3988
- assertion: this.__vitest_assertion__,
4059
+ assertion: this.assertion,
3989
4060
  received,
3990
4061
  filepath,
3991
4062
  hint
3992
4063
  });
4064
+ },
4065
+ toMatchDomainSnapshot(domain, received) {
4066
+ return toMatchDomainSnapshotImpl({
4067
+ assertion: this.assertion,
4068
+ adapter: domain,
4069
+ received
4070
+ });
4071
+ },
4072
+ toMatchDomainInlineSnapshot(domain, received, inlineSnapshot) {
4073
+ return toMatchDomainSnapshotImpl({
4074
+ assertion: this.assertion,
4075
+ adapter: domain,
4076
+ received,
4077
+ isInline: true,
4078
+ inlineSnapshot
4079
+ });
3993
4080
  }
3994
4081
  };
3995
4082
 
@@ -138,7 +138,7 @@ function formatProjectName(project, suffix = " ") {
138
138
  }
139
139
  function withLabel(color, label, message) {
140
140
  const bgColor = `bg${color.charAt(0).toUpperCase()}${color.slice(1)}`;
141
- return `${c.bold(c[bgColor](` ${label} `))} ${message ? c[color](message) : ""}`;
141
+ return `${c.bold(c.black(c[bgColor](` ${label} `)))} ${message ? c[color](message) : ""}`;
142
142
  }
143
143
  function padSummaryTitle(str) {
144
144
  return c.dim(`${str.padStart(11)} `);
package/dist/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as createCLI } from './chunks/cac.Bb7YBzMA.js';
1
+ import { c as createCLI } from './chunks/cac.wyYWMVI-.js';
2
2
  import '@vitest/utils/helpers';
3
3
  import 'events';
4
4
  import 'pathe';
package/dist/config.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { HookHandler, UserConfig, ConfigEnv } from 'vite';
2
2
  export { ConfigEnv, Plugin, UserConfig as ViteUserConfig, mergeConfig } from 'vite';
3
- import { I as InlineConfig, C as CoverageOptions, F as FieldsWithDefaultValues, U as UserWorkspaceConfig, b as UserProjectConfigFn, c as UserProjectConfigExport } from './chunks/reporters.d.yJ2fBir5.js';
4
- export { a as TestProjectConfiguration, d as TestProjectInlineConfiguration, e as TestUserConfig, W as WatcherTriggerPattern } from './chunks/reporters.d.yJ2fBir5.js';
5
- import { V as VitestPluginContext } from './chunks/plugin.d.BssAumYw.js';
3
+ import { I as InlineConfig, C as CoverageOptions, F as FieldsWithDefaultValues, U as UserWorkspaceConfig, b as UserProjectConfigFn, c as UserProjectConfigExport } from './chunks/reporters.d.BwkR0iL5.js';
4
+ export { a as TestProjectConfiguration, d as TestProjectInlineConfiguration, e as TestUserConfig, W as WatcherTriggerPattern } from './chunks/reporters.d.BwkR0iL5.js';
5
+ import { V as VitestPluginContext } from './chunks/plugin.d.CEihBODF.js';
6
6
  import { F as FakeTimerInstallOpts } from './chunks/config.d.ChUh6-ad.js';
7
7
  export { TestTagDefinition } from '@vitest/runner';
8
8
  import '@vitest/utils';
@@ -1,4 +1,4 @@
1
- import { V as Vitest, at as ResolvedCoverageOptions, aZ as CoverageMap, am as ReportContext, T as TestProject } from './chunks/reporters.d.yJ2fBir5.js';
1
+ import { V as Vitest, at as ResolvedCoverageOptions, aZ as CoverageMap, am as ReportContext, T as TestProject } from './chunks/reporters.d.BwkR0iL5.js';
2
2
  import { TransformResult } from 'vite';
3
3
  import { A as AfterSuiteRunMeta } from './chunks/rpc.d.BFMWpdph.js';
4
4
  import '@vitest/runner';
package/dist/coverage.js CHANGED
@@ -1,4 +1,4 @@
1
- export { B as BaseCoverageProvider } from './chunks/coverage.CwUlQe0s.js';
1
+ export { B as BaseCoverageProvider } from './chunks/coverage.Da5gzbsu.js';
2
2
  import 'node:fs';
3
3
  import 'node:module';
4
4
  import 'node:path';
@@ -21,6 +21,7 @@ import 'node:v8';
21
21
  import 'node:util';
22
22
  import 'vite';
23
23
  import './chunks/constants.CPYnjOGj.js';
24
+ import './chunks/utils.BS4fH3nR.js';
24
25
  import './chunks/coverage.CTzCuANN.js';
25
26
 
26
27
  console.warn("Importing from \"vitest/coverage\" is deprecated since Vitest 4.1. Please use \"vitest/node\" instead.");
package/dist/index.d.ts CHANGED
@@ -11,8 +11,10 @@ import { S as SerializedConfig, F as FakeTimerInstallOpts, R as RuntimeOptions }
11
11
  export { b as RuntimeConfig, a as SerializedCoverageConfig } from './chunks/config.d.ChUh6-ad.js';
12
12
  import { U as UserConsoleLog, L as LabelColor, M as ModuleGraphData, P as ProvidedContext } from './chunks/rpc.d.BFMWpdph.js';
13
13
  export { A as AfterSuiteRunMeta, a as RunnerRPC, R as RuntimeRPC } from './chunks/rpc.d.BFMWpdph.js';
14
- import { ExpectStatic, MatcherState, SyncExpectationResult, AsyncExpectationResult } from '@vitest/expect';
14
+ import { ExpectStatic, MatcherState, SyncExpectationResult, AsyncExpectationResult, ExpectationResult } from '@vitest/expect';
15
15
  export { Assertion, AsymmetricMatchersContaining, DeeplyAllowMatchers, ExpectPollOptions, ExpectStatic, JestAssertion, RawMatcherFn as Matcher, ExpectationResult as MatcherResult, MatcherState, Matchers, chai } from '@vitest/expect';
16
+ import { DomainSnapshotAdapter } from '@vitest/snapshot';
17
+ export { SnapshotData, SnapshotMatchOptions, SnapshotResult, SnapshotSerializer, SnapshotStateOptions, SnapshotSummary, SnapshotUpdateState, UncheckedSnapshot } from '@vitest/snapshot';
16
18
  import { spyOn, fn, MaybeMockedDeep, MaybeMocked, MaybePartiallyMocked, MaybePartiallyMockedDeep, MockInstance } from '@vitest/spy';
17
19
  export { Mock, MockContext, MockInstance, MockResult, MockResultIncomplete, MockResultReturn, MockResultThrow, MockSettledResult, MockSettledResultFulfilled, MockSettledResultIncomplete, MockSettledResultRejected, Mocked, MockedClass, MockedFunction, MockedObject } from '@vitest/spy';
18
20
  import { Disposable } from 'vitest/optional-runtime-types.js';
@@ -22,7 +24,6 @@ export { V as EvaluatedModules } from './chunks/evaluatedModules.d.BxJ5omdx.js';
22
24
  export { NodeBenchmarkRunner as BenchmarkRunner, VitestTestRunner as TestRunner } from './runners.js';
23
25
  export { a as BenchFunction, b as Benchmark, c as BenchmarkAPI, B as BenchmarkResult } from './chunks/benchmark.d.DAaHLpsq.js';
24
26
  export { ExpectTypeOf, expectTypeOf } from 'expect-type';
25
- export { SnapshotData, SnapshotMatchOptions, SnapshotResult, SnapshotSerializer, SnapshotStateOptions, SnapshotSummary, SnapshotUpdateState, UncheckedSnapshot } from '@vitest/snapshot';
26
27
  export { DiffOptions } from '@vitest/utils/diff';
27
28
  export { Bench as BenchFactory, Options as BenchOptions, Task as BenchTask, TaskResult as BenchTaskResult } from 'tinybench';
28
29
  import './chunks/traces.d.402V_yFI.js';
@@ -168,6 +169,24 @@ declare const Snapshots: {
168
169
  * @see https://vitest.dev/guide/snapshot.html#custom-snapshot-matchers
169
170
  */
170
171
  toMatchFileSnapshot(this: MatcherState, received: unknown, filepath: string, hint?: string): AsyncExpectationResult;
172
+ /**
173
+ * Composable for building custom domain-based snapshot matchers via `expect.extend`.
174
+ *
175
+ * Call this from a matcher and pass the domain adapter that defines capture,
176
+ * rendering, parsing, and semantic matching behavior.
177
+ *
178
+ * @experimental
179
+ */
180
+ toMatchDomainSnapshot(this: MatcherState, domain: DomainSnapshotAdapter<any, any>, received: unknown): ExpectationResult;
181
+ /**
182
+ * Composable for building custom domain-based inline snapshot matchers via `expect.extend`.
183
+ *
184
+ * Call this from a matcher and pass the domain adapter that defines capture,
185
+ * rendering, parsing, and semantic matching behavior.
186
+ *
187
+ * @experimental
188
+ */
189
+ toMatchDomainInlineSnapshot(this: MatcherState, domain: DomainSnapshotAdapter<any, any>, received: unknown, inlineSnapshot?: string): ExpectationResult;
171
190
  };
172
191
 
173
192
  type WaitForCallback<T> = () => T | Promise<T>;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { N as BenchmarkRunner, S as Snapshots, T as TestRunner, a as assert, c as createExpect, g as expect, i as inject, s as should, v as vi, b as vitest } from './chunks/test.BmQO5GaM.js';
1
+ export { N as BenchmarkRunner, S as Snapshots, T as TestRunner, a as assert, c as createExpect, g as expect, i as inject, s as should, v as vi, b as vitest } from './chunks/test.D1JkM1w4.js';
2
2
  export { b as bench } from './chunks/benchmark.CX_oY03V.js';
3
3
  export { V as EvaluatedModules } from './chunks/evaluatedModules.Dg1zASAC.js';
4
- export { a as assertType } from './chunks/index.4L3g53iW.js';
4
+ export { a as assertType } from './chunks/index.C-zNJvRx.js';
5
5
  export { expectTypeOf } from 'expect-type';
6
6
  export { afterAll, afterEach, aroundAll, aroundEach, beforeAll, beforeEach, describe, it, onTestFailed, onTestFinished, recordArtifact, suite, test } from '@vitest/runner';
7
7
  export { chai } from '@vitest/expect';
package/dist/node.d.ts CHANGED
@@ -3,9 +3,9 @@ import { InlineConfig, UserConfig as UserConfig$1, Plugin, ResolvedConfig as Res
3
3
  export { vite as Vite };
4
4
  export { esbuildVersion, isCSSRequest, isFileLoadingAllowed, parseAst, parseAstAsync, rollupVersion, version as viteVersion } from 'vite';
5
5
  import { IncomingMessage } from 'node:http';
6
- import { R as ResolvedConfig, e as UserConfig, f as VitestRunMode, g as VitestOptions, V as Vitest, A as ApiConfig, L as Logger, h as TestSpecification, T as TestProject, P as PoolWorker, i as PoolOptions, j as WorkerRequest, k as TestSequencer } from './chunks/reporters.d.yJ2fBir5.js';
7
- export { l as AgentReporter, B as BaseCoverageOptions, m as BaseReporter, n as BenchmarkBuiltinReporters, o as BenchmarkReporter, p as BenchmarkReportsMap, q as BenchmarkUserOptions, r as BrowserBuiltinProvider, s as BrowserCommand, t as BrowserCommandContext, u as BrowserConfigOptions, v as BrowserInstanceOption, w as BrowserModuleMocker, x as BrowserOrchestrator, y as BrowserProvider, z as BrowserProviderOption, D as BrowserScript, E as BrowserServerFactory, G as BrowserServerOptions, H as BrowserServerState, J as BrowserServerStateSession, K as BuiltinEnvironment, M as BuiltinReporterOptions, N as BuiltinReporters, O as CSSModuleScopeStrategy, Q as CoverageIstanbulOptions, C as CoverageOptions, S as CoverageProvider, X as CoverageProviderModule, Y as CoverageReporter, Z as CoverageV8Options, _ as CustomProviderOptions, $ as DefaultReporter, a0 as DepsOptimizationOptions, a1 as DotReporter, a2 as EnvironmentOptions, a3 as GithubActionsReporter, a4 as HTMLOptions, a5 as HangingProcessReporter, I as InlineConfig, a6 as JUnitOptions, a7 as JUnitReporter, a8 as JsonAssertionResult, a9 as JsonOptions, aa as JsonReporter, ab as JsonTestResult, ac as JsonTestResults, ad as ModuleDiagnostic, ae as OnServerRestartHandler, af as OnTestsRerunHandler, ag as ParentProjectBrowser, ah as Pool, ai as PoolRunnerInitializer, aj as PoolTask, ak as ProjectBrowser, al as ProjectConfig, am as ReportContext, an as ReportedHookContext, ao as Reporter, ap as ReportersMap, aq as ResolveSnapshotPathHandler, ar as ResolveSnapshotPathHandlerContext, as as ResolvedBrowserOptions, at as ResolvedCoverageOptions, au as ResolvedProjectConfig, av as SerializedTestProject, aw as TapFlatReporter, ax as TapReporter, ay as TaskOptions, az as TestCase, aA as TestCollection, aB as TestDiagnostic, aC as TestModule, aD as TestModuleState, aE as TestResult, aF as TestResultFailed, aG as TestResultPassed, aH as TestResultSkipped, aI as TestRunEndReason, aJ as TestRunResult, aK as TestSequencerConstructor, aL as TestSpecificationOptions, aM as TestState, aN as TestSuite, aO as TestSuiteState, aP as ToMatchScreenshotComparators, aQ as ToMatchScreenshotOptions, aR as TypecheckConfig, U as UserWorkspaceConfig, aS as VerboseBenchmarkReporter, aT as VerboseReporter, aU as VitestEnvironment, aV as VitestPackageInstaller, W as WatcherTriggerPattern, aW as WorkerResponse, aX as _BrowserNames, aY as experimental_getRunnerTask } from './chunks/reporters.d.yJ2fBir5.js';
8
- export { C as CacheKeyIdGenerator, a as CacheKeyIdGeneratorContext, V as VitestPluginContext } from './chunks/plugin.d.BssAumYw.js';
6
+ import { R as ResolvedConfig, e as UserConfig, f as VitestRunMode, g as VitestOptions, V as Vitest, A as ApiConfig, L as Logger, h as TestSpecification, T as TestProject, P as PoolWorker, i as PoolOptions, j as WorkerRequest, k as TestSequencer } from './chunks/reporters.d.BwkR0iL5.js';
7
+ export { l as AgentReporter, B as BaseCoverageOptions, m as BaseReporter, n as BenchmarkBuiltinReporters, o as BenchmarkReporter, p as BenchmarkReportsMap, q as BenchmarkUserOptions, r as BrowserBuiltinProvider, s as BrowserCommand, t as BrowserCommandContext, u as BrowserConfigOptions, v as BrowserInstanceOption, w as BrowserModuleMocker, x as BrowserOrchestrator, y as BrowserProvider, z as BrowserProviderOption, D as BrowserScript, E as BrowserServerFactory, G as BrowserServerOptions, H as BrowserServerState, J as BrowserServerStateSession, K as BuiltinEnvironment, M as BuiltinReporterOptions, N as BuiltinReporters, O as CSSModuleScopeStrategy, Q as CoverageIstanbulOptions, C as CoverageOptions, S as CoverageProvider, X as CoverageProviderModule, Y as CoverageReporter, Z as CoverageV8Options, _ as CustomProviderOptions, $ as DefaultReporter, a0 as DepsOptimizationOptions, a1 as DotReporter, a2 as EnvironmentOptions, a3 as GithubActionsReporter, a4 as HTMLOptions, a5 as HangingProcessReporter, I as InlineConfig, a6 as JUnitOptions, a7 as JUnitReporter, a8 as JsonAssertionResult, a9 as JsonOptions, aa as JsonReporter, ab as JsonTestResult, ac as JsonTestResults, ad as ModuleDiagnostic, ae as OnServerRestartHandler, af as OnTestsRerunHandler, ag as ParentProjectBrowser, ah as Pool, ai as PoolRunnerInitializer, aj as PoolTask, ak as ProjectBrowser, al as ProjectConfig, am as ReportContext, an as ReportedHookContext, ao as Reporter, ap as ReportersMap, aq as ResolveSnapshotPathHandler, ar as ResolveSnapshotPathHandlerContext, as as ResolvedBrowserOptions, at as ResolvedCoverageOptions, au as ResolvedProjectConfig, av as SerializedTestProject, aw as TapFlatReporter, ax as TapReporter, ay as TaskOptions, az as TestCase, aA as TestCollection, aB as TestDiagnostic, aC as TestModule, aD as TestModuleState, aE as TestResult, aF as TestResultFailed, aG as TestResultPassed, aH as TestResultSkipped, aI as TestRunEndReason, aJ as TestRunResult, aK as TestSequencerConstructor, aL as TestSpecificationOptions, aM as TestState, aN as TestSuite, aO as TestSuiteState, aP as ToMatchScreenshotComparators, aQ as ToMatchScreenshotOptions, aR as TypecheckConfig, U as UserWorkspaceConfig, aS as VerboseBenchmarkReporter, aT as VerboseReporter, aU as VitestEnvironment, aV as VitestPackageInstaller, W as WatcherTriggerPattern, aW as WorkerResponse, aX as _BrowserNames, aY as experimental_getRunnerTask } from './chunks/reporters.d.BwkR0iL5.js';
8
+ export { C as CacheKeyIdGenerator, a as CacheKeyIdGeneratorContext, V as VitestPluginContext } from './chunks/plugin.d.CEihBODF.js';
9
9
  export { BaseCoverageProvider } from './coverage.js';
10
10
  import { Awaitable } from '@vitest/utils';
11
11
  export { SerializedError } from '@vitest/utils';
package/dist/node.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import * as vite from 'vite';
2
2
  import { resolveConfig as resolveConfig$1, mergeConfig } from 'vite';
3
3
  export { esbuildVersion, isCSSRequest, isFileLoadingAllowed, parseAst, parseAstAsync, rollupVersion, version as viteVersion } from 'vite';
4
- import { V as Vitest, a as VitestPlugin } from './chunks/cli-api.CaPRsymo.js';
5
- export { F as ForksPoolWorker, G as GitNotFoundError, b as TestsNotFoundError, T as ThreadsPoolWorker, c as TypecheckPoolWorker, d as VitestPackageInstaller, e as VmForksPoolWorker, f as VmThreadsPoolWorker, g as createDebugger, h as createMethodsRPC, i as createViteLogger, j as createVitest, k as escapeTestName, l as experimental_getRunnerTask, m as getFilePoolName, n as isFileServingAllowed, o as isValidApiRequest, r as registerConsoleShortcuts, p as resolveFsAllow, s as startVitest } from './chunks/cli-api.CaPRsymo.js';
6
- export { p as parseCLI } from './chunks/cac.Bb7YBzMA.js';
7
- import { r as resolveConfig$2 } from './chunks/coverage.CwUlQe0s.js';
8
- export { B as BaseCoverageProvider, a as BaseSequencer, b as resolveApiServerConfig } from './chunks/coverage.CwUlQe0s.js';
4
+ import { V as Vitest, a as VitestPlugin } from './chunks/cli-api.lDy4N9kC.js';
5
+ export { F as ForksPoolWorker, G as GitNotFoundError, b as TestsNotFoundError, T as ThreadsPoolWorker, c as TypecheckPoolWorker, d as VitestPackageInstaller, e as VmForksPoolWorker, f as VmThreadsPoolWorker, g as createDebugger, h as createMethodsRPC, i as createViteLogger, j as createVitest, k as escapeTestName, l as experimental_getRunnerTask, m as getFilePoolName, n as isFileServingAllowed, o as isValidApiRequest, r as registerConsoleShortcuts, p as resolveFsAllow, s as startVitest } from './chunks/cli-api.lDy4N9kC.js';
6
+ export { p as parseCLI } from './chunks/cac.wyYWMVI-.js';
7
+ import { r as resolveConfig$2 } from './chunks/coverage.Da5gzbsu.js';
8
+ export { B as BaseCoverageProvider, a as BaseSequencer, b as resolveApiServerConfig } from './chunks/coverage.Da5gzbsu.js';
9
9
  import { slash, deepClone } from '@vitest/utils/helpers';
10
10
  import { a as any } from './chunks/index.og1WyBLx.js';
11
11
  import { resolve } from 'pathe';
12
12
  import { c as configFiles } from './chunks/constants.CPYnjOGj.js';
13
- export { A as AgentReporter, B as BenchmarkReporter, a as BenchmarkReportsMap, D as DefaultReporter, b as DotReporter, G as GithubActionsReporter, H as HangingProcessReporter, J as JUnitReporter, c as JsonReporter, R as ReportersMap, T as TapFlatReporter, d as TapReporter, V as VerboseBenchmarkReporter, e as VerboseReporter } from './chunks/index.DICur-LY.js';
13
+ export { A as AgentReporter, B as BenchmarkReporter, a as BenchmarkReportsMap, D as DefaultReporter, b as DotReporter, G as GithubActionsReporter, H as HangingProcessReporter, J as JUnitReporter, c as JsonReporter, R as ReportersMap, T as TapFlatReporter, d as TapReporter, V as VerboseBenchmarkReporter, e as VerboseReporter } from './chunks/index.BMXTnDNz.js';
14
14
  export { distDir, rootDir } from './path.js';
15
15
  export { generateFileHash } from '@vitest/runner/utils';
16
16
  import 'node:fs';
@@ -35,7 +35,7 @@ import 'tinyrainbow';
35
35
  import '#module-evaluator';
36
36
  import 'node:console';
37
37
  import './chunks/_commonjsHelpers.D26ty3Ew.js';
38
- import './chunks/utils.DK8FXp4T.js';
38
+ import './chunks/utils.BS4fH3nR.js';
39
39
  import './chunks/env.D4Lgay0q.js';
40
40
  import 'std-env';
41
41
  import 'node:tty';
@@ -1,4 +1,4 @@
1
- export { l as AgentReporter, m as BaseReporter, n as BenchmarkBuiltinReporters, o as BenchmarkReporter, p as BenchmarkReportsMap, M as BuiltinReporterOptions, N as BuiltinReporters, $ as DefaultReporter, a1 as DotReporter, a3 as GithubActionsReporter, a5 as HangingProcessReporter, a7 as JUnitReporter, a8 as JsonAssertionResult, aa as JsonReporter, ab as JsonTestResult, ac as JsonTestResults, an as ReportedHookContext, ao as Reporter, ap as ReportersMap, aw as TapFlatReporter, ax as TapReporter, aI as TestRunEndReason, aS as VerboseBenchmarkReporter, aT as VerboseReporter } from './chunks/reporters.d.yJ2fBir5.js';
1
+ export { l as AgentReporter, m as BaseReporter, n as BenchmarkBuiltinReporters, o as BenchmarkReporter, p as BenchmarkReportsMap, M as BuiltinReporterOptions, N as BuiltinReporters, $ as DefaultReporter, a1 as DotReporter, a3 as GithubActionsReporter, a5 as HangingProcessReporter, a7 as JUnitReporter, a8 as JsonAssertionResult, aa as JsonReporter, ab as JsonTestResult, ac as JsonTestResults, an as ReportedHookContext, ao as Reporter, ap as ReportersMap, aw as TapFlatReporter, ax as TapReporter, aI as TestRunEndReason, aS as VerboseBenchmarkReporter, aT as VerboseReporter } from './chunks/reporters.d.BwkR0iL5.js';
2
2
  import '@vitest/runner';
3
3
  import '@vitest/utils';
4
4
  import './chunks/rpc.d.BFMWpdph.js';
package/dist/reporters.js CHANGED
@@ -1,9 +1,9 @@
1
- export { A as AgentReporter, B as BenchmarkReporter, a as BenchmarkReportsMap, D as DefaultReporter, b as DotReporter, G as GithubActionsReporter, H as HangingProcessReporter, J as JUnitReporter, c as JsonReporter, R as ReportersMap, T as TapFlatReporter, d as TapReporter, V as VerboseBenchmarkReporter, e as VerboseReporter } from './chunks/index.DICur-LY.js';
1
+ export { A as AgentReporter, B as BenchmarkReporter, a as BenchmarkReportsMap, D as DefaultReporter, b as DotReporter, G as GithubActionsReporter, H as HangingProcessReporter, J as JUnitReporter, c as JsonReporter, R as ReportersMap, T as TapFlatReporter, d as TapReporter, V as VerboseBenchmarkReporter, e as VerboseReporter } from './chunks/index.BMXTnDNz.js';
2
2
  import 'node:fs';
3
3
  import '@vitest/runner/utils';
4
4
  import 'pathe';
5
5
  import 'tinyrainbow';
6
- import './chunks/utils.DK8FXp4T.js';
6
+ import './chunks/utils.BS4fH3nR.js';
7
7
  import 'node:util';
8
8
  import '@vitest/utils/helpers';
9
9
  import 'node:perf_hooks';
package/dist/runners.js CHANGED
@@ -1,4 +1,4 @@
1
- export { N as NodeBenchmarkRunner, T as VitestTestRunner } from './chunks/test.BmQO5GaM.js';
1
+ export { N as NodeBenchmarkRunner, T as VitestTestRunner } from './chunks/test.D1JkM1w4.js';
2
2
  import '@vitest/runner';
3
3
  import '@vitest/utils/helpers';
4
4
  import '@vitest/utils/timers';
package/dist/worker.js CHANGED
@@ -1,18 +1,18 @@
1
- export { r as runBaseTests, s as setupEnvironment } from './chunks/base.C3wvLFNM.js';
1
+ export { r as runBaseTests, s as setupEnvironment } from './chunks/base.Cv_yNPUJ.js';
2
2
  export { i as init } from './chunks/init.D98-gwRW.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
- import './chunks/index.Cj9kDiDi.js';
5
+ import './chunks/index.C3MK_gXn.js';
6
6
  import '@vitest/expect';
7
7
  import 'node:async_hooks';
8
- import './chunks/setup-common.NdrZGMhw.js';
8
+ import './chunks/setup-common.BDwxwUWG.js';
9
9
  import './chunks/coverage.CTzCuANN.js';
10
10
  import '@vitest/snapshot';
11
11
  import '@vitest/utils/timers';
12
12
  import './chunks/utils.BX5Fg8C4.js';
13
13
  import './chunks/rpc.MzXet3jl.js';
14
14
  import './chunks/index.Chj8NDwU.js';
15
- import './chunks/test.BmQO5GaM.js';
15
+ import './chunks/test.D1JkM1w4.js';
16
16
  import '@vitest/runner';
17
17
  import '@vitest/utils/helpers';
18
18
  import './chunks/benchmark.CX_oY03V.js';
@@ -47,7 +47,7 @@ import './chunks/inspector.CvyFGlXm.js';
47
47
  import 'node:timers';
48
48
  import 'node:timers/promises';
49
49
  import '@vitest/utils/constants';
50
- import './chunks/index.4L3g53iW.js';
50
+ import './chunks/index.C-zNJvRx.js';
51
51
  import 'expect-type';
52
52
  import './chunks/index.DC7d2Pf8.js';
53
53
  import 'node:console';
@@ -1,18 +1,18 @@
1
- import { r as runBaseTests, s as setupBaseEnvironment } from '../chunks/base.C3wvLFNM.js';
1
+ import { r as runBaseTests, s as setupBaseEnvironment } from '../chunks/base.Cv_yNPUJ.js';
2
2
  import { w as workerInit } from '../chunks/init-forks.UV3ZQGQH.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
- import '../chunks/index.Cj9kDiDi.js';
5
+ import '../chunks/index.C3MK_gXn.js';
6
6
  import '@vitest/expect';
7
7
  import 'node:async_hooks';
8
- import '../chunks/setup-common.NdrZGMhw.js';
8
+ import '../chunks/setup-common.BDwxwUWG.js';
9
9
  import '../chunks/coverage.CTzCuANN.js';
10
10
  import '@vitest/snapshot';
11
11
  import '@vitest/utils/timers';
12
12
  import '../chunks/utils.BX5Fg8C4.js';
13
13
  import '../chunks/rpc.MzXet3jl.js';
14
14
  import '../chunks/index.Chj8NDwU.js';
15
- import '../chunks/test.BmQO5GaM.js';
15
+ import '../chunks/test.D1JkM1w4.js';
16
16
  import '@vitest/runner';
17
17
  import '@vitest/utils/helpers';
18
18
  import '../chunks/benchmark.CX_oY03V.js';
@@ -52,7 +52,7 @@ import 'node:perf_hooks';
52
52
  import 'node:timers';
53
53
  import 'node:timers/promises';
54
54
  import '@vitest/utils/constants';
55
- import '../chunks/index.4L3g53iW.js';
55
+ import '../chunks/index.C-zNJvRx.js';
56
56
  import 'expect-type';
57
57
 
58
58
  workerInit({
@@ -5,12 +5,12 @@ import timersPromises from 'node:timers/promises';
5
5
  import util from 'node:util';
6
6
  import { startTests, collectTests } from '@vitest/runner';
7
7
  import { KNOWN_ASSET_TYPES } from '@vitest/utils/constants';
8
- import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment, d as detectAsyncLeaks } from '../chunks/index.Cj9kDiDi.js';
9
- import { s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker } from '../chunks/setup-common.NdrZGMhw.js';
10
- import { i as index } from '../chunks/index.4L3g53iW.js';
8
+ import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment, d as detectAsyncLeaks } from '../chunks/index.C3MK_gXn.js';
9
+ import { s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker } from '../chunks/setup-common.BDwxwUWG.js';
10
+ import { i as index } from '../chunks/index.C-zNJvRx.js';
11
11
  import { c as closeInspector } from '../chunks/inspector.CvyFGlXm.js';
12
12
  import { g as getWorkerState } from '../chunks/utils.BX5Fg8C4.js';
13
- import { g as globalExpect } from '../chunks/test.BmQO5GaM.js';
13
+ import { g as globalExpect } from '../chunks/test.D1JkM1w4.js';
14
14
  import '@vitest/expect';
15
15
  import 'node:async_hooks';
16
16
  import '../chunks/rpc.MzXet3jl.js';
@@ -1,18 +1,18 @@
1
- import { s as setupBaseEnvironment, r as runBaseTests } from '../chunks/base.C3wvLFNM.js';
1
+ import { s as setupBaseEnvironment, r as runBaseTests } from '../chunks/base.Cv_yNPUJ.js';
2
2
  import { w as workerInit } from '../chunks/init-threads.D3eCsY76.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
- import '../chunks/index.Cj9kDiDi.js';
5
+ import '../chunks/index.C3MK_gXn.js';
6
6
  import '@vitest/expect';
7
7
  import 'node:async_hooks';
8
- import '../chunks/setup-common.NdrZGMhw.js';
8
+ import '../chunks/setup-common.BDwxwUWG.js';
9
9
  import '../chunks/coverage.CTzCuANN.js';
10
10
  import '@vitest/snapshot';
11
11
  import '@vitest/utils/timers';
12
12
  import '../chunks/utils.BX5Fg8C4.js';
13
13
  import '../chunks/rpc.MzXet3jl.js';
14
14
  import '../chunks/index.Chj8NDwU.js';
15
- import '../chunks/test.BmQO5GaM.js';
15
+ import '../chunks/test.D1JkM1w4.js';
16
16
  import '@vitest/runner';
17
17
  import '@vitest/utils/helpers';
18
18
  import '../chunks/benchmark.CX_oY03V.js';
@@ -52,7 +52,7 @@ import 'node:perf_hooks';
52
52
  import 'node:timers';
53
53
  import 'node:timers/promises';
54
54
  import '@vitest/utils/constants';
55
- import '../chunks/index.4L3g53iW.js';
55
+ import '../chunks/index.C-zNJvRx.js';
56
56
  import 'expect-type';
57
57
  import 'node:worker_threads';
58
58
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@depup/vitest",
3
3
  "type": "module",
4
- "version": "4.1.3-depup.0",
4
+ "version": "4.1.4-depup.0",
5
5
  "description": "Next generation testing framework powered by Vite (with updated dependencies)",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -142,12 +142,12 @@
142
142
  "happy-dom": "*",
143
143
  "jsdom": "*",
144
144
  "vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
145
- "@vitest/browser-playwright": "4.1.3",
146
- "@vitest/browser-preview": "4.1.3",
147
- "@vitest/browser-webdriverio": "4.1.3",
148
- "@vitest/coverage-istanbul": "4.1.3",
149
- "@vitest/coverage-v8": "4.1.3",
150
- "@vitest/ui": "4.1.3"
145
+ "@vitest/browser-preview": "4.1.4",
146
+ "@vitest/browser-playwright": "4.1.4",
147
+ "@vitest/browser-webdriverio": "4.1.4",
148
+ "@vitest/ui": "4.1.4",
149
+ "@vitest/coverage-v8": "4.1.4",
150
+ "@vitest/coverage-istanbul": "4.1.4"
151
151
  },
152
152
  "peerDependenciesMeta": {
153
153
  "@edge-runtime/vm": {
@@ -196,18 +196,18 @@
196
196
  "picomatch": "^4.0.4",
197
197
  "std-env": "^4.0.0-rc.1",
198
198
  "tinybench": "^6.0.0",
199
- "tinyexec": "^1.0.4",
200
- "tinyglobby": "^0.2.15",
199
+ "tinyexec": "^1.1.1",
200
+ "tinyglobby": "^0.2.16",
201
201
  "tinyrainbow": "^3.1.0",
202
- "vite": "^8.0.6",
202
+ "vite": "^8.0.8",
203
203
  "why-is-node-running": "^3.2.2",
204
- "@vitest/expect": "4.1.3",
205
- "@vitest/mocker": "4.1.3",
206
- "@vitest/pretty-format": "4.1.3",
207
- "@vitest/snapshot": "4.1.3",
208
- "@vitest/utils": "4.1.3",
209
- "@vitest/runner": "4.1.3",
210
- "@vitest/spy": "4.1.3"
204
+ "@vitest/expect": "4.1.4",
205
+ "@vitest/mocker": "4.1.4",
206
+ "@vitest/pretty-format": "4.1.4",
207
+ "@vitest/runner": "4.1.4",
208
+ "@vitest/snapshot": "4.1.4",
209
+ "@vitest/utils": "4.1.4",
210
+ "@vitest/spy": "4.1.4"
211
211
  },
212
212
  "devDependencies": {
213
213
  "@antfu/install-pkg": "^1.1.0",
@@ -255,21 +255,25 @@
255
255
  },
256
256
  "tinyexec": {
257
257
  "from": "^1.0.2",
258
- "to": "^1.0.4"
258
+ "to": "^1.1.1"
259
+ },
260
+ "tinyglobby": {
261
+ "from": "^0.2.15",
262
+ "to": "^0.2.16"
259
263
  },
260
264
  "vite": {
261
265
  "from": "^6.0.0 || ^7.0.0 || ^8.0.0",
262
- "to": "^8.0.6"
266
+ "to": "^8.0.8"
263
267
  },
264
268
  "why-is-node-running": {
265
269
  "from": "^2.3.0",
266
270
  "to": "^3.2.2"
267
271
  }
268
272
  },
269
- "depsUpdated": 5,
273
+ "depsUpdated": 6,
270
274
  "originalPackage": "vitest",
271
- "originalVersion": "4.1.3",
272
- "processedAt": "2026-04-07T12:27:34.570Z",
275
+ "originalVersion": "4.1.4",
276
+ "processedAt": "2026-04-09T08:38:45.180Z",
273
277
  "smokeTest": "passed"
274
278
  }
275
279
  }