vitest 2.1.0-beta.4 → 2.1.0-beta.6

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 (46) hide show
  1. package/LICENSE.md +29 -0
  2. package/dist/browser.d.ts +4 -3
  3. package/dist/browser.js +2 -2
  4. package/dist/chunks/{RandomSequencer.B4M2ux5b.js → RandomSequencer.CjkAy_bL.js} +67 -21
  5. package/dist/chunks/{base.BYvKfYzm.js → base.B-9RAXb6.js} +1 -1
  6. package/dist/chunks/{cac.C8rwFluK.js → cac.BZlOqtiQ.js} +7 -6
  7. package/dist/chunks/{cli-api.Bej3bUwz.js → cli-api.B-2f6g4d.js} +7541 -7357
  8. package/dist/chunks/{constants.CaAN7icJ.js → constants.fzPh7AOq.js} +1 -1
  9. package/dist/chunks/{coverage.CqfT4xaf.js → coverage.zlNdAMHK.js} +5 -3
  10. package/dist/chunks/{creator.GreKbaUc.js → creator.D0TxjnLa.js} +27 -22
  11. package/dist/chunks/{environment.0M5R1SX_.d.ts → environment.C5eAp3K6.d.ts} +1 -1
  12. package/dist/chunks/{globals.DRPLtPOv.js → globals.Br36EZIp.js} +3 -3
  13. package/dist/chunks/{index.YuPJueCg.js → index.C4LZENmc.js} +4446 -4416
  14. package/dist/chunks/index.CWhwfxXK.js +835 -0
  15. package/dist/chunks/{index.CxWPpGJz.js → index.dWDhoZDV.js} +2 -2
  16. package/dist/chunks/{index.CNZXZ9PJ.js → index.m3Xip5Zz.js} +1 -1
  17. package/dist/chunks/{reporters.DRZ7ndzr.d.ts → reporters.B0Ao6Zu1.d.ts} +154 -117
  18. package/dist/chunks/{resolveConfig.CGobt8AB.js → resolveConfig.C0vpvVRF.js} +43 -33
  19. package/dist/chunks/{runBaseTests.BAhL8UH_.js → runBaseTests.Cf8lGnUq.js} +5 -5
  20. package/dist/chunks/{setup-common.KBrCO5LJ.js → setup-common.B7uEQsGB.js} +1 -1
  21. package/dist/chunks/{vi.B6QZ938s.js → vi.DBepMgvg.js} +9 -0
  22. package/dist/chunks/vite.Bvz2vSw0.d.ts +11 -0
  23. package/dist/chunks/{worker.BANO5ak1.d.ts → worker.CTdJUeeB.d.ts} +3 -2
  24. package/dist/chunks/{worker.Cx2xE71X.d.ts → worker.DTM-0OlZ.d.ts} +1 -1
  25. package/dist/cli.js +2 -2
  26. package/dist/config.cjs +1 -0
  27. package/dist/config.d.ts +70 -2
  28. package/dist/config.js +1 -0
  29. package/dist/coverage.d.ts +4 -3
  30. package/dist/coverage.js +27 -3
  31. package/dist/environments.d.ts +2 -2
  32. package/dist/execute.d.ts +2 -2
  33. package/dist/index.d.ts +11 -6
  34. package/dist/index.js +3 -3
  35. package/dist/node.d.ts +17 -7
  36. package/dist/node.js +39 -36
  37. package/dist/reporters.d.ts +2 -2
  38. package/dist/reporters.js +5 -5
  39. package/dist/runners.js +1 -1
  40. package/dist/workers/forks.js +1 -1
  41. package/dist/workers/runVmTests.js +5 -5
  42. package/dist/workers/threads.js +1 -1
  43. package/dist/workers.d.ts +4 -16
  44. package/dist/workers.js +1 -1
  45. package/package.json +12 -12
  46. package/dist/chunks/index.DNUmWFkO.js +0 -319
@@ -9,7 +9,7 @@ import assert from 'node:assert';
9
9
  import v8 from 'node:v8';
10
10
  import { format, inspect } from 'node:util';
11
11
  import c from 'tinyrainbow';
12
- import { e as extraInlineDeps, d as defaultPort, a as defaultBrowserPort, b as defaultInspectPort } from './constants.CaAN7icJ.js';
12
+ import { e as extraInlineDeps, d as defaultPort, a as defaultBrowserPort, b as defaultInspectPort } from './constants.fzPh7AOq.js';
13
13
  import * as nodeos from 'node:os';
14
14
  import nodeos__default from 'node:os';
15
15
  import { i as isWindows } from './env.CmHVDJnw.js';
@@ -18,7 +18,7 @@ import { hasFailed } from '@vitest/runner/utils';
18
18
  import { b as groupBy, A as AggregateErrorPonyfill, a as slash, t as toArray } from './base.BH-FAiX7.js';
19
19
  import { createDefer } from '@vitest/utils';
20
20
  import crypto, { createHash } from 'node:crypto';
21
- import { w as wrapSerializableConfig, T as Typechecker, R as RandomSequencer, B as BaseSequencer } from './RandomSequencer.B4M2ux5b.js';
21
+ import { w as wrapSerializableConfig, T as Typechecker, R as RandomSequencer, B as BaseSequencer } from './RandomSequencer.CjkAy_bL.js';
22
22
  import { g as getDefaultExportFromCjs } from './_commonjsHelpers.BFTU3MAI.js';
23
23
  import require$$0 from 'util';
24
24
  import p from 'path';
@@ -4010,7 +4010,9 @@ function getTransformMode(patterns, filename) {
4010
4010
  }
4011
4011
  async function groupFilesByEnv(files) {
4012
4012
  const filesWithEnv = await Promise.all(
4013
- files.map(async ([project, file]) => {
4013
+ files.map(async (spec) => {
4014
+ const file = spec.moduleId;
4015
+ const project = spec.project.workspaceProject;
4014
4016
  const code = await promises$1.readFile(file, "utf-8");
4015
4017
  let env = code.match(/@(?:vitest|jest)-environment\s+([\w-]+)\b/)?.[1];
4016
4018
  if (!env) {
@@ -4237,16 +4239,18 @@ function createForksPool(ctx, { execArgv, env }) {
4237
4239
  return config;
4238
4240
  };
4239
4241
  const workspaceMap = /* @__PURE__ */ new Map();
4240
- for (const [project, file] of specs) {
4242
+ for (const spec of specs) {
4243
+ const file = spec.moduleId;
4244
+ const project = spec.project.workspaceProject;
4241
4245
  const workspaceFiles = workspaceMap.get(file) ?? [];
4242
4246
  workspaceFiles.push(project);
4243
4247
  workspaceMap.set(file, workspaceFiles);
4244
4248
  }
4245
4249
  const singleFork = specs.filter(
4246
- ([project]) => project.config.poolOptions?.forks?.singleFork
4250
+ (spec) => spec.project.config.poolOptions?.forks?.singleFork
4247
4251
  );
4248
4252
  const multipleForks = specs.filter(
4249
- ([project]) => !project.config.poolOptions?.forks?.singleFork
4253
+ (spec) => !spec.project.config.poolOptions?.forks?.singleFork
4250
4254
  );
4251
4255
  if (multipleForks.length) {
4252
4256
  const filesByEnv = await groupFilesByEnv(multipleForks);
@@ -4439,10 +4443,10 @@ See https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker for t
4439
4443
  workspaceMap.set(file, workspaceFiles);
4440
4444
  }
4441
4445
  const singleThreads = specs.filter(
4442
- ([project]) => project.config.poolOptions?.threads?.singleThread
4446
+ (spec) => spec.project.config.poolOptions?.threads?.singleThread
4443
4447
  );
4444
4448
  const multipleThreads = specs.filter(
4445
- ([project]) => !project.config.poolOptions?.threads?.singleThread
4449
+ (spec) => !spec.project.config.poolOptions?.threads?.singleThread
4446
4450
  );
4447
4451
  if (multipleThreads.length) {
4448
4452
  const filesByEnv = await groupFilesByEnv(multipleThreads);
@@ -4740,7 +4744,7 @@ function getMemoryLimit$1(config) {
4740
4744
 
4741
4745
  function createTypecheckPool(ctx) {
4742
4746
  const promisesMap = /* @__PURE__ */ new WeakMap();
4743
- const rerunTriggered = /* @__PURE__ */ new WeakMap();
4747
+ const rerunTriggered = /* @__PURE__ */ new WeakSet();
4744
4748
  async function onParseEnd(project, { files, sourceErrors }) {
4745
4749
  const checker = project.typechecker;
4746
4750
  await ctx.report("onTaskUpdate", checker.getTestPacks());
@@ -4756,7 +4760,7 @@ function createTypecheckPool(ctx) {
4756
4760
  ctx.state.catchError(error, "Typecheck Error");
4757
4761
  }
4758
4762
  promisesMap.get(project)?.resolve();
4759
- rerunTriggered.set(project, false);
4763
+ rerunTriggered.delete(project);
4760
4764
  if (ctx.config.watch && !ctx.runningPromise) {
4761
4765
  await ctx.report("onFinished", files, []);
4762
4766
  await ctx.report("onWatcherStart", files, [
@@ -4778,7 +4782,7 @@ function createTypecheckPool(ctx) {
4778
4782
  });
4779
4783
  checker.onParseEnd((result) => onParseEnd(project, result));
4780
4784
  checker.onWatcherRerun(async () => {
4781
- rerunTriggered.set(project, true);
4785
+ rerunTriggered.add(project);
4782
4786
  if (!ctx.runningPromise) {
4783
4787
  ctx.state.clearErrors();
4784
4788
  await ctx.report(
@@ -4804,19 +4808,19 @@ function createTypecheckPool(ctx) {
4804
4808
  await checker.start();
4805
4809
  }
4806
4810
  async function collectTests(specs) {
4807
- const specsByProject = groupBy(specs, ([project]) => project.getName());
4811
+ const specsByProject = groupBy(specs, (spec) => spec.project.name);
4808
4812
  for (const name in specsByProject) {
4809
- const project = specsByProject[name][0][0];
4810
- const files = specsByProject[name].map(([_, file]) => file);
4811
- const checker = await createWorkspaceTypechecker(project, files);
4813
+ const project = specsByProject[name][0].project;
4814
+ const files = specsByProject[name].map((spec) => spec.moduleId);
4815
+ const checker = await createWorkspaceTypechecker(project.workspaceProject, files);
4812
4816
  checker.setFiles(files);
4813
4817
  await checker.collectTests();
4814
- ctx.state.collectFiles(project, checker.getTestFiles());
4818
+ ctx.state.collectFiles(project.workspaceProject, checker.getTestFiles());
4815
4819
  await ctx.report("onCollected");
4816
4820
  }
4817
4821
  }
4818
4822
  async function runTests(specs) {
4819
- const specsByProject = groupBy(specs, ([project]) => project.getName());
4823
+ const specsByProject = groupBy(specs, (spec) => spec.project.name);
4820
4824
  const promises = [];
4821
4825
  for (const name in specsByProject) {
4822
4826
  const project = specsByProject[name][0][0];
@@ -4824,7 +4828,7 @@ function createTypecheckPool(ctx) {
4824
4828
  const promise = createDefer();
4825
4829
  const _p = new Promise((resolve) => {
4826
4830
  const _i = setInterval(() => {
4827
- if (!project.typechecker || rerunTriggered.get(project)) {
4831
+ if (!project.typechecker || rerunTriggered.has(project)) {
4828
4832
  resolve(true);
4829
4833
  clearInterval(_i);
4830
4834
  }
@@ -5013,14 +5017,7 @@ const builtinPools = [
5013
5017
  "vmForks",
5014
5018
  "typescript"
5015
5019
  ];
5016
- function getDefaultPoolName(project, file) {
5017
- if (project.config.typecheck.enabled) {
5018
- for (const glob of project.config.typecheck.include) {
5019
- if (mm.isMatch(file, glob, { cwd: project.config.root })) {
5020
- return "typescript";
5021
- }
5022
- }
5023
- }
5020
+ function getDefaultPoolName(project) {
5024
5021
  if (project.config.browser.enabled) {
5025
5022
  return "browser";
5026
5023
  }
@@ -5037,7 +5034,7 @@ function getFilePoolName(project, file) {
5037
5034
  return pool;
5038
5035
  }
5039
5036
  }
5040
- return getDefaultPoolName(project, file);
5037
+ return getDefaultPoolName(project);
5041
5038
  }
5042
5039
  function createPool(ctx) {
5043
5040
  const pools = {
@@ -5122,7 +5119,7 @@ function createPool(ctx) {
5122
5119
  typescript: () => createTypecheckPool(ctx)
5123
5120
  };
5124
5121
  for (const spec of files) {
5125
- const pool = getFilePoolName(spec[0], spec[1]);
5122
+ const { pool } = spec[2];
5126
5123
  filesByPool[pool] ??= [];
5127
5124
  filesByPool[pool].push(spec);
5128
5125
  }
@@ -7337,6 +7334,7 @@ const coverageConfigDefaults = {
7337
7334
  ".marko"
7338
7335
  ],
7339
7336
  allowExternal: false,
7337
+ excludeAfterRemap: false,
7340
7338
  ignoreEmptyLines: true,
7341
7339
  processingConcurrency: Math.min(
7342
7340
  20,
@@ -7612,6 +7610,7 @@ function resolveConfig(mode, options, viteConfig, logger) {
7612
7610
  root: viteConfig.root,
7613
7611
  mode
7614
7612
  };
7613
+ resolved.provide ??= {};
7615
7614
  const inspector = resolved.inspect || resolved.inspectBrk;
7616
7615
  resolved.inspector = {
7617
7616
  ...resolved.inspector,
@@ -7668,10 +7667,21 @@ function resolveConfig(mode, options, viteConfig, logger) {
7668
7667
  );
7669
7668
  }
7670
7669
  }
7671
- if (resolved.coverage.provider === "v8" && resolved.coverage.enabled && isBrowserEnabled(resolved)) {
7672
- throw new Error(
7673
- "@vitest/coverage-v8 does not work with --browser. Use @vitest/coverage-istanbul instead"
7674
- );
7670
+ if (resolved.browser.enabled && resolved.coverage.enabled && resolved.coverage.provider === "v8") {
7671
+ if (!(resolved.browser.provider === "playwright" && resolved.browser.name === "chromium")) {
7672
+ const browserConfig = { browser: { provider: resolved.browser.provider, name: resolved.browser.name } };
7673
+ throw new Error(
7674
+ `@vitest/coverage-v8 does not work with
7675
+ ${JSON.stringify(browserConfig, null, 2)}
7676
+
7677
+ Use either:
7678
+ ${JSON.stringify({ browser: { provider: "playwright", name: "chromium" } }, null, 2)}
7679
+
7680
+ ...or change your coverage provider to:
7681
+ ${JSON.stringify({ coverage: { provider: "istanbul" } }, null, 2)}
7682
+ `
7683
+ );
7684
+ }
7675
7685
  }
7676
7686
  resolved.coverage.reporter = resolveCoverageReporters(resolved.coverage.reporter);
7677
7687
  if (resolved.coverage.enabled && resolved.coverage.reportsDirectory) {
@@ -8117,4 +8127,4 @@ function resolveCoverageReporters(configReporters) {
8117
8127
  return resolvedReporters;
8118
8128
  }
8119
8129
 
8120
- export { VitestCache as V, resolveConfig as a, resolveCoverageReporters as b, createMethodsRPC as c, braces_1 as d, configDefaults as e, isPackageExists as f, getFilePoolName as g, createPool as h, isBrowserEnabled as i, coverageConfigDefaults as j, mm as m, picomatch$1 as p, resolveApiServerConfig as r, utils$4 as u };
8130
+ export { VitestCache as V, resolveApiServerConfig as a, resolveConfig as b, createMethodsRPC as c, braces_1 as d, configDefaults as e, isPackageExists as f, getFilePoolName as g, createPool as h, isBrowserEnabled as i, coverageConfigDefaults as j, mm as m, picomatch$1 as p, resolveCoverageReporters as r, utils$4 as u };
@@ -5,16 +5,16 @@ import '@vitest/runner/utils';
5
5
  import { getSafeTimers } from '@vitest/utils';
6
6
  import { g as getWorkerState } from './utils.Ck2hJTRs.js';
7
7
  import './env.CmHVDJnw.js';
8
- import { a as globalExpect, r as resetModules, v as vi } from './vi.B6QZ938s.js';
9
- import { a as startCoverageInsideWorker, s as stopCoverageInsideWorker } from './coverage.CqfT4xaf.js';
10
- import { a as resolveSnapshotEnvironment, s as setupChaiConfig, r as resolveTestRunner } from './index.CxWPpGJz.js';
8
+ import { a as globalExpect, r as resetModules, v as vi } from './vi.DBepMgvg.js';
9
+ import { a as startCoverageInsideWorker, s as stopCoverageInsideWorker } from './coverage.zlNdAMHK.js';
10
+ import { a as resolveSnapshotEnvironment, s as setupChaiConfig, r as resolveTestRunner } from './index.dWDhoZDV.js';
11
11
  import { createRequire } from 'node:module';
12
12
  import util from 'node:util';
13
13
  import timers from 'node:timers';
14
14
  import { installSourcemapsSupport } from 'vite-node/source-map';
15
15
  import { KNOWN_ASSET_TYPES } from 'vite-node/constants';
16
- import { V as VitestIndex } from './index.CNZXZ9PJ.js';
17
- import { s as setupCommonEnv } from './setup-common.KBrCO5LJ.js';
16
+ import { V as VitestIndex } from './index.m3Xip5Zz.js';
17
+ import { s as setupCommonEnv } from './setup-common.B7uEQsGB.js';
18
18
  import { c as closeInspector } from './inspector.70d6emsh.js';
19
19
  import 'std-env';
20
20
  import 'chai';
@@ -13,7 +13,7 @@ async function setupCommonEnv(config) {
13
13
  globalSetup = true;
14
14
  setSafeTimers();
15
15
  if (config.globals) {
16
- (await import('./globals.DRPLtPOv.js')).registerApiGlobally();
16
+ (await import('./globals.Br36EZIp.js')).registerApiGlobally();
17
17
  }
18
18
  }
19
19
  function setupDefines(defines) {
@@ -3228,6 +3228,11 @@ class FakeTimers {
3228
3228
  await this._clock.tickAsync(msToRun);
3229
3229
  }
3230
3230
  }
3231
+ advanceTimersToNextFrame() {
3232
+ if (this._checkFakeTimers()) {
3233
+ this._clock.runToFrame();
3234
+ }
3235
+ }
3231
3236
  runAllTicks() {
3232
3237
  if (this._checkFakeTimers()) {
3233
3238
  this._clock.runMicrotasks();
@@ -3555,6 +3560,10 @@ function createVitest() {
3555
3560
  await timers().advanceTimersToNextTimerAsync();
3556
3561
  return utils;
3557
3562
  },
3563
+ advanceTimersToNextFrame() {
3564
+ timers().advanceTimersToNextFrame();
3565
+ return utils;
3566
+ },
3558
3567
  getTimerCount() {
3559
3568
  return timers().getTimerCount();
3560
3569
  },
@@ -0,0 +1,11 @@
1
+ import { I as InlineConfig } from './reporters.B0Ao6Zu1.js';
2
+
3
+ type VitestInlineConfig = InlineConfig;
4
+ declare module 'vite' {
5
+ interface UserConfig {
6
+ /**
7
+ * Options for Vitest
8
+ */
9
+ test?: VitestInlineConfig;
10
+ }
11
+ }
@@ -2,9 +2,10 @@ import { FetchResult, ViteNodeResolveId, RawSourceMap, ModuleCacheMap } from 'vi
2
2
  import { File, TaskResultPack, CancelReason, Task } from '@vitest/runner';
3
3
  import { S as SerializedConfig } from './config.CHuotKvS.js';
4
4
  import { SnapshotResult } from '@vitest/snapshot';
5
- import { T as TransformMode, U as UserConsoleLog, A as AfterSuiteRunMeta, E as Environment } from './environment.0M5R1SX_.js';
5
+ import { T as TransformMode, U as UserConsoleLog, A as AfterSuiteRunMeta, E as Environment } from './environment.C5eAp3K6.js';
6
6
 
7
- type MockFactoryWithHelper<M = unknown> = (importOriginal: <T extends M>() => Promise<T>) => any;
7
+ type Promisable<T> = T | Promise<T>;
8
+ type MockFactoryWithHelper<M = unknown> = (importOriginal: <T extends M = M>() => Promise<T>) => Promisable<Partial<M>>;
8
9
  type MockFactory = () => any;
9
10
  type MockMap = Map<string, Record<string, string | null | MockFactory>>;
10
11
  interface PendingSuiteMock {
@@ -1,5 +1,5 @@
1
1
  import { MessagePort } from 'node:worker_threads';
2
- import { C as ContextRPC } from './worker.BANO5ak1.js';
2
+ import { C as ContextRPC } from './worker.CTdJUeeB.js';
3
3
 
4
4
  interface WorkerContext extends ContextRPC {
5
5
  port: MessagePort;
package/dist/cli.js CHANGED
@@ -1,9 +1,9 @@
1
- import { c as createCLI } from './chunks/cac.C8rwFluK.js';
1
+ import { c as createCLI } from './chunks/cac.BZlOqtiQ.js';
2
2
  import 'pathe';
3
3
  import 'events';
4
4
  import 'tinyrainbow';
5
5
  import './chunks/base.BH-FAiX7.js';
6
6
  import '@vitest/utils';
7
- import './chunks/constants.CaAN7icJ.js';
7
+ import './chunks/constants.fzPh7AOq.js';
8
8
 
9
9
  createCLI().parse();
package/dist/config.cjs CHANGED
@@ -71,6 +71,7 @@ const coverageConfigDefaults = {
71
71
  ".marko"
72
72
  ],
73
73
  allowExternal: false,
74
+ excludeAfterRemap: false,
74
75
  ignoreEmptyLines: true,
75
76
  processingConcurrency: Math.min(
76
77
  20,
package/dist/config.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- export { ap as UserConfigExport, ao as UserConfigFn, am as UserConfigFnObject, an as UserConfigFnPromise, ar as UserProjectConfigExport, aq as UserProjectConfigFn, z as UserWorkspaceConfig, aw as configDefaults, az as coverageConfigDefaults, av as defaultBrowserPort, ay as defaultExclude, ax as defaultInclude, as as defineConfig, at as defineProject, au as defineWorkspace, aA as extraInlineDeps } from './chunks/reporters.DRZ7ndzr.js';
1
+ import './chunks/vite.Bvz2vSw0.js';
2
+ import { ConfigEnv, UserConfig } from 'vite';
2
3
  export { ConfigEnv, Plugin, UserConfig, mergeConfig } from 'vite';
4
+ import { R as ResolvedCoverageOptions, b as CoverageV8Options, U as UserWorkspaceConfig, c as UserProjectConfigFn, d as UserProjectConfigExport, W as WorkspaceProjectConfiguration } from './chunks/reporters.B0Ao6Zu1.js';
3
5
  import '@vitest/runner';
4
6
  import '@vitest/pretty-format';
5
7
  import './chunks/config.CHuotKvS.js';
6
8
  import '@vitest/snapshot';
7
9
  import '@vitest/snapshot/environment';
8
10
  import 'vite-node';
9
- import './chunks/environment.0M5R1SX_.js';
11
+ import './chunks/environment.C5eAp3K6.js';
10
12
  import 'node:stream';
11
13
  import 'vite-node/client';
12
14
  import '@vitest/snapshot/manager';
@@ -18,3 +20,69 @@ import 'chai';
18
20
  import './chunks/benchmark.puBFxyfE.js';
19
21
  import '@vitest/runner/utils';
20
22
  import 'tinybench';
23
+
24
+ declare const defaultBrowserPort = 63315;
25
+ declare const extraInlineDeps: RegExp[];
26
+
27
+ declare const defaultInclude: string[];
28
+ declare const defaultExclude: string[];
29
+ declare const coverageConfigDefaults: ResolvedCoverageOptions;
30
+ declare const configDefaults: Readonly<{
31
+ allowOnly: boolean;
32
+ isolate: true;
33
+ watch: boolean;
34
+ globals: false;
35
+ environment: "node";
36
+ pool: "forks";
37
+ clearMocks: false;
38
+ restoreMocks: false;
39
+ mockReset: false;
40
+ unstubGlobals: false;
41
+ unstubEnvs: false;
42
+ include: string[];
43
+ exclude: string[];
44
+ teardownTimeout: number;
45
+ forceRerunTriggers: string[];
46
+ update: false;
47
+ reporters: never[];
48
+ silent: false;
49
+ hideSkippedTests: false;
50
+ api: false;
51
+ ui: false;
52
+ uiBase: string;
53
+ open: boolean;
54
+ css: {
55
+ include: never[];
56
+ };
57
+ coverage: CoverageV8Options;
58
+ fakeTimers: {
59
+ loopLimit: number;
60
+ shouldClearNativeTimers: true;
61
+ toFake: ("setTimeout" | "setInterval" | "clearInterval" | "clearTimeout" | "setImmediate" | "clearImmediate" | "Date")[];
62
+ };
63
+ maxConcurrency: number;
64
+ dangerouslyIgnoreUnhandledErrors: false;
65
+ typecheck: {
66
+ checker: "tsc";
67
+ include: string[];
68
+ exclude: string[];
69
+ };
70
+ slowTestThreshold: number;
71
+ disableConsoleIntercept: false;
72
+ }>;
73
+
74
+ type UserConfigFnObject = (env: ConfigEnv) => UserConfig;
75
+ type UserConfigFnPromise = (env: ConfigEnv) => Promise<UserConfig>;
76
+ type UserConfigFn = (env: ConfigEnv) => UserConfig | Promise<UserConfig>;
77
+ type UserConfigExport = UserConfig | Promise<UserConfig> | UserConfigFnObject | UserConfigFnPromise | UserConfigFn;
78
+ declare function defineConfig(config: UserConfig): UserConfig;
79
+ declare function defineConfig(config: Promise<UserConfig>): Promise<UserConfig>;
80
+ declare function defineConfig(config: UserConfigFnObject): UserConfigFnObject;
81
+ declare function defineConfig(config: UserConfigExport): UserConfigExport;
82
+ declare function defineProject(config: UserWorkspaceConfig): UserWorkspaceConfig;
83
+ declare function defineProject(config: Promise<UserWorkspaceConfig>): Promise<UserWorkspaceConfig>;
84
+ declare function defineProject(config: UserProjectConfigFn): UserProjectConfigFn;
85
+ declare function defineProject(config: UserProjectConfigExport): UserProjectConfigExport;
86
+ declare function defineWorkspace(config: WorkspaceProjectConfiguration[]): WorkspaceProjectConfiguration[];
87
+
88
+ export { type UserConfigExport, type UserConfigFn, type UserConfigFnObject, type UserConfigFnPromise, UserProjectConfigExport, UserProjectConfigFn, UserWorkspaceConfig, WorkspaceProjectConfiguration, configDefaults, coverageConfigDefaults, defaultBrowserPort, defaultExclude, defaultInclude, defineConfig, defineProject, defineWorkspace, extraInlineDeps };
package/dist/config.js CHANGED
@@ -69,6 +69,7 @@ const coverageConfigDefaults = {
69
69
  ".marko"
70
70
  ],
71
71
  allowExternal: false,
72
+ excludeAfterRemap: false,
72
73
  ignoreEmptyLines: true,
73
74
  processingConcurrency: Math.min(
74
75
  20,
@@ -1,12 +1,12 @@
1
- import { B as BaseCoverageOptions, R as ResolvedCoverageOptions } from './chunks/reporters.DRZ7ndzr.js';
1
+ import * as vite from 'vite';
2
+ import { B as BaseCoverageOptions, R as ResolvedCoverageOptions, V as Vitest } from './chunks/reporters.B0Ao6Zu1.js';
2
3
  import '@vitest/runner';
3
- import 'vite';
4
4
  import '@vitest/pretty-format';
5
5
  import './chunks/config.CHuotKvS.js';
6
6
  import '@vitest/snapshot';
7
7
  import '@vitest/snapshot/environment';
8
8
  import 'vite-node';
9
- import './chunks/environment.0M5R1SX_.js';
9
+ import './chunks/environment.C5eAp3K6.js';
10
10
  import 'node:stream';
11
11
  import 'vite-node/client';
12
12
  import '@vitest/snapshot/manager';
@@ -164,6 +164,7 @@ declare class BaseCoverageProvider {
164
164
  resolveReporters(configReporters: NonNullable<BaseCoverageOptions['reporter']>): ResolvedCoverageOptions['reporter'];
165
165
  hasTerminalReporter(reporters: ResolvedCoverageOptions['reporter']): boolean;
166
166
  toSlices<T>(array: T[], size: number): T[][];
167
+ createUncoveredFileTransformer(ctx: Vitest): (filename: string) => Promise<vite.TransformResult | null | undefined>;
167
168
  }
168
169
 
169
170
  export { BaseCoverageProvider };
package/dist/coverage.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { relative } from 'pathe';
2
- import { m as mm, b as resolveCoverageReporters } from './chunks/resolveConfig.CGobt8AB.js';
2
+ import { m as mm, r as resolveCoverageReporters } from './chunks/resolveConfig.C0vpvVRF.js';
3
3
  import 'node:path';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
@@ -10,7 +10,7 @@ import 'node:assert';
10
10
  import 'node:v8';
11
11
  import 'node:util';
12
12
  import 'tinyrainbow';
13
- import './chunks/constants.CaAN7icJ.js';
13
+ import './chunks/constants.fzPh7AOq.js';
14
14
  import 'node:os';
15
15
  import './chunks/env.CmHVDJnw.js';
16
16
  import 'std-env';
@@ -18,7 +18,7 @@ import '@vitest/runner/utils';
18
18
  import './chunks/base.BH-FAiX7.js';
19
19
  import '@vitest/utils';
20
20
  import 'node:crypto';
21
- import './chunks/RandomSequencer.B4M2ux5b.js';
21
+ import './chunks/RandomSequencer.CjkAy_bL.js';
22
22
  import 'node:perf_hooks';
23
23
  import 'execa';
24
24
  import '@vitest/utils/source-map';
@@ -212,6 +212,30 @@ class BaseCoverageProvider {
212
212
  return chunks;
213
213
  }, []);
214
214
  }
215
+ createUncoveredFileTransformer(ctx) {
216
+ const servers = [
217
+ ...ctx.projects.map((project) => ({
218
+ root: project.config.root,
219
+ vitenode: project.vitenode
220
+ })),
221
+ // Check core last as it will match all files anyway
222
+ { root: ctx.config.root, vitenode: ctx.vitenode }
223
+ ];
224
+ return async function transformFile(filename) {
225
+ let lastError;
226
+ for (const { root, vitenode } of servers) {
227
+ if (!filename.startsWith(root)) {
228
+ continue;
229
+ }
230
+ try {
231
+ return await vitenode.transformRequest(filename);
232
+ } catch (error) {
233
+ lastError = error;
234
+ }
235
+ }
236
+ throw lastError;
237
+ };
238
+ }
215
239
  }
216
240
  function resolveGlobThresholds(thresholds) {
217
241
  if (!thresholds || typeof thresholds !== "object") {
@@ -1,5 +1,5 @@
1
- import { E as Environment } from './chunks/environment.0M5R1SX_.js';
2
- export { a as EnvironmentReturn, V as VmEnvironmentReturn } from './chunks/environment.0M5R1SX_.js';
1
+ import { E as Environment } from './chunks/environment.C5eAp3K6.js';
2
+ export { a as EnvironmentReturn, V as VmEnvironmentReturn } from './chunks/environment.C5eAp3K6.js';
3
3
 
4
4
  declare const environments: {
5
5
  node: Environment;
package/dist/execute.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import vm from 'node:vm';
2
2
  import { ViteNodeRunner } from 'vite-node/client';
3
3
  import { ViteNodeRunnerOptions } from 'vite-node';
4
- import { P as PendingSuiteMock, f as MockFactory, R as RuntimeRPC, W as WorkerGlobalState, g as MockMap } from './chunks/worker.BANO5ak1.js';
4
+ import { P as PendingSuiteMock, f as MockFactory, R as RuntimeRPC, W as WorkerGlobalState, g as MockMap } from './chunks/worker.CTdJUeeB.js';
5
5
  import '@vitest/runner';
6
6
  import './chunks/config.CHuotKvS.js';
7
7
  import '@vitest/pretty-format';
8
8
  import '@vitest/snapshot';
9
9
  import '@vitest/snapshot/environment';
10
- import './chunks/environment.0M5R1SX_.js';
10
+ import './chunks/environment.C5eAp3K6.js';
11
11
 
12
12
  type Key = string | symbol;
13
13
  interface MockContext {
package/dist/index.d.ts CHANGED
@@ -1,23 +1,24 @@
1
- import { V as VitestEnvironment$1, S as SerializedSpec, b as RawErrsMap$1, T as TscErrorInfo$1, c as CollectLineNumbers$1, d as CollectLines$1, e as RootAndTarget$1, f as Context$1, C as CoverageProvider$1, g as ReportContext$1, a as CoverageProviderModule$1, h as CoverageReporter$1, i as CoverageProviderName, j as CoverageOptions$1, R as ResolvedCoverageOptions$1, B as BaseCoverageOptions$1, k as CoverageIstanbulOptions$1, l as CoverageV8Options$1, m as CustomProviderOptions$1, n as Reporter$1, o as Vitest$1, p as BrowserScript$1, q as BrowserConfigOptions$1, r as BuiltinEnvironment$1, P as Pool$1, s as PoolOptions$1, t as CSSModuleScopeStrategy$1, A as ApiConfig$1, u as VitestRunMode$1, D as DepsOptimizationOptions$1, v as TransformModePatterns$1, I as InlineConfig$1, w as TypecheckConfig$1, U as UserConfig$1, x as ResolvedConfig$1, y as ProjectConfig$1, z as UserWorkspaceConfig$1, E as BenchmarkUserOptions$1 } from './chunks/reporters.DRZ7ndzr.js';
1
+ import './chunks/vite.Bvz2vSw0.js';
2
2
  import { Plugin } from '@vitest/pretty-format';
3
3
  import { SnapshotState } from '@vitest/snapshot';
4
4
  export { SnapshotData, SnapshotMatchOptions, SnapshotResult, SnapshotSerializer, SnapshotStateOptions, SnapshotSummary, SnapshotUpdateState, UncheckedSnapshot } from '@vitest/snapshot';
5
5
  import { PromisifyAssertion, Tester, ExpectStatic } from '@vitest/expect';
6
6
  export { Assertion, AsymmetricMatchersContaining, ExpectPollOptions, ExpectStatic, JestAssertion } from '@vitest/expect';
7
+ import { e as VitestEnvironment$1, S as SerializedSpec, f as RawErrsMap$1, T as TscErrorInfo$1, g as CollectLineNumbers$1, h as CollectLines$1, i as RootAndTarget$1, j as Context$1, C as CoverageProvider$1, k as ReportContext$1, a as CoverageProviderModule$1, l as CoverageReporter$1, m as CoverageProviderName, n as CoverageOptions$1, R as ResolvedCoverageOptions$1, B as BaseCoverageOptions$1, o as CoverageIstanbulOptions$1, b as CoverageV8Options$1, p as CustomProviderOptions$1, q as Reporter$1, V as Vitest$1, r as BrowserScript$1, s as BrowserConfigOptions$1, t as BuiltinEnvironment$1, P as Pool$1, u as PoolOptions$1, v as CSSModuleScopeStrategy$1, A as ApiConfig$1, w as VitestRunMode$1, D as DepsOptimizationOptions$1, x as TransformModePatterns$1, I as InlineConfig$1, y as TypecheckConfig$1, z as UserConfig$1, E as ResolvedConfig$1, F as ProjectConfig$1, U as UserWorkspaceConfig$1, G as BenchmarkUserOptions$1 } from './chunks/reporters.B0Ao6Zu1.js';
7
8
  import { B as BenchmarkResult } from './chunks/benchmark.puBFxyfE.js';
8
9
  export { b as BenchFunction, a as Benchmark, c as BenchmarkAPI } from './chunks/benchmark.puBFxyfE.js';
9
- import { U as UserConsoleLog, P as ProvidedContext, M as ModuleGraphData, b as Awaitable$1, N as Nullable$1, c as Arrayable$1, d as ArgumentsType$1, e as MutableArray$1, C as Constructable$1, O as OnServerRestartHandler$1, a as EnvironmentReturn$1, V as VmEnvironmentReturn$1, E as Environment$1, R as ResolvedTestEnvironment$1, J as JSDOMOptions$1, H as HappyDOMOptions$1, f as EnvironmentOptions$1 } from './chunks/environment.0M5R1SX_.js';
10
- export { A as AfterSuiteRunMeta, g as ModuleCache } from './chunks/environment.0M5R1SX_.js';
10
+ import { U as UserConsoleLog, P as ProvidedContext, M as ModuleGraphData, b as Awaitable$1, N as Nullable$1, c as Arrayable$1, d as ArgumentsType$1, e as MutableArray$1, C as Constructable$1, O as OnServerRestartHandler$1, a as EnvironmentReturn$1, V as VmEnvironmentReturn$1, E as Environment$1, R as ResolvedTestEnvironment$1, J as JSDOMOptions$1, H as HappyDOMOptions$1, f as EnvironmentOptions$1 } from './chunks/environment.C5eAp3K6.js';
11
+ export { A as AfterSuiteRunMeta, g as ModuleCache } from './chunks/environment.C5eAp3K6.js';
11
12
  import { TaskPopulated, TaskResultPack, File as File$1, Suite as Suite$1, Test as Test$1, Custom as Custom$1, Task as Task$1, SequenceHooks as SequenceHooks$1, SequenceSetupFiles as SequenceSetupFiles$1 } from '@vitest/runner';
12
13
  export { CancelReason, DoneCallback, ExtendedContext, HookCleanupCallback, HookListener, OnTestFailedHandler, RunMode, Custom as RunnerCustomCase, Task as RunnerTask, Test as RunnerTestCase, File as RunnerTestFile, Suite as RunnerTestSuite, RuntimeContext, SuiteAPI, SuiteCollector, SuiteFactory, SuiteHooks, TaskBase, TaskContext, TaskCustomOptions, TaskMeta, TaskResult, TaskResultPack, TaskState, TestAPI, TestContext, TestFunction, TestOptions, afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, onTestFinished, suite, test } from '@vitest/runner';
13
14
  export { b as bench } from './chunks/suite.CcK46U-P.js';
14
15
  import { F as FakeTimerInstallOpts, R as RuntimeOptions, S as SerializedConfig } from './chunks/config.CHuotKvS.js';
15
16
  export { b as RuntimeConfig, a as SerializedCoverageConfig } from './chunks/config.CHuotKvS.js';
16
- import { M as MockFactoryWithHelper, a as BirpcReturn } from './chunks/worker.BANO5ak1.js';
17
- export { C as ContextRPC, e as ContextTestEnvironment, c as ResolveIdFunction, b as RunnerRPC, R as RuntimeRPC, W as WorkerGlobalState, d as WorkerRPC } from './chunks/worker.BANO5ak1.js';
17
+ import { M as MockFactoryWithHelper, a as BirpcReturn } from './chunks/worker.CTdJUeeB.js';
18
+ export { C as ContextRPC, e as ContextTestEnvironment, c as ResolveIdFunction, b as RunnerRPC, R as RuntimeRPC, W as WorkerGlobalState, d as WorkerRPC } from './chunks/worker.CTdJUeeB.js';
18
19
  import { spyOn, fn, MaybeMockedDeep, MaybeMocked, MaybePartiallyMocked, MaybePartiallyMockedDeep, MockInstance } from '@vitest/spy';
19
20
  export { Mock, MockContext, MockInstance, Mocked, MockedClass, MockedFunction, MockedObject } from '@vitest/spy';
20
- export { W as WorkerContext } from './chunks/worker.Cx2xE71X.js';
21
+ export { W as WorkerContext } from './chunks/worker.DTM-0OlZ.js';
21
22
  export { ErrorWithDiff, ParsedStack, SerializedError, TestError } from '@vitest/utils';
22
23
  export { DiffOptions } from '@vitest/utils/diff';
23
24
  import * as chai from 'chai';
@@ -1233,6 +1234,10 @@ interface VitestUtils {
1233
1234
  * Will call next available timer and wait until it's resolved if it was set asynchronously. Useful to make assertions between each timer call.
1234
1235
  */
1235
1236
  advanceTimersToNextTimerAsync: () => Promise<VitestUtils>;
1237
+ /**
1238
+ * Similar to [`vi.advanceTimersByTime`](https://vitest.dev/api/vi#vi-advancetimersbytime), but will advance timers by the milliseconds needed to execute callbacks currently scheduled with `requestAnimationFrame`.
1239
+ */
1240
+ advanceTimersToNextFrame: () => VitestUtils;
1236
1241
  /**
1237
1242
  * Get the number of waiting timers.
1238
1243
  */
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  export { afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, onTestFinished, suite, test } from '@vitest/runner';
2
2
  export { b as bench } from './chunks/benchmark.C8CRJYG4.js';
3
- import { d as dist } from './chunks/index.CNZXZ9PJ.js';
4
- export { a as assertType, g as getRunningMode, b as inject, i as isWatchMode } from './chunks/index.CNZXZ9PJ.js';
3
+ import { d as dist } from './chunks/index.m3Xip5Zz.js';
4
+ export { a as assertType, g as getRunningMode, b as inject, i as isWatchMode } from './chunks/index.m3Xip5Zz.js';
5
5
  export { i as isFirstRun, a as runOnce } from './chunks/run-once.Sxe67Wng.js';
6
- export { c as createExpect, a as expect, v as vi, b as vitest } from './chunks/vi.B6QZ938s.js';
6
+ export { c as createExpect, a as expect, v as vi, b as vitest } from './chunks/vi.DBepMgvg.js';
7
7
  import * as chai from 'chai';
8
8
  export { chai };
9
9
  export { assert, should } from 'chai';
package/dist/node.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { u as VitestRunMode, U as UserConfig, F as VitestOptions, o as Vitest, x as ResolvedConfig, W as WorkspaceProject, A as ApiConfig, L as Logger, G as TestSequencer, H as WorkspaceSpec } from './chunks/reporters.DRZ7ndzr.js';
2
- export { B as BaseCoverageOptions, E as BenchmarkUserOptions, $ as BrowserBuiltinProvider, a0 as BrowserCommand, a1 as BrowserCommandContext, q as BrowserConfigOptions, a5 as BrowserOrchestrator, Q as BrowserProvider, O as BrowserProviderInitializationOptions, Y as BrowserProviderModule, _ as BrowserProviderOptions, p as BrowserScript, a2 as BrowserServer, a3 as BrowserServerState, a4 as BrowserServerStateContext, r as BuiltinEnvironment, X as CDPSession, t as CSSModuleScopeStrategy, k as CoverageIstanbulOptions, j as CoverageOptions, C as CoverageProvider, a as CoverageProviderModule, h as CoverageReporter, l as CoverageV8Options, m as CustomProviderOptions, D as DepsOptimizationOptions, ag as FileDiagnostic, a8 as HTMLOptions, I as InlineConfig, a7 as JUnitOptions, a6 as JsonOptions, P as Pool, s as PoolOptions, J as ProcessPool, y as ProjectConfig, g as ReportContext, Z as ResolvedBrowserOptions, R as ResolvedCoverageOptions, al as ResolvedProjectConfig, ae as TaskOptions, a9 as TestCase, ad as TestCollection, af as TestDiagnostic, aa as TestFile, ac as TestProject, ah as TestResult, aj as TestResultFailed, ai as TestResultPassed, ak as TestResultSkipped, N as TestSequencerConstructor, ab as TestSuite, v as TransformModePatterns, c as TypeCheckCollectLineNumbers, d as TypeCheckCollectLines, f as TypeCheckContext, T as TypeCheckErrorInfo, b as TypeCheckRawErrorsMap, e as TypeCheckRootAndTarget, w as TypecheckConfig, z as UserWorkspaceConfig, V as VitestEnvironment, M as VitestPackageInstaller, K as getFilePoolName } from './chunks/reporters.DRZ7ndzr.js';
1
+ import { w as VitestRunMode, z as UserConfig, H as VitestOptions, V as Vitest, E as ResolvedConfig, J as WorkspaceProject, A as ApiConfig, L as Logger, K as TestSequencer, M as WorkspaceSpec, N as TestModule, O as ModuleDiagnostic } from './chunks/reporters.B0Ao6Zu1.js';
2
+ export { B as BaseCoverageOptions, G as BenchmarkUserOptions, a4 as BrowserBuiltinProvider, a5 as BrowserCommand, a6 as BrowserCommandContext, s as BrowserConfigOptions, aa as BrowserOrchestrator, $ as BrowserProvider, _ as BrowserProviderInitializationOptions, a1 as BrowserProviderModule, a3 as BrowserProviderOptions, r as BrowserScript, a7 as BrowserServer, a8 as BrowserServerState, a9 as BrowserServerStateContext, t as BuiltinEnvironment, a0 as CDPSession, v as CSSModuleScopeStrategy, o as CoverageIstanbulOptions, n as CoverageOptions, C as CoverageProvider, a as CoverageProviderModule, l as CoverageReporter, b as CoverageV8Options, p as CustomProviderOptions, D as DepsOptimizationOptions, ad as HTMLOptions, I as InlineConfig, ac as JUnitOptions, ab as JsonOptions, P as Pool, u as PoolOptions, Q as ProcessPool, F as ProjectConfig, k as ReportContext, a2 as ResolvedBrowserOptions, R as ResolvedCoverageOptions, ao as ResolvedProjectConfig, ai as TaskOptions, ae as TestCase, ah as TestCollection, aj as TestDiagnostic, ag as TestProject, ak as TestResult, am as TestResultFailed, al as TestResultPassed, an as TestResultSkipped, Z as TestSequencerConstructor, af as TestSuite, x as TransformModePatterns, g as TypeCheckCollectLineNumbers, h as TypeCheckCollectLines, j as TypeCheckContext, T as TypeCheckErrorInfo, f as TypeCheckRawErrorsMap, i as TypeCheckRootAndTarget, y as TypecheckConfig, U as UserWorkspaceConfig, e as VitestEnvironment, Y as VitestPackageInstaller, X as getFilePoolName } from './chunks/reporters.B0Ao6Zu1.js';
3
3
  import { UserConfig as UserConfig$1, Plugin, ResolvedConfig as ResolvedConfig$1 } from 'vite';
4
4
  import * as vite from 'vite';
5
5
  export { vite as Vite };
6
6
  export { createServer, isFileServingAllowed, parseAst, parseAstAsync } from 'vite';
7
7
  import { Writable } from 'node:stream';
8
- import { P as ProvidedContext } from './chunks/environment.0M5R1SX_.js';
9
- export { f as EnvironmentOptions, H as HappyDOMOptions, J as JSDOMOptions, O as OnServerRestartHandler } from './chunks/environment.0M5R1SX_.js';
10
- import { R as RuntimeRPC } from './chunks/worker.BANO5ak1.js';
8
+ import { P as ProvidedContext } from './chunks/environment.C5eAp3K6.js';
9
+ export { f as EnvironmentOptions, H as HappyDOMOptions, J as JSDOMOptions, O as OnServerRestartHandler } from './chunks/environment.C5eAp3K6.js';
10
+ import { R as RuntimeRPC } from './chunks/worker.CTdJUeeB.js';
11
11
  import createDebug from 'debug';
12
- export { W as WorkerContext } from './chunks/worker.Cx2xE71X.js';
12
+ export { W as WorkerContext } from './chunks/worker.DTM-0OlZ.js';
13
13
  export { SequenceHooks, SequenceSetupFiles } from '@vitest/runner';
14
14
  export { b as RuntimeConfig } from './chunks/config.CHuotKvS.js';
15
15
  import '@vitest/pretty-format';
@@ -99,4 +99,14 @@ declare class BaseSequencer implements TestSequencer {
99
99
  sort(files: WorkspaceSpec[]): Promise<WorkspaceSpec[]>;
100
100
  }
101
101
 
102
- export { ApiConfig, BaseSequencer, GitNotFoundError, type GlobalSetupContext, ResolvedConfig, TestSequencer, FilesNotFoundError as TestsNotFoundError, UserConfig, Vitest, VitestPlugin, VitestRunMode, WorkspaceProject, WorkspaceSpec, createDebugger, createMethodsRPC, createVitest, distDir, parseCLI, registerConsoleShortcuts, resolveApiServerConfig, resolveConfig, resolveFsAllow, rootDir, startVitest };
102
+ /**
103
+ * @deprecated Use `TestModule` instead
104
+ */
105
+ declare const TestFile: typeof TestModule;
106
+
107
+ /**
108
+ * @deprecated Use `ModuleDiagnostic` instead
109
+ */
110
+ type FileDiagnostic = ModuleDiagnostic;
111
+
112
+ export { ApiConfig, BaseSequencer, type FileDiagnostic, GitNotFoundError, type GlobalSetupContext, ModuleDiagnostic, ResolvedConfig, TestFile, TestModule, TestSequencer, FilesNotFoundError as TestsNotFoundError, UserConfig, Vitest, VitestPlugin, VitestRunMode, WorkspaceProject, WorkspaceSpec, createDebugger, createMethodsRPC, createVitest, distDir, parseCLI, registerConsoleShortcuts, resolveApiServerConfig, resolveConfig, resolveFsAllow, rootDir, startVitest };