@vitest/coverage-v8 2.0.0-beta.1 → 2.0.0-beta.11

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { V8CoverageProvider } from './provider.js';
2
+ import 'istanbul-lib-coverage';
2
3
  import 'vitest/coverage';
3
4
  import 'vitest';
4
5
  import 'vitest/node';
package/dist/index.js CHANGED
@@ -13,13 +13,15 @@ function startCoverage() {
13
13
  async function takeCoverage() {
14
14
  return new Promise((resolve, reject) => {
15
15
  session.post("Profiler.takePreciseCoverage", async (error, coverage) => {
16
- if (error)
16
+ if (error) {
17
17
  return reject(error);
18
+ }
18
19
  const result = coverage.result.filter(filterResult);
19
20
  resolve({ result });
20
21
  });
21
- if (provider === "stackblitz")
22
+ if (provider === "stackblitz") {
22
23
  resolve({ result: [] });
24
+ }
23
25
  });
24
26
  }
25
27
  function stopCoverage() {
@@ -28,10 +30,12 @@ function stopCoverage() {
28
30
  session.disconnect();
29
31
  }
30
32
  function filterResult(coverage) {
31
- if (!coverage.url.startsWith("file://"))
33
+ if (!coverage.url.startsWith("file://")) {
32
34
  return false;
33
- if (coverage.url.includes("/node_modules/"))
35
+ }
36
+ if (coverage.url.includes("/node_modules/")) {
34
37
  return false;
38
+ }
35
39
  return true;
36
40
  }
37
41
 
@@ -1,3 +1,4 @@
1
+ import { CoverageMap } from 'istanbul-lib-coverage';
1
2
  import { BaseCoverageProvider } from 'vitest/coverage';
2
3
  import { CoverageProvider, AfterSuiteRunMeta, ReportContext, ResolvedCoverageOptions } from 'vitest';
3
4
  import { Vitest } from 'vitest/node';
@@ -32,7 +33,10 @@ declare class V8CoverageProvider extends BaseCoverageProvider implements Coverag
32
33
  resolveOptions(): Options;
33
34
  clean(clean?: boolean): Promise<void>;
34
35
  onAfterSuiteRun({ coverage, transformMode, projectName }: AfterSuiteRunMeta): void;
35
- reportCoverage({ allTestsRun }?: ReportContext): Promise<void>;
36
+ generateCoverage({ allTestsRun }: ReportContext): Promise<CoverageMap>;
37
+ reportCoverage(coverageMap: unknown, { allTestsRun }: ReportContext): Promise<void>;
38
+ generateReports(coverageMap: CoverageMap, allTestsRun?: boolean): Promise<void>;
39
+ mergeReports(coverageMaps: unknown[]): Promise<void>;
36
40
  private getUntestedFiles;
37
41
  private getSources;
38
42
  private convertCoverage;
package/dist/provider.js CHANGED
@@ -1,4 +1,4 @@
1
- import { existsSync, promises as promises$1, writeFileSync } from 'node:fs';
1
+ import { existsSync, promises as promises$1, readdirSync, writeFileSync } from 'node:fs';
2
2
  import { pathToFileURL, fileURLToPath as fileURLToPath$1 } from 'node:url';
3
3
  import require$$0 from 'assert';
4
4
  import require$$2 from 'util';
@@ -2186,10 +2186,9 @@ const isAbsolute = function(p) {
2186
2186
  const isWindows = process.platform === "win32";
2187
2187
  const drive = isWindows ? process.cwd()[0] : null;
2188
2188
  drive ? drive === drive.toUpperCase() ? drive.toLowerCase() : drive.toUpperCase() : null;
2189
- const queryRE = /\?.*$/s;
2190
- const hashRE = /#.*$/s;
2189
+ const postfixRE = /[?#].*$/;
2191
2190
  function cleanUrl(url) {
2192
- return url.replace(hashRE, "").replace(queryRE, "");
2191
+ return url.replace(postfixRE, "");
2193
2192
  }
2194
2193
  /* @__PURE__ */ new Set([
2195
2194
  ...builtinModules,
@@ -2210,7 +2209,7 @@ function cleanUrl(url) {
2210
2209
 
2211
2210
  const WRAPPER_LENGTH = 185;
2212
2211
  const VITE_EXPORTS_LINE_PATTERN = /Object\.defineProperty\(__vite_ssr_exports__.*\n/g;
2213
- const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]*?\]\),*/g;
2212
+ const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]*\]\),*/g;
2214
2213
  const DEFAULT_PROJECT = Symbol.for("default-project");
2215
2214
  const debug = createDebug("vitest:coverage");
2216
2215
  let uniqueId = 0;
@@ -2231,8 +2230,13 @@ class V8CoverageProvider extends BaseCoverageProvider {
2231
2230
  ...config,
2232
2231
  // Resolved fields
2233
2232
  provider: "v8",
2234
- reporter: this.resolveReporters(config.reporter || coverageConfigDefaults.reporter),
2235
- reportsDirectory: resolve(ctx.config.root, config.reportsDirectory || coverageConfigDefaults.reportsDirectory),
2233
+ reporter: this.resolveReporters(
2234
+ config.reporter || coverageConfigDefaults.reporter
2235
+ ),
2236
+ reportsDirectory: resolve(
2237
+ ctx.config.root,
2238
+ config.reportsDirectory || coverageConfigDefaults.reportsDirectory
2239
+ ),
2236
2240
  thresholds: config.thresholds && {
2237
2241
  ...config.thresholds,
2238
2242
  lines: config.thresholds["100"] ? 100 : config.thresholds.lines,
@@ -2251,16 +2255,29 @@ class V8CoverageProvider extends BaseCoverageProvider {
2251
2255
  });
2252
2256
  const shard = this.ctx.config.shard;
2253
2257
  const tempDirectory = `.tmp${shard ? `-${shard.index}-${shard.count}` : ""}`;
2254
- this.coverageFilesDirectory = resolve(this.options.reportsDirectory, tempDirectory);
2258
+ this.coverageFilesDirectory = resolve(
2259
+ this.options.reportsDirectory,
2260
+ tempDirectory
2261
+ );
2255
2262
  }
2256
2263
  resolveOptions() {
2257
2264
  return this.options;
2258
2265
  }
2259
2266
  async clean(clean = true) {
2260
- if (clean && existsSync(this.options.reportsDirectory))
2261
- await promises$1.rm(this.options.reportsDirectory, { recursive: true, force: true, maxRetries: 10 });
2262
- if (existsSync(this.coverageFilesDirectory))
2263
- await promises$1.rm(this.coverageFilesDirectory, { recursive: true, force: true, maxRetries: 10 });
2267
+ if (clean && existsSync(this.options.reportsDirectory)) {
2268
+ await promises$1.rm(this.options.reportsDirectory, {
2269
+ recursive: true,
2270
+ force: true,
2271
+ maxRetries: 10
2272
+ });
2273
+ }
2274
+ if (existsSync(this.coverageFilesDirectory)) {
2275
+ await promises$1.rm(this.coverageFilesDirectory, {
2276
+ recursive: true,
2277
+ force: true,
2278
+ maxRetries: 10
2279
+ });
2280
+ }
2264
2281
  await promises$1.mkdir(this.coverageFilesDirectory, { recursive: true });
2265
2282
  this.coverageFiles = /* @__PURE__ */ new Map();
2266
2283
  this.pendingPromises = [];
@@ -2271,41 +2288,57 @@ class V8CoverageProvider extends BaseCoverageProvider {
2271
2288
  * backwards compatibility is a breaking change.
2272
2289
  */
2273
2290
  onAfterSuiteRun({ coverage, transformMode, projectName }) {
2274
- if (transformMode !== "web" && transformMode !== "ssr")
2291
+ if (transformMode !== "web" && transformMode !== "ssr") {
2275
2292
  throw new Error(`Invalid transform mode: ${transformMode}`);
2293
+ }
2276
2294
  let entry = this.coverageFiles.get(projectName || DEFAULT_PROJECT);
2277
2295
  if (!entry) {
2278
2296
  entry = { web: [], ssr: [] };
2279
2297
  this.coverageFiles.set(projectName || DEFAULT_PROJECT, entry);
2280
2298
  }
2281
- const filename = resolve(this.coverageFilesDirectory, `coverage-${uniqueId++}.json`);
2299
+ const filename = resolve(
2300
+ this.coverageFilesDirectory,
2301
+ `coverage-${uniqueId++}.json`
2302
+ );
2282
2303
  entry[transformMode].push(filename);
2283
2304
  const promise = promises$1.writeFile(filename, JSON.stringify(coverage), "utf-8");
2284
2305
  this.pendingPromises.push(promise);
2285
2306
  }
2286
- async reportCoverage({ allTestsRun } = {}) {
2287
- if (provider === "stackblitz")
2288
- this.ctx.logger.log(c.blue(" % ") + c.yellow("@vitest/coverage-v8 does not work on Stackblitz. Report will be empty."));
2307
+ async generateCoverage({ allTestsRun }) {
2289
2308
  const coverageMap = libCoverage.createCoverageMap({});
2290
2309
  let index = 0;
2291
2310
  const total = this.pendingPromises.length;
2292
2311
  await Promise.all(this.pendingPromises);
2293
2312
  this.pendingPromises = [];
2294
- for (const [projectName, coveragePerProject] of this.coverageFiles.entries()) {
2295
- for (const [transformMode, filenames] of Object.entries(coveragePerProject)) {
2313
+ for (const [
2314
+ projectName,
2315
+ coveragePerProject
2316
+ ] of this.coverageFiles.entries()) {
2317
+ for (const [transformMode, filenames] of Object.entries(
2318
+ coveragePerProject
2319
+ )) {
2296
2320
  let merged = { result: [] };
2297
- for (const chunk of this.toSlices(filenames, this.options.processingConcurrency)) {
2321
+ for (const chunk of this.toSlices(
2322
+ filenames,
2323
+ this.options.processingConcurrency
2324
+ )) {
2298
2325
  if (debug.enabled) {
2299
2326
  index += chunk.length;
2300
2327
  debug("Covered files %d/%d", index, total);
2301
2328
  }
2302
- await Promise.all(chunk.map(async (filename) => {
2303
- const contents = await promises$1.readFile(filename, "utf-8");
2304
- const coverage = JSON.parse(contents);
2305
- merged = mergeProcessCovs([merged, coverage]);
2306
- }));
2329
+ await Promise.all(
2330
+ chunk.map(async (filename) => {
2331
+ const contents = await promises$1.readFile(filename, "utf-8");
2332
+ const coverage = JSON.parse(contents);
2333
+ merged = mergeProcessCovs([merged, coverage]);
2334
+ })
2335
+ );
2307
2336
  }
2308
- const converted = await this.convertCoverage(merged, projectName, transformMode);
2337
+ const converted = await this.convertCoverage(
2338
+ merged,
2339
+ projectName,
2340
+ transformMode
2341
+ );
2309
2342
  const transformedCoverage = await transformCoverage(converted);
2310
2343
  coverageMap.merge(transformedCoverage);
2311
2344
  }
@@ -2316,13 +2349,40 @@ class V8CoverageProvider extends BaseCoverageProvider {
2316
2349
  const converted = await this.convertCoverage(untestedCoverage);
2317
2350
  coverageMap.merge(await transformCoverage(converted));
2318
2351
  }
2352
+ return coverageMap;
2353
+ }
2354
+ async reportCoverage(coverageMap, { allTestsRun }) {
2355
+ if (provider === "stackblitz") {
2356
+ this.ctx.logger.log(
2357
+ c.blue(" % ") + c.yellow(
2358
+ "@vitest/coverage-v8 does not work on Stackblitz. Report will be empty."
2359
+ )
2360
+ );
2361
+ }
2362
+ await this.generateReports(
2363
+ coverageMap || libCoverage.createCoverageMap({}),
2364
+ allTestsRun
2365
+ );
2366
+ const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
2367
+ if (!keepResults) {
2368
+ this.coverageFiles = /* @__PURE__ */ new Map();
2369
+ await promises$1.rm(this.coverageFilesDirectory, { recursive: true });
2370
+ if (readdirSync(this.options.reportsDirectory).length === 0) {
2371
+ await promises$1.rm(this.options.reportsDirectory, { recursive: true });
2372
+ }
2373
+ }
2374
+ }
2375
+ async generateReports(coverageMap, allTestsRun) {
2319
2376
  const context = libReport.createContext({
2320
2377
  dir: this.options.reportsDirectory,
2321
2378
  coverageMap,
2322
2379
  watermarks: this.options.watermarks
2323
2380
  });
2324
- if (this.hasTerminalReporter(this.options.reporter))
2325
- this.ctx.logger.log(c.blue(" % ") + c.dim("Coverage report from ") + c.yellow(this.name));
2381
+ if (this.hasTerminalReporter(this.options.reporter)) {
2382
+ this.ctx.logger.log(
2383
+ c.blue(" % ") + c.dim("Coverage report from ") + c.yellow(this.name)
2384
+ );
2385
+ }
2326
2386
  for (const reporter of this.options.reporter) {
2327
2387
  reports.create(reporter[0], {
2328
2388
  skipFull: this.options.skipFull,
@@ -2342,62 +2402,95 @@ class V8CoverageProvider extends BaseCoverageProvider {
2342
2402
  perFile: this.options.thresholds.perFile
2343
2403
  });
2344
2404
  if (this.options.thresholds.autoUpdate && allTestsRun) {
2345
- if (!this.ctx.server.config.configFile)
2346
- throw new Error('Missing configurationFile. The "coverage.thresholds.autoUpdate" can only be enabled when configuration file is used.');
2405
+ if (!this.ctx.server.config.configFile) {
2406
+ throw new Error(
2407
+ 'Missing configurationFile. The "coverage.thresholds.autoUpdate" can only be enabled when configuration file is used.'
2408
+ );
2409
+ }
2347
2410
  const configFilePath = this.ctx.server.config.configFile;
2348
- const configModule = parseModule(await promises$1.readFile(configFilePath, "utf8"));
2411
+ const configModule = parseModule(
2412
+ await promises$1.readFile(configFilePath, "utf8")
2413
+ );
2349
2414
  this.updateThresholds({
2350
2415
  thresholds: resolvedThresholds,
2351
2416
  perFile: this.options.thresholds.perFile,
2352
2417
  configurationFile: configModule,
2353
- onUpdate: () => writeFileSync(configFilePath, configModule.generate().code, "utf-8")
2418
+ onUpdate: () => writeFileSync(
2419
+ configFilePath,
2420
+ configModule.generate().code,
2421
+ "utf-8"
2422
+ )
2354
2423
  });
2355
2424
  }
2356
2425
  }
2357
- const keepResults = !this.options.cleanOnRerun && this.ctx.config.watch;
2358
- if (!keepResults) {
2359
- this.coverageFiles = /* @__PURE__ */ new Map();
2360
- await promises$1.rm(this.coverageFilesDirectory, { recursive: true });
2426
+ }
2427
+ async mergeReports(coverageMaps) {
2428
+ const coverageMap = libCoverage.createCoverageMap({});
2429
+ for (const coverage of coverageMaps) {
2430
+ coverageMap.merge(coverage);
2361
2431
  }
2432
+ await this.generateReports(coverageMap, true);
2362
2433
  }
2363
2434
  async getUntestedFiles(testedFiles) {
2364
- const transformResults = normalizeTransformResults(this.ctx.vitenode.fetchCache);
2435
+ const transformResults = normalizeTransformResults(
2436
+ this.ctx.vitenode.fetchCache
2437
+ );
2365
2438
  const allFiles = await this.testExclude.glob(this.ctx.config.root);
2366
- let includedFiles = allFiles.map((file) => resolve(this.ctx.config.root, file));
2367
- if (this.ctx.config.changed)
2368
- includedFiles = (this.ctx.config.related || []).filter((file) => includedFiles.includes(file));
2439
+ let includedFiles = allFiles.map(
2440
+ (file) => resolve(this.ctx.config.root, file)
2441
+ );
2442
+ if (this.ctx.config.changed) {
2443
+ includedFiles = (this.ctx.config.related || []).filter(
2444
+ (file) => includedFiles.includes(file)
2445
+ );
2446
+ }
2369
2447
  const uncoveredFiles = includedFiles.map((file) => pathToFileURL(file)).filter((file) => !testedFiles.includes(file.pathname));
2370
2448
  let merged = { result: [] };
2371
2449
  let index = 0;
2372
- for (const chunk of this.toSlices(uncoveredFiles, this.options.processingConcurrency)) {
2450
+ for (const chunk of this.toSlices(
2451
+ uncoveredFiles,
2452
+ this.options.processingConcurrency
2453
+ )) {
2373
2454
  if (debug.enabled) {
2374
2455
  index += chunk.length;
2375
2456
  debug("Uncovered files %d/%d", index, uncoveredFiles.length);
2376
2457
  }
2377
- const coverages = await Promise.all(chunk.map(async (filename) => {
2378
- const { originalSource, source } = await this.getSources(filename.href, transformResults);
2379
- if (source && stripLiteral(source).trim() === "")
2380
- return null;
2381
- const coverage = {
2382
- url: filename.href,
2383
- scriptId: "0",
2384
- // Create a made up function to mark whole file as uncovered. Note that this does not exist in source maps.
2385
- functions: [{
2386
- ranges: [{
2387
- startOffset: 0,
2388
- endOffset: originalSource.length,
2389
- count: 0
2390
- }],
2391
- isBlockCoverage: true,
2392
- // This is magical value that indicates an empty report: https://github.com/istanbuljs/v8-to-istanbul/blob/fca5e6a9e6ef38a9cdc3a178d5a6cf9ef82e6cab/lib/v8-to-istanbul.js#LL131C40-L131C40
2393
- functionName: "(empty-report)"
2394
- }]
2395
- };
2396
- return { result: [coverage] };
2397
- }));
2458
+ const coverages = await Promise.all(
2459
+ chunk.map(async (filename) => {
2460
+ const { originalSource, source } = await this.getSources(
2461
+ filename.href,
2462
+ transformResults
2463
+ );
2464
+ if (source && stripLiteral(source).trim() === "") {
2465
+ return null;
2466
+ }
2467
+ const coverage = {
2468
+ url: filename.href,
2469
+ scriptId: "0",
2470
+ // Create a made up function to mark whole file as uncovered. Note that this does not exist in source maps.
2471
+ functions: [
2472
+ {
2473
+ ranges: [
2474
+ {
2475
+ startOffset: 0,
2476
+ endOffset: originalSource.length,
2477
+ count: 0
2478
+ }
2479
+ ],
2480
+ isBlockCoverage: true,
2481
+ // This is magical value that indicates an empty report: https://github.com/istanbuljs/v8-to-istanbul/blob/fca5e6a9e6ef38a9cdc3a178d5a6cf9ef82e6cab/lib/v8-to-istanbul.js#LL131C40-L131C40
2482
+ functionName: "(empty-report)"
2483
+ }
2484
+ ]
2485
+ };
2486
+ return { result: [coverage] };
2487
+ })
2488
+ );
2398
2489
  merged = mergeProcessCovs([
2399
2490
  merged,
2400
- ...coverages.filter((cov) => cov != null)
2491
+ ...coverages.filter(
2492
+ (cov) => cov != null
2493
+ )
2401
2494
  ]);
2402
2495
  }
2403
2496
  return merged;
@@ -2424,8 +2517,9 @@ class V8CoverageProvider extends BaseCoverageProvider {
2424
2517
  };
2425
2518
  }
2426
2519
  const sources = [url];
2427
- if (map.sources && map.sources[0] && !url.endsWith(map.sources[0]))
2520
+ if (map.sources && map.sources[0] && !url.endsWith(map.sources[0])) {
2428
2521
  sources[0] = new URL(map.sources[0], url).href;
2522
+ }
2429
2523
  return {
2430
2524
  isExecuted,
2431
2525
  originalSource: sourcesContent,
@@ -2444,22 +2538,39 @@ class V8CoverageProvider extends BaseCoverageProvider {
2444
2538
  const viteNode = this.ctx.projects.find((project) => project.getName() === projectName)?.vitenode || this.ctx.vitenode;
2445
2539
  const fetchCache = transformMode ? viteNode.fetchCaches[transformMode] : viteNode.fetchCache;
2446
2540
  const transformResults = normalizeTransformResults(fetchCache);
2447
- const scriptCoverages = coverage.result.filter((result) => this.testExclude.shouldInstrument(fileURLToPath$1(result.url)));
2541
+ const scriptCoverages = coverage.result.filter(
2542
+ (result) => this.testExclude.shouldInstrument(fileURLToPath$1(result.url))
2543
+ );
2448
2544
  const coverageMap = libCoverage.createCoverageMap({});
2449
2545
  let index = 0;
2450
- for (const chunk of this.toSlices(scriptCoverages, this.options.processingConcurrency)) {
2546
+ for (const chunk of this.toSlices(
2547
+ scriptCoverages,
2548
+ this.options.processingConcurrency
2549
+ )) {
2451
2550
  if (debug.enabled) {
2452
2551
  index += chunk.length;
2453
2552
  debug("Converting %d/%d", index, scriptCoverages.length);
2454
2553
  }
2455
- await Promise.all(chunk.map(async ({ url, functions }) => {
2456
- const sources = await this.getSources(url, transformResults, functions);
2457
- const wrapperLength = sources.isExecuted ? WRAPPER_LENGTH : 0;
2458
- const converter = v8ToIstanbul$1(url, wrapperLength, sources, void 0, this.options.ignoreEmptyLines);
2459
- await converter.load();
2460
- converter.applyCoverage(functions);
2461
- coverageMap.merge(converter.toIstanbul());
2462
- }));
2554
+ await Promise.all(
2555
+ chunk.map(async ({ url, functions }) => {
2556
+ const sources = await this.getSources(
2557
+ url,
2558
+ transformResults,
2559
+ functions
2560
+ );
2561
+ const wrapperLength = sources.isExecuted ? WRAPPER_LENGTH : 0;
2562
+ const converter = v8ToIstanbul$1(
2563
+ url,
2564
+ wrapperLength,
2565
+ sources,
2566
+ void 0,
2567
+ this.options.ignoreEmptyLines
2568
+ );
2569
+ await converter.load();
2570
+ converter.applyCoverage(functions);
2571
+ coverageMap.merge(converter.toIstanbul());
2572
+ })
2573
+ );
2463
2574
  }
2464
2575
  return coverageMap;
2465
2576
  }
@@ -2469,10 +2580,12 @@ async function transformCoverage(coverageMap) {
2469
2580
  return await sourceMapStore.transformCoverage(coverageMap);
2470
2581
  }
2471
2582
  function excludeGeneratedCode(source, map) {
2472
- if (!source)
2583
+ if (!source) {
2473
2584
  return map;
2474
- if (!source.match(VITE_EXPORTS_LINE_PATTERN) && !source.match(DECORATOR_METADATA_PATTERN))
2585
+ }
2586
+ if (!source.match(VITE_EXPORTS_LINE_PATTERN) && !source.match(DECORATOR_METADATA_PATTERN)) {
2475
2587
  return map;
2588
+ }
2476
2589
  const trimmed = new MagicString(source);
2477
2590
  trimmed.replaceAll(VITE_EXPORTS_LINE_PATTERN, "\n");
2478
2591
  trimmed.replaceAll(DECORATOR_METADATA_PATTERN, (match) => "\n".repeat(match.split("\n").length - 1));
@@ -2485,7 +2598,10 @@ function excludeGeneratedCode(source, map) {
2485
2598
  }
2486
2599
  function findLongestFunctionLength(functions) {
2487
2600
  return functions.reduce((previous, current) => {
2488
- const maxEndOffset = current.ranges.reduce((endOffset, range) => Math.max(endOffset, range.endOffset), 0);
2601
+ const maxEndOffset = current.ranges.reduce(
2602
+ (endOffset, range) => Math.max(endOffset, range.endOffset),
2603
+ 0
2604
+ );
2489
2605
  return Math.max(previous, maxEndOffset);
2490
2606
  }, 0);
2491
2607
  }
@@ -2493,8 +2609,9 @@ function normalizeTransformResults(fetchCache) {
2493
2609
  const normalized = /* @__PURE__ */ new Map();
2494
2610
  for (const [key, value] of fetchCache.entries()) {
2495
2611
  const cleanEntry = cleanUrl(key);
2496
- if (!normalized.has(cleanEntry))
2612
+ if (!normalized.has(cleanEntry)) {
2497
2613
  normalized.set(cleanEntry, value.result);
2614
+ }
2498
2615
  }
2499
2616
  return normalized;
2500
2617
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/coverage-v8",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.1",
4
+ "version": "2.0.0-beta.11",
5
5
  "description": "V8 coverage provider for Vitest",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -37,22 +37,22 @@
37
37
  "dist"
38
38
  ],
39
39
  "peerDependencies": {
40
- "vitest": "2.0.0-beta.1"
40
+ "vitest": "2.0.0-beta.11"
41
41
  },
42
42
  "dependencies": {
43
43
  "@ampproject/remapping": "^2.3.0",
44
44
  "@bcoe/v8-coverage": "^0.2.3",
45
- "debug": "^4.3.4",
45
+ "debug": "^4.3.5",
46
46
  "istanbul-lib-coverage": "^3.2.2",
47
47
  "istanbul-lib-report": "^3.0.1",
48
48
  "istanbul-lib-source-maps": "^5.0.4",
49
49
  "istanbul-reports": "^3.1.7",
50
50
  "magic-string": "^0.30.10",
51
51
  "magicast": "^0.3.4",
52
- "picocolors": "^1.0.0",
52
+ "picocolors": "^1.0.1",
53
53
  "std-env": "^3.7.0",
54
54
  "strip-literal": "^2.1.0",
55
- "test-exclude": "^6.0.0"
55
+ "test-exclude": "^7.0.1"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/debug": "^4.1.12",
@@ -62,8 +62,8 @@
62
62
  "@types/istanbul-reports": "^3.0.4",
63
63
  "pathe": "^1.1.2",
64
64
  "v8-to-istanbul": "^9.2.0",
65
- "vitest": "2.0.0-beta.1",
66
- "vite-node": "2.0.0-beta.1"
65
+ "vite-node": "2.0.0-beta.11",
66
+ "vitest": "2.0.0-beta.11"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "rimraf dist && rollup -c",