vitest 4.1.4 → 4.1.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 (40) hide show
  1. package/dist/browser.d.ts +2 -2
  2. package/dist/browser.js +1 -1
  3. package/dist/chunks/{base.Cv_yNPUJ.js → base.RR7zL1h0.js} +4 -4
  4. package/dist/chunks/{browser.d.C0zGu1u9.d.ts → browser.d.BcoexmFG.d.ts} +2 -2
  5. package/dist/chunks/{cac.wyYWMVI-.js → cac.CVxlyDFd.js} +4 -4
  6. package/dist/chunks/{cli-api.lDy4N9kC.js → cli-api.B5majYba.js} +28 -11
  7. package/dist/chunks/{config.d.ChUh6-ad.d.ts → config.d.A1h_Y6Jt.d.ts} +6 -1
  8. package/dist/chunks/{coverage.Da5gzbsu.js → coverage.DM_a_rWm.js} +10 -2
  9. package/dist/chunks/{global.d.D74z04P1.d.ts → global.d.DVsSRdQ5.d.ts} +1 -1
  10. package/dist/chunks/{globals.BVDtJR67.js → globals.Dj1TGiMC.js} +2 -2
  11. package/dist/chunks/{index.C3MK_gXn.js → index.DXx9Dtk7.js} +2 -2
  12. package/dist/chunks/{index.C-zNJvRx.js → index.DdgEv5B1.js} +1 -1
  13. package/dist/chunks/{index.BMXTnDNz.js → index.UpGiHP7g.js} +26 -25
  14. package/dist/chunks/{plugin.d.CEihBODF.d.ts → plugin.d.C0upjs_f.d.ts} +1 -1
  15. package/dist/chunks/{reporters.d.BwkR0iL5.d.ts → reporters.d.CtLUhkkA.d.ts} +84 -20
  16. package/dist/chunks/{rpc.d.BFMWpdph.d.ts → rpc.d.B_8sPU0w.d.ts} +2 -44
  17. package/dist/chunks/{setup-common.BDwxwUWG.js → setup-common.DYx3LtFI.js} +1 -1
  18. package/dist/chunks/{test.D1JkM1w4.js → test.DNmyFkvJ.js} +1 -1
  19. package/dist/chunks/traces.d.D2T_R8rx.d.ts +60 -0
  20. package/dist/chunks/{worker.d.CckNUvI5.d.ts → worker.d.ZpHpO4yb.d.ts} +2 -2
  21. package/dist/cli.js +1 -1
  22. package/dist/config.d.ts +10 -10
  23. package/dist/coverage.d.ts +8 -7
  24. package/dist/coverage.js +1 -1
  25. package/dist/index.d.ts +15 -12
  26. package/dist/index.js +2 -2
  27. package/dist/module-evaluator.d.ts +2 -2
  28. package/dist/node.d.ts +10 -10
  29. package/dist/node.js +6 -6
  30. package/dist/reporters.d.ts +8 -8
  31. package/dist/reporters.js +2 -2
  32. package/dist/runners.d.ts +2 -2
  33. package/dist/runners.js +1 -1
  34. package/dist/worker.d.ts +4 -4
  35. package/dist/worker.js +5 -5
  36. package/dist/workers/forks.js +5 -5
  37. package/dist/workers/runVmTests.js +4 -4
  38. package/dist/workers/threads.js +5 -5
  39. package/package.json +14 -14
  40. package/dist/chunks/traces.d.402V_yFI.d.ts +0 -18
package/dist/browser.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { a as SerializedCoverageConfig, S as SerializedConfig } from './chunks/config.d.ChUh6-ad.js';
1
+ import { a as SerializedCoverageConfig, S as SerializedConfig } from './chunks/config.d.A1h_Y6Jt.js';
2
2
  import { R as RuntimeCoverageModuleLoader } from './chunks/coverage.d.BZtK59WP.js';
3
3
  import { SerializedDiffOptions } from '@vitest/utils/diff';
4
- export { O as OTELCarrier, T as Traces } from './chunks/traces.d.402V_yFI.js';
4
+ export { O as OTELCarrier, T as Traces } from './chunks/traces.d.D2T_R8rx.js';
5
5
  export { collectTests, startTests } from '@vitest/runner';
6
6
  import * as _vitest_spy from '@vitest/spy';
7
7
  export { _vitest_spy as SpyModule };
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.BDwxwUWG.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.DYx3LtFI.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.C3MK_gXn.js';
3
+ import { r as resolveTestRunner, a as resolveSnapshotEnvironment, d as detectAsyncLeaks, s as setupChaiConfig } from './index.DXx9Dtk7.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.BDwxwUWG.js';
12
- import { g as globalExpect, v as vi } from './test.D1JkM1w4.js';
11
+ import { s as setupCommonEnv, b as startCoverageInsideWorker, c as stopCoverageInsideWorker } from './setup-common.DYx3LtFI.js';
12
+ import { g as globalExpect, v as vi } from './test.DNmyFkvJ.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.C-zNJvRx.js';
19
+ import { i as index } from './index.DdgEv5B1.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
@@ -1,6 +1,6 @@
1
1
  import { FileSpecification } from '@vitest/runner';
2
- import { O as OTELCarrier } from './traces.d.402V_yFI.js';
3
- import { T as TestExecutionMethod } from './worker.d.CckNUvI5.js';
2
+ import { O as OTELCarrier } from './traces.d.D2T_R8rx.js';
3
+ import { T as TestExecutionMethod } from './worker.d.ZpHpO4yb.js';
4
4
 
5
5
  type SerializedTestSpecification = [project: {
6
6
  name: string | undefined;
@@ -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.4";
624
+ var version = "4.1.6";
625
625
 
626
626
  const apiConfig = (port) => ({
627
627
  port: {
@@ -701,7 +701,7 @@ const cliOptionsConfig = {
701
701
  hideSkippedTests: { description: "Hide logs for skipped tests" },
702
702
  reporters: {
703
703
  alias: "reporter",
704
- description: `Specify reporters (default, agent, blob, verbose, dot, json, tap, tap-flat, junit, tree, hanging-process, github-actions)`,
704
+ description: `Specify reporters (default, agent, minimal, blob, verbose, dot, json, tap, tap-flat, junit, tree, hanging-process, github-actions)`,
705
705
  argument: "<name>",
706
706
  subcommands: null,
707
707
  array: true
@@ -2336,7 +2336,7 @@ function normalizeCliOptions(cliFilters, argv) {
2336
2336
  }
2337
2337
  async function start(mode, cliFilters, options) {
2338
2338
  try {
2339
- const { startVitest } = await import('./cli-api.lDy4N9kC.js').then(function (n) { return n.q; });
2339
+ const { startVitest } = await import('./cli-api.B5majYba.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) {
@@ -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.lDy4N9kC.js').then(function (n) { return n.q; });
2361
+ const { prepareVitest, processCollected, outputFileList } = await import('./cli-api.B5majYba.js').then(function (n) { return n.q; });
2362
2362
  const ctx = await prepareVitest(mode, {
2363
2363
  ...normalizeCliOptions(cliFilters, options),
2364
2364
  watch: false,
@@ -13,13 +13,13 @@ 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.wyYWMVI-.js';
16
+ import { v as version$1 } from './cac.CVxlyDFd.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.BMXTnDNz.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.UpGiHP7g.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.Da5gzbsu.js';
22
+ import { h as hash, R as RandomSequencer, i as isBrowserEnabled, r as resolveConfig, g as getCoverageProvider, b as resolveApiServerConfig } from './coverage.DM_a_rWm.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';
@@ -137,7 +137,7 @@ function astParseFile(filepath, code) {
137
137
  if (callee.type === "TaggedTemplateExpression") return getName(callee.tag);
138
138
  if (callee.type === "MemberExpression") {
139
139
  if (callee.object?.type === "Identifier" && isVitestFunctionName(callee.object.name)) return callee.object?.name;
140
- if (callee.object?.name?.startsWith("__vite_ssr_") || callee.object?.object?.name?.startsWith("__vite_ssr_") && callee.object?.property?.name === "Vitest") return getName(callee.property);
140
+ if (callee.object?.name?.startsWith("__vite_ssr_") || callee.object?.name?.startsWith("__vi_import_") || callee.object?.object?.name?.startsWith("__vite_ssr_") && callee.object?.property?.name === "Vitest") return getName(callee.property);
141
141
  // call as `__vite_ssr__.test.skip()` or `describe.concurrent.each()`
142
142
  return getName(callee.object);
143
143
  }
@@ -456,7 +456,7 @@ class BrowserSessions {
456
456
  destroySession(sessionId) {
457
457
  this.sessions.delete(sessionId);
458
458
  }
459
- createSession(sessionId, project, pool) {
459
+ createSession(sessionId, project, pool, options) {
460
460
  // this promise only waits for the WS connection with the orchestrator to be established
461
461
  const defer = createDefer();
462
462
  const timeout = setTimeout(() => {
@@ -464,6 +464,7 @@ class BrowserSessions {
464
464
  }, project.vitest.config.browser.connectTimeout ?? 6e4).unref();
465
465
  this.sessions.set(sessionId, {
466
466
  project,
467
+ otelCarrier: options?.otelCarrier,
467
468
  connected: () => {
468
469
  defer.resolve();
469
470
  clearTimeout(timeout);
@@ -8971,7 +8972,7 @@ function setup(ctx, _server) {
8971
8972
  await ctx.rerunTask(id);
8972
8973
  },
8973
8974
  getConfig() {
8974
- return ctx.getRootProject().serializedConfig;
8975
+ return ctx.serializedRootConfig;
8975
8976
  },
8976
8977
  getResolvedProjectLabels() {
8977
8978
  return ctx.projects.map((p) => ({
@@ -9170,6 +9171,7 @@ function serializeConfig(project) {
9170
9171
  disableConsoleIntercept: config.disableConsoleIntercept,
9171
9172
  root: config.root,
9172
9173
  name: config.name,
9174
+ color: config.color,
9173
9175
  globals: config.globals,
9174
9176
  snapshotEnvironment: config.snapshotEnvironment,
9175
9177
  passWithNoTests: config.passWithNoTests,
@@ -10949,9 +10951,8 @@ class TestProject {
10949
10951
  const url = new URL("/__vitest_test__/", origin);
10950
10952
  url.searchParams.set("sessionId", sessionId);
10951
10953
  const otelCarrier = this.vitest._traces.getContextCarrier();
10952
- if (otelCarrier) url.searchParams.set("otelCarrier", JSON.stringify(otelCarrier));
10953
10954
  this.vitest._browserSessions.sessionIds.add(sessionId);
10954
- const sessionPromise = this.vitest._browserSessions.createSession(sessionId, this, pool);
10955
+ const sessionPromise = this.vitest._browserSessions.createSession(sessionId, this, pool, { otelCarrier });
10955
10956
  const pagePromise = this.browser.provider.openPage(sessionId, url.toString(), { parallel: pool.parallel ?? false });
10956
10957
  await Promise.all([sessionPromise, pagePromise]);
10957
10958
  }
@@ -11173,13 +11174,14 @@ async function resolveBrowserProjects(vitest, names, resolvedProjects) {
11173
11174
  const removeProjects = /* @__PURE__ */ new Set();
11174
11175
  resolvedProjects.forEach((project) => {
11175
11176
  if (!project.config.browser.enabled) return;
11177
+ const originalName = project.config.name;
11176
11178
  const instances = project.config.browser.instances || [];
11177
- if (instances.length === 0) {
11179
+ if (instances.length === 0 || vitest.isExcludedByProjectFilter(originalName)) {
11178
11180
  removeProjects.add(project);
11179
11181
  return;
11180
11182
  }
11181
- const originalName = project.config.name;
11182
- // if original name is in the --project=name filter, keep all instances
11183
+ // if original name matches a positive filter, keep all instances
11184
+ // otherwise, filter instances individually (user may target a specific instance name)
11183
11185
  const filteredInstances = vitest.matchesProjectFilter(originalName) ? instances : instances.filter((instance) => {
11184
11186
  const newName = instance.name;
11185
11187
  return vitest.matchesProjectFilter(newName);
@@ -13248,6 +13250,12 @@ class Vitest {
13248
13250
  if (!this.coreWorkspaceProject) throw new Error(`Root project is not initialized. This means that the Vite server was not established yet and the the workspace config is not resolved.`);
13249
13251
  return this.coreWorkspaceProject;
13250
13252
  }
13253
+ get serializedRootConfig() {
13254
+ return {
13255
+ ...this.getRootProject().serializedConfig,
13256
+ projects: this.projects.map((project) => project.serializedConfig)
13257
+ };
13258
+ }
13251
13259
  getProjectByName(name) {
13252
13260
  const project = this.projects.find((p) => p.name === name) || this.coreWorkspaceProject || this.projects[0];
13253
13261
  if (!project) throw new Error(`Project "${name}" was not found.`);
@@ -14025,6 +14033,15 @@ class Vitest {
14025
14033
  return wildcardPatternToRegExp(project).test(name);
14026
14034
  });
14027
14035
  }
14036
+ /** @internal */
14037
+ isExcludedByProjectFilter(name) {
14038
+ const projects = this._config?.project || this._cliOptions?.project;
14039
+ if (!projects || !projects.length) return false;
14040
+ return toArray(projects).some((project) => {
14041
+ if (!project.startsWith("!")) return false;
14042
+ return wildcardPatternToRegExp(project.slice(1)).test(name);
14043
+ });
14044
+ }
14028
14045
  }
14029
14046
  function assert(condition, property, name = property) {
14030
14047
  if (!condition) throw new Error(`The ${name} was not set. It means that \`vitest.${property}\` was called before the Vite server was established. Await the Vitest promise before accessing \`vitest.${property}\`.`);
@@ -2,6 +2,7 @@ import { PrettyFormatOptions } from '@vitest/pretty-format';
2
2
  import { SequenceHooks, SequenceSetupFiles, SerializableRetry, TestTagDefinition } from '@vitest/runner';
3
3
  import { SnapshotUpdateState, SnapshotEnvironment } from '@vitest/snapshot';
4
4
  import { SerializedDiffOptions } from '@vitest/utils/diff';
5
+ import { L as LabelColor } from './traces.d.D2T_R8rx.js';
5
6
 
6
7
  /**
7
8
  * Names of clock methods that may be faked by install.
@@ -69,6 +70,7 @@ interface FakeTimerInstallOpts {
69
70
  */
70
71
  interface SerializedConfig {
71
72
  name: string | undefined;
73
+ color?: LabelColor;
72
74
  globals: boolean;
73
75
  base: string | undefined;
74
76
  snapshotEnvironment?: string;
@@ -216,6 +218,9 @@ interface SerializedCoverageConfig {
216
218
  enabled: boolean;
217
219
  customProviderModule: string | undefined;
218
220
  }
221
+ interface SerializedRootConfig extends SerializedConfig {
222
+ projects: SerializedConfig[];
223
+ }
219
224
  type RuntimeConfig = Pick<SerializedConfig, "allowOnly" | "testTimeout" | "hookTimeout" | "clearMocks" | "mockReset" | "restoreMocks" | "fakeTimers" | "maxConcurrency" | "expect" | "printConsoleTrace"> & {
220
225
  sequence?: {
221
226
  hooks?: SequenceHooks;
@@ -224,4 +229,4 @@ type RuntimeConfig = Pick<SerializedConfig, "allowOnly" | "testTimeout" | "hookT
224
229
  type RuntimeOptions = Partial<RuntimeConfig>;
225
230
  type BrowserTraceViewMode = "on" | "off" | "on-first-retry" | "on-all-retries" | "retain-on-failure";
226
231
 
227
- export type { BrowserTraceViewMode as B, FakeTimerInstallOpts as F, RuntimeOptions as R, SerializedConfig as S, SerializedCoverageConfig as a, RuntimeConfig as b };
232
+ export type { BrowserTraceViewMode as B, FakeTimerInstallOpts as F, RuntimeOptions as R, SerializedConfig as S, SerializedCoverageConfig as a, SerializedRootConfig as b, RuntimeConfig as c };
@@ -725,6 +725,10 @@ Update your dependencies and make sure the versions match.`));
725
725
  this.coverageFiles = /* @__PURE__ */ new Map();
726
726
  this.pendingPromises = [];
727
727
  }
728
+ normalizeCoverageFileError(error) {
729
+ if (error instanceof Error && "code" in error && error.code === "ENOENT" && !existsSync(this.coverageFilesDirectory)) return new Error(`Something removed the coverage directory "${this.coverageFilesDirectory}" Vitest created earlier. Make sure you are not running multiple Vitests with the same "coverage.reportsDirectory" at the same time.`, { cause: error });
730
+ return error;
731
+ }
728
732
  onAfterSuiteRun({ coverage, environment, projectName, testFiles }) {
729
733
  if (!coverage) return;
730
734
  let entry = this.coverageFiles.get(projectName || DEFAULT_PROJECT);
@@ -737,7 +741,9 @@ Update your dependencies and make sure the versions match.`));
737
741
  entry[environment] ??= {};
738
742
  // If there's a result from previous run, overwrite it
739
743
  entry[environment][testFilenames] = filename;
740
- const promise = promises.writeFile(filename, JSON.stringify(coverage), "utf-8");
744
+ const promise = promises.writeFile(filename, JSON.stringify(coverage), "utf-8").catch((error) => {
745
+ throw this.normalizeCoverageFileError(error);
746
+ });
741
747
  this.pendingPromises.push(promise);
742
748
  }
743
749
  async readCoverageFiles({ onFileRead, onFinished, onDebug }) {
@@ -754,7 +760,9 @@ Update your dependencies and make sure the versions match.`));
754
760
  onDebug(`Reading coverage results ${index}/${total}`);
755
761
  }
756
762
  await Promise.all(chunk.map(async (filename) => {
757
- const contents = await promises.readFile(filename, "utf-8");
763
+ const contents = await promises.readFile(filename, "utf-8").catch((error) => {
764
+ throw this.normalizeCoverageFileError(error);
765
+ });
758
766
  onFileRead(JSON.parse(contents));
759
767
  }));
760
768
  }
@@ -3,7 +3,7 @@ import { Plugin } from '@vitest/pretty-format';
3
3
  import { Test } from '@vitest/runner';
4
4
  import { SnapshotState } from '@vitest/snapshot';
5
5
  import { B as BenchmarkResult } from './benchmark.d.DAaHLpsq.js';
6
- import { U as UserConsoleLog } from './rpc.d.BFMWpdph.js';
6
+ import { U as UserConsoleLog } from './traces.d.D2T_R8rx.js';
7
7
 
8
8
  interface SnapshotMatcher<T> {
9
9
  <U extends { [P in keyof T] : any }>(snapshot: Partial<U>, hint?: string): void;
@@ -1,6 +1,6 @@
1
1
  import { g as globalApis } from './constants.CPYnjOGj.js';
2
- import { i as index } from './index.C-zNJvRx.js';
3
- import './test.D1JkM1w4.js';
2
+ import { i as index } from './index.DdgEv5B1.js';
3
+ import './test.DNmyFkvJ.js';
4
4
  import '@vitest/runner';
5
5
  import '@vitest/utils/helpers';
6
6
  import '@vitest/utils/timers';
@@ -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.BDwxwUWG.js';
3
+ import { l as loadDiffConfig, a as loadSnapshotSerializers, t as takeCoverageInsideWorker } from './setup-common.DYx3LtFI.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.D1JkM1w4.js';
6
+ import { T as TestRunner, N as NodeBenchmarkRunner } from './test.DNmyFkvJ.js';
7
7
 
8
8
  function setupChaiConfig(config) {
9
9
  Object.assign(chai.config, config);
@@ -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.D1JkM1w4.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.DNmyFkvJ.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';
@@ -6,6 +6,7 @@ import c from 'tinyrainbow';
6
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
+ import { readdir, stat, readFile, mkdir, writeFile } from 'node:fs/promises';
9
10
  import { performance as performance$1 } from 'node:perf_hooks';
10
11
  import { defaultStackIgnorePatterns, parseErrorStacktrace, parseStacktrace } from '@vitest/utils/source-map';
11
12
  import { i as isTTY } from './env.D4Lgay0q.js';
@@ -17,7 +18,6 @@ import { x } from 'tinyexec';
17
18
  import { distDir } from '../path.js';
18
19
  import { parseAstAsync } from 'vite';
19
20
  import { positionToOffset, lineSplitRE } from '@vitest/utils/offset';
20
- import { readdir, stat, readFile, mkdir, writeFile } from 'node:fs/promises';
21
21
  import { createRequire } from 'node:module';
22
22
 
23
23
  function groupBy(collection, iteratee) {
@@ -3135,28 +3135,6 @@ class DefaultReporter extends BaseReporter {
3135
3135
  }
3136
3136
  }
3137
3137
 
3138
- class AgentReporter extends DefaultReporter {
3139
- renderSucceed = false;
3140
- constructor(options = {}) {
3141
- super({
3142
- silent: "passed-only",
3143
- ...options,
3144
- summary: false
3145
- });
3146
- }
3147
- onTestRunStart(specifications) {
3148
- super.onTestRunStart(specifications);
3149
- this.renderSucceed = false;
3150
- }
3151
- printTestModule(testModule) {
3152
- if (testModule.state() !== "failed") return;
3153
- super.printTestModule(testModule);
3154
- }
3155
- printTestCase(moduleState, test) {
3156
- if (test.result().state === "failed") super.printTestCase(moduleState, test);
3157
- }
3158
- }
3159
-
3160
3138
  class DotReporter extends BaseReporter {
3161
3139
  renderer;
3162
3140
  tests = /* @__PURE__ */ new Map();
@@ -3886,6 +3864,28 @@ class JUnitReporter {
3886
3864
  }
3887
3865
  }
3888
3866
 
3867
+ class MinimalReporter extends DefaultReporter {
3868
+ renderSucceed = false;
3869
+ constructor(options = {}) {
3870
+ super({
3871
+ silent: "passed-only",
3872
+ ...options,
3873
+ summary: false
3874
+ });
3875
+ }
3876
+ onTestRunStart(specifications) {
3877
+ super.onTestRunStart(specifications);
3878
+ this.renderSucceed = false;
3879
+ }
3880
+ printTestModule(testModule) {
3881
+ if (testModule.state() !== "failed") return;
3882
+ super.printTestModule(testModule);
3883
+ }
3884
+ printTestCase(moduleState, test) {
3885
+ if (test.result().state === "failed") super.printTestCase(moduleState, test);
3886
+ }
3887
+ }
3888
+
3889
3889
  function yamlString(str) {
3890
3890
  if (!str) return "";
3891
3891
  return `"${str.replace(/"/g, "\\\"")}"`;
@@ -4238,7 +4238,8 @@ const BenchmarkReportsMap = {
4238
4238
 
4239
4239
  const ReportersMap = {
4240
4240
  "default": DefaultReporter,
4241
- "agent": AgentReporter,
4241
+ "agent": MinimalReporter,
4242
+ "minimal": MinimalReporter,
4242
4243
  "blob": BlobReporter,
4243
4244
  "verbose": VerboseReporter,
4244
4245
  "dot": DotReporter,
@@ -4251,4 +4252,4 @@ const ReportersMap = {
4251
4252
  "github-actions": GithubActionsReporter
4252
4253
  };
4253
4254
 
4254
- export { AgentReporter as A, BenchmarkReporter as B, DefaultReporter as D, GithubActionsReporter as G, HangingProcessReporter as H, JUnitReporter as J, ReportersMap as R, TapFlatReporter as T, VerboseBenchmarkReporter as V, BenchmarkReportsMap as a, DotReporter as b, JsonReporter as c, TapReporter as d, VerboseReporter as e, createIndexLocationsMap as f, TraceMap as g, ancestor as h, printError as i, Typechecker as j, generateCodeFrame as k, escapeRegExp as l, createDefinesScript as m, groupBy as n, originalPositionFor as o, parse as p, BlobReporter as q, readBlobs as r, stringify as s, convertTasksToEvents as t, stdout as u, wildcardPatternToRegExp as w };
4255
+ export { BenchmarkReporter as B, DefaultReporter as D, GithubActionsReporter as G, HangingProcessReporter as H, JUnitReporter as J, MinimalReporter as M, ReportersMap as R, TapFlatReporter as T, VerboseBenchmarkReporter as V, BenchmarkReportsMap as a, DotReporter as b, JsonReporter as c, TapReporter as d, VerboseReporter as e, createIndexLocationsMap as f, TraceMap as g, ancestor as h, printError as i, Typechecker as j, generateCodeFrame as k, escapeRegExp as l, createDefinesScript as m, groupBy as n, originalPositionFor as o, parse as p, BlobReporter as q, readBlobs as r, stringify as s, convertTasksToEvents as t, stdout as u, wildcardPatternToRegExp as w };
@@ -1,5 +1,5 @@
1
1
  import { DevEnvironment } from 'vite';
2
- import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.BwkR0iL5.js';
2
+ import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.CtLUhkkA.js';
3
3
 
4
4
  /**
5
5
  * Generate a unique cache identifier.
@@ -1,17 +1,16 @@
1
1
  import { TaskMeta, Suite, File, SerializableRetry, TestAnnotation, TestArtifact, ImportDuration, Test, Task, TaskResultPack, FileSpecification, CancelReason, SequenceSetupFiles, SequenceHooks, TestTagDefinition } from '@vitest/runner';
2
2
  import { TestError, SerializedError, Arrayable, ParsedStack, Awaitable } from '@vitest/utils';
3
- import { A as AfterSuiteRunMeta, U as UserConsoleLog, b as AsyncLeak, P as ProvidedContext, L as LabelColor } from './rpc.d.BFMWpdph.js';
3
+ import { a as AfterSuiteRunMeta, U as UserConsoleLog, A as AsyncLeak, P as ProvidedContext, O as OTELCarrier, L as LabelColor } from './traces.d.D2T_R8rx.js';
4
4
  import { Writable } from 'node:stream';
5
5
  import { DevEnvironment, TransformResult as TransformResult$1, ViteDevServer, Plugin, UserConfig as UserConfig$1, DepOptimizationConfig, ServerOptions, ConfigEnv, AliasOptions } from 'vite';
6
- import { S as SerializedTestSpecification, c as SourceModuleDiagnostic, B as BrowserTesterOptions } from './browser.d.C0zGu1u9.js';
7
- import { B as BrowserTraceViewMode, S as SerializedConfig, F as FakeTimerInstallOpts } from './config.d.ChUh6-ad.js';
6
+ import { b as SerializedRootConfig, B as BrowserTraceViewMode, S as SerializedConfig, F as FakeTimerInstallOpts } from './config.d.A1h_Y6Jt.js';
7
+ import { S as SerializedTestSpecification, c as SourceModuleDiagnostic, B as BrowserTesterOptions } from './browser.d.BcoexmFG.js';
8
8
  import { PrettyFormatOptions } from '@vitest/pretty-format';
9
9
  import { SnapshotSummary, SnapshotStateOptions } from '@vitest/snapshot';
10
10
  import { SerializedDiffOptions } from '@vitest/utils/diff';
11
11
  import { chai } from '@vitest/expect';
12
12
  import { happyDomTypes, jsdomTypes } from 'vitest/optional-types.js';
13
- import { c as ContextTestEnvironment, d as WorkerExecuteContext, e as WorkerTestEnvironment } from './worker.d.CckNUvI5.js';
14
- import { O as OTELCarrier } from './traces.d.402V_yFI.js';
13
+ import { c as ContextTestEnvironment, d as WorkerExecuteContext, e as WorkerTestEnvironment } from './worker.d.ZpHpO4yb.js';
15
14
  import { B as BenchmarkResult } from './benchmark.d.DAaHLpsq.js';
16
15
  import { MockedModule } from '@vitest/mocker';
17
16
  import { StackTraceParserOptions } from '@vitest/utils/source-map';
@@ -98,19 +97,19 @@ declare class TestSpecification {
98
97
  /**
99
98
  * Line numbers of the test locations to run.
100
99
  */
101
- readonly testLines: number[] | undefined;
100
+ testLines: number[] | undefined;
102
101
  /**
103
102
  * Regular expression pattern to filter test names.
104
103
  */
105
- readonly testNamePattern: RegExp | undefined;
104
+ testNamePattern: RegExp | undefined;
106
105
  /**
107
106
  * The ids of tasks inside of this specification to run.
108
107
  */
109
- readonly testIds: string[] | undefined;
108
+ testIds: string[] | undefined;
110
109
  /**
111
110
  * The tags of tests to run.
112
111
  */
113
- readonly testTagsFilter: string[] | undefined;
112
+ testTagsFilter: string[] | undefined;
114
113
  /**
115
114
  * Test module associated with the specification. This will be `undefined` if tests have not been run yet.
116
115
  */
@@ -827,6 +826,33 @@ interface CoverageOptions {
827
826
  */
828
827
  ignoreClassMethods?: string[];
829
828
  /**
829
+ * Custom instrumenter factory to use instead of the default `istanbul-lib-instrument`.
830
+ *
831
+ * The factory receives the same runtime coverage options Vitest passes to its
832
+ * built-in Istanbul instrumenter and must return an object implementing the
833
+ * `CoverageInstrumenter` interface.
834
+ *
835
+ * This allows using faster instrumenters (e.g., oxc-coverage-instrument, SWC) while
836
+ * keeping the Istanbul coverage pipeline for collection, merging, and reporting.
837
+ *
838
+ * @example
839
+ * ```ts
840
+ * import { defineConfig } from 'vitest/config'
841
+ * import { createOxcInstrumenter } from 'oxc-coverage-instrument/vitest'
842
+ *
843
+ * export default defineConfig({
844
+ * test: {
845
+ * coverage: {
846
+ * provider: 'istanbul',
847
+ * instrumenter: options => createOxcInstrumenter(options),
848
+ * }
849
+ * }
850
+ * })
851
+ *
852
+ * @experimental
853
+ */
854
+ instrumenter?: (options: InstrumenterOptions) => CoverageInstrumenter;
855
+ /**
830
856
  * Directory of HTML coverage output to be served in UI mode and HTML reporter.
831
857
  * This is automatically configured for builtin reporter with html output (`html`, `html-spa`, and `lcov` reporters).
832
858
  * Use this option to override with custom coverage reporting location.
@@ -863,6 +889,34 @@ interface Thresholds {
863
889
  /** Thresholds for lines */
864
890
  lines?: number;
865
891
  }
892
+ /**
893
+ * Options passed to the custom instrumenter factory.
894
+ */
895
+ interface InstrumenterOptions {
896
+ /** Global variable name that Vitest uses to store coverage data at runtime. */
897
+ coverageVariable: string;
898
+ /** Global scope where the coverage variable is attached at runtime. */
899
+ coverageGlobalScope: string;
900
+ /** Whether the coverage global scope should be resolved through an evaluated function. */
901
+ coverageGlobalScopeFunc: boolean;
902
+ /** Class method names to exclude from function coverage. */
903
+ ignoreClassMethods: string[];
904
+ }
905
+ /**
906
+ * Interface for custom coverage instrumenters.
907
+ *
908
+ * Matches the subset of istanbul-lib-instrument's `Instrumenter` that Vitest
909
+ * actually uses. Implement this to plug in a faster instrumenter while keeping
910
+ * the Istanbul coverage pipeline for collection, merging, and reporting.
911
+ */
912
+ interface CoverageInstrumenter {
913
+ /** Instrument source code synchronously. Returns the instrumented code string. */
914
+ instrumentSync: (code: string, filename: string, inputSourceMap?: any) => string;
915
+ /** Get the source map of the last instrumented file. */
916
+ lastSourceMap: () => any;
917
+ /** Get the Istanbul-compatible file coverage object of the last instrumented file. */
918
+ lastFileCoverage: () => any;
919
+ }
866
920
  /** @deprecated Use `CoverageOptions` instead */
867
921
  interface CoverageV8Options extends CoverageOptions {}
868
922
  /** @deprecated Use `CoverageOptions` instead */
@@ -1272,6 +1326,7 @@ declare class Vitest {
1272
1326
  * Return project that has the root (or "global") config.
1273
1327
  */
1274
1328
  getRootProject(): TestProject;
1329
+ get serializedRootConfig(): SerializedRootConfig;
1275
1330
  getProjectByName(name: string): TestProject;
1276
1331
  /**
1277
1332
  * Import a file using Vite module runner. The file will be transformed by Vite and executed in a separate context.
@@ -1701,6 +1756,7 @@ interface BrowserCommandContext {
1701
1756
  }
1702
1757
  interface BrowserServerStateSession {
1703
1758
  project: TestProject;
1759
+ otelCarrier?: OTELCarrier;
1704
1760
  connected: () => void;
1705
1761
  fail: (v: Error) => void;
1706
1762
  }
@@ -1855,6 +1911,12 @@ type ToMatchScreenshotResolvePath = (data: {
1855
1911
  * if none is provided, its default value.
1856
1912
  */
1857
1913
  attachmentsDir: string;
1914
+ /**
1915
+ * The {@linkcode https://vitest.dev/api/advanced/test-project|TestProject} the test belongs to.
1916
+ *
1917
+ * @experimental
1918
+ */
1919
+ project: TestProject;
1858
1920
  }) => string;
1859
1921
  interface ToMatchScreenshotOptions {
1860
1922
  /**
@@ -2330,14 +2392,6 @@ declare class JUnitReporter implements Reporter {
2330
2392
  onTestRunEnd(testModules: ReadonlyArray<TestModule>): Promise<void>;
2331
2393
  }
2332
2394
 
2333
- declare class AgentReporter extends DefaultReporter {
2334
- renderSucceed: boolean;
2335
- constructor(options?: DefaultReporterOptions);
2336
- onTestRunStart(specifications: ReadonlyArray<TestSpecification>): void;
2337
- protected printTestModule(testModule: TestModule): void;
2338
- protected printTestCase(moduleState: TestModuleState, test: TestCase): void;
2339
- }
2340
-
2341
2395
  declare class DotReporter extends BaseReporter {
2342
2396
  private renderer?;
2343
2397
  private tests;
@@ -2360,6 +2414,14 @@ declare class HangingProcessReporter implements Reporter {
2360
2414
  onProcessTimeout(): void;
2361
2415
  }
2362
2416
 
2417
+ declare class MinimalReporter extends DefaultReporter {
2418
+ renderSucceed: boolean;
2419
+ constructor(options?: DefaultReporterOptions);
2420
+ onTestRunStart(specifications: ReadonlyArray<TestSpecification>): void;
2421
+ protected printTestModule(testModule: TestModule): void;
2422
+ protected printTestCase(moduleState: TestModuleState, test: TestCase): void;
2423
+ }
2424
+
2363
2425
  declare class TapReporter implements Reporter {
2364
2426
  protected ctx: Vitest;
2365
2427
  private logger;
@@ -2423,7 +2485,8 @@ type BenchmarkBuiltinReporters = keyof typeof BenchmarkReportsMap;
2423
2485
 
2424
2486
  declare const ReportersMap: {
2425
2487
  default: typeof DefaultReporter;
2426
- agent: typeof AgentReporter;
2488
+ agent: typeof MinimalReporter;
2489
+ minimal: typeof MinimalReporter;
2427
2490
  blob: typeof BlobReporter;
2428
2491
  verbose: typeof VerboseReporter;
2429
2492
  dot: typeof DotReporter;
@@ -2438,6 +2501,7 @@ declare const ReportersMap: {
2438
2501
  type BuiltinReporters = keyof typeof ReportersMap;
2439
2502
  interface BuiltinReporterOptions {
2440
2503
  "default": DefaultReporterOptions;
2504
+ "minimal": DefaultReporterOptions;
2441
2505
  "agent": DefaultReporterOptions;
2442
2506
  "verbose": DefaultReporterOptions;
2443
2507
  "dot": BaseOptions;
@@ -3550,5 +3614,5 @@ type TestProjectInlineConfiguration = (UserWorkspaceConfig & {
3550
3614
  });
3551
3615
  type TestProjectConfiguration = string | TestProjectInlineConfiguration | Promise<UserWorkspaceConfig> | UserProjectConfigFn;
3552
3616
 
3553
- export { DefaultReporter as $, Logger as L, TestProject as T, Vitest as V, DotReporter as a1, GithubActionsReporter as a3, HangingProcessReporter as a5, JUnitReporter as a7, TestCollection as aA, TestModule as aC, TestSuite as aN, VerboseBenchmarkReporter as aS, VerboseReporter as aT, VitestPackageInstaller as aV, experimental_getRunnerTask as aY, CoverageMap as aZ, JsonReporter as aa, ReportersMap as ap, TapFlatReporter as aw, TapReporter as ax, TestCase as az, TestSpecification as h, AgentReporter as l, BaseReporter as m, BenchmarkReporter as o, BenchmarkReportsMap as p };
3554
- export type { ApiConfig as A, BaseCoverageOptions as B, CoverageOptions as C, BrowserScript as D, BrowserServerFactory as E, FieldsWithDefaultValues as F, BrowserServerOptions as G, BrowserServerState as H, InlineConfig as I, BrowserServerStateSession as J, BuiltinEnvironment as K, BuiltinReporterOptions as M, BuiltinReporters as N, CSSModuleScopeStrategy as O, PoolWorker as P, CoverageIstanbulOptions as Q, ResolvedConfig as R, CoverageProvider as S, UserWorkspaceConfig as U, WatcherTriggerPattern as W, CoverageProviderModule as X, CoverageReporter as Y, CoverageV8Options as Z, CustomProviderOptions as _, TestProjectConfiguration as a, DepsOptimizationOptions as a0, EnvironmentOptions as a2, HTMLOptions as a4, JUnitOptions as a6, JsonAssertionResult as a8, JsonOptions as a9, TestDiagnostic as aB, TestModuleState as aD, TestResult as aE, TestResultFailed as aF, TestResultPassed as aG, TestResultSkipped as aH, TestRunEndReason as aI, TestRunResult as aJ, TestSequencerConstructor as aK, TestSpecificationOptions as aL, TestState as aM, TestSuiteState as aO, ToMatchScreenshotComparators as aP, ToMatchScreenshotOptions as aQ, TypecheckConfig as aR, VitestEnvironment as aU, WorkerResponse as aW, _BrowserNames as aX, JsonTestResult as ab, JsonTestResults as ac, ModuleDiagnostic as ad, OnServerRestartHandler as ae, OnTestsRerunHandler as af, ParentProjectBrowser as ag, Pool as ah, PoolRunnerInitializer as ai, PoolTask as aj, ProjectBrowser as ak, ProjectConfig as al, ReportContext as am, ReportedHookContext as an, Reporter as ao, ResolveSnapshotPathHandler as aq, ResolveSnapshotPathHandlerContext as ar, ResolvedBrowserOptions as as, ResolvedCoverageOptions as at, ResolvedProjectConfig as au, SerializedTestProject as av, TaskOptions as ay, UserProjectConfigFn as b, UserProjectConfigExport as c, TestProjectInlineConfiguration as d, UserConfig as e, VitestRunMode as f, VitestOptions as g, PoolOptions as i, WorkerRequest as j, TestSequencer as k, BenchmarkBuiltinReporters as n, BenchmarkUserOptions as q, BrowserBuiltinProvider as r, BrowserCommand as s, BrowserCommandContext as t, BrowserConfigOptions as u, BrowserInstanceOption as v, BrowserModuleMocker as w, BrowserOrchestrator as x, BrowserProvider as y, BrowserProviderOption as z };
3617
+ export { Logger as L, MinimalReporter as M, TestProject as T, Vitest as V, CoverageMap as a$, DefaultReporter as a0, DotReporter as a2, GithubActionsReporter as a4, HangingProcessReporter as a6, JUnitReporter as a9, TestCase as aB, TestCollection as aC, TestModule as aE, TestSuite as aP, VerboseBenchmarkReporter as aU, VerboseReporter as aV, VitestPackageInstaller as aX, experimental_getRunnerTask as a_, JsonReporter as ac, ReportersMap as ar, TapFlatReporter as ay, TapReporter as az, TestSpecification as h, BaseReporter as l, BenchmarkReporter as n, BenchmarkReportsMap as o };
3618
+ export type { CustomProviderOptions as $, ApiConfig as A, BaseCoverageOptions as B, CoverageOptions as C, BrowserServerFactory as D, BrowserServerOptions as E, FieldsWithDefaultValues as F, BrowserServerState as G, BrowserServerStateSession as H, InlineConfig as I, BuiltinEnvironment as J, BuiltinReporterOptions as K, BuiltinReporters as N, CSSModuleScopeStrategy as O, PoolWorker as P, CoverageInstrumenter as Q, ResolvedConfig as R, CoverageIstanbulOptions as S, UserWorkspaceConfig as U, WatcherTriggerPattern as W, CoverageProvider as X, CoverageProviderModule as Y, CoverageReporter as Z, CoverageV8Options as _, TestProjectConfiguration as a, DepsOptimizationOptions as a1, EnvironmentOptions as a3, HTMLOptions as a5, InstrumenterOptions as a7, JUnitOptions as a8, TaskOptions as aA, TestDiagnostic as aD, TestModuleState as aF, TestResult as aG, TestResultFailed as aH, TestResultPassed as aI, TestResultSkipped as aJ, TestRunEndReason as aK, TestRunResult as aL, TestSequencerConstructor as aM, TestSpecificationOptions as aN, TestState as aO, TestSuiteState as aQ, ToMatchScreenshotComparators as aR, ToMatchScreenshotOptions as aS, TypecheckConfig as aT, VitestEnvironment as aW, WorkerResponse as aY, _BrowserNames as aZ, JsonAssertionResult as aa, JsonOptions as ab, JsonTestResult as ad, JsonTestResults as ae, ModuleDiagnostic as af, OnServerRestartHandler as ag, OnTestsRerunHandler as ah, ParentProjectBrowser as ai, Pool as aj, PoolRunnerInitializer as ak, PoolTask as al, ProjectBrowser as am, ProjectConfig as an, ReportContext as ao, ReportedHookContext as ap, Reporter as aq, ResolveSnapshotPathHandler as as, ResolveSnapshotPathHandlerContext as at, ResolvedBrowserOptions as au, ResolvedCoverageOptions as av, ResolvedProjectConfig as aw, SerializedTestProject as ax, UserProjectConfigFn as b, UserProjectConfigExport as c, TestProjectInlineConfiguration as d, UserConfig as e, VitestRunMode as f, VitestOptions as g, PoolOptions as i, WorkerRequest as j, TestSequencer as k, BenchmarkBuiltinReporters as m, BenchmarkUserOptions as p, BrowserBuiltinProvider as q, BrowserCommand as r, BrowserCommandContext as s, BrowserConfigOptions as t, BrowserInstanceOption as u, BrowserModuleMocker as v, BrowserOrchestrator as w, BrowserProvider as x, BrowserProviderOption as y, BrowserScript as z };