@vitest/coverage-v8 3.0.5 → 3.0.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.
package/dist/browser.d.ts CHANGED
@@ -1,17 +1,5 @@
1
- import { V8CoverageProvider } from './provider.js';
2
- import 'magicast';
3
- import 'istanbul-lib-coverage';
4
- import 'vitest/node';
5
- import 'test-exclude';
6
- import 'vitest/coverage';
1
+ import { CoverageProviderModule } from 'vitest/node';
7
2
 
8
- declare const _default: {
9
- startCoverage(): Promise<void>;
10
- takeCoverage(): Promise<{
11
- result: any[];
12
- }>;
13
- stopCoverage(): void;
14
- getProvider(): Promise<V8CoverageProvider>;
15
- };
3
+ declare const mod: CoverageProviderModule;
16
4
 
17
- export { _default as default };
5
+ export { mod as default };
package/dist/browser.js CHANGED
@@ -3,7 +3,7 @@ import { l as loadProvider } from './load-provider-Bl5rgjsL.js';
3
3
 
4
4
  const session = cdp();
5
5
  let enabled = false;
6
- var browser = {
6
+ const mod = {
7
7
  async startCoverage() {
8
8
  if (enabled) {
9
9
  return;
@@ -56,4 +56,4 @@ function filterResult(coverage) {
56
56
  return true;
57
57
  }
58
58
 
59
- export { browser as default };
59
+ export { mod as default };
package/dist/index.d.ts CHANGED
@@ -1,22 +1,5 @@
1
- import { V8CoverageProvider } from './provider.js';
2
- import { Profiler } from 'node:inspector';
3
- import 'magicast';
4
- import 'istanbul-lib-coverage';
5
- import 'vitest/node';
6
- import 'test-exclude';
7
- import 'vitest/coverage';
1
+ import { CoverageProviderModule } from 'vitest/node';
8
2
 
9
- declare const _default: {
10
- startCoverage({ isolate }: {
11
- isolate: boolean;
12
- }): void;
13
- takeCoverage(): Promise<{
14
- result: Profiler.ScriptCoverage[];
15
- }>;
16
- stopCoverage({ isolate }: {
17
- isolate: boolean;
18
- }): void;
19
- getProvider(): Promise<V8CoverageProvider>;
20
- };
3
+ declare const mod: CoverageProviderModule;
21
4
 
22
- export { _default as default };
5
+ export { mod as default };
package/dist/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import inspector from 'node:inspector';
2
+ import { fileURLToPath } from 'node:url';
2
3
  import { provider } from 'std-env';
3
4
  import { l as loadProvider } from './load-provider-Bl5rgjsL.js';
4
5
 
5
6
  const session = new inspector.Session();
6
7
  let enabled = false;
7
- var index = {
8
+ const mod = {
8
9
  startCoverage({ isolate }) {
9
10
  if (isolate === false && enabled) {
10
11
  return;
@@ -17,13 +18,16 @@ var index = {
17
18
  detailed: true
18
19
  });
19
20
  },
20
- takeCoverage() {
21
+ takeCoverage(options) {
21
22
  return new Promise((resolve, reject) => {
22
23
  session.post("Profiler.takePreciseCoverage", async (error, coverage) => {
23
24
  if (error) {
24
25
  return reject(error);
25
26
  }
26
- const result = coverage.result.filter(filterResult);
27
+ const result = coverage.result.filter(filterResult).map((res) => ({
28
+ ...res,
29
+ startOffset: options?.moduleExecutionInfo?.get(fileURLToPath(res.url))?.startOffset || 0
30
+ }));
27
31
  resolve({ result });
28
32
  });
29
33
  if (provider === "stackblitz") {
@@ -53,4 +57,4 @@ function filterResult(coverage) {
53
57
  return true;
54
58
  }
55
59
 
56
- export { index as default };
60
+ export { mod as default };
@@ -1,9 +1,13 @@
1
- import * as magicast from 'magicast';
2
1
  import { CoverageMap } from 'istanbul-lib-coverage';
2
+ import { ProxifiedModule } from 'magicast';
3
+ import { Profiler } from 'node:inspector';
3
4
  import { ResolvedCoverageOptions, CoverageProvider, Vitest, ReportContext } from 'vitest/node';
4
5
  import TestExclude from 'test-exclude';
5
6
  import { BaseCoverageProvider } from 'vitest/coverage';
6
7
 
8
+ interface ScriptCoverageWithOffset extends Profiler.ScriptCoverage {
9
+ startOffset: number;
10
+ }
7
11
  declare class V8CoverageProvider extends BaseCoverageProvider<ResolvedCoverageOptions<'v8'>> implements CoverageProvider {
8
12
  name: "v8";
9
13
  version: string;
@@ -12,10 +16,10 @@ declare class V8CoverageProvider extends BaseCoverageProvider<ResolvedCoverageOp
12
16
  createCoverageMap(): CoverageMap;
13
17
  generateCoverage({ allTestsRun }: ReportContext): Promise<CoverageMap>;
14
18
  generateReports(coverageMap: CoverageMap, allTestsRun?: boolean): Promise<void>;
15
- parseConfigModule(configFilePath: string): Promise<magicast.ProxifiedModule<any>>;
19
+ parseConfigModule(configFilePath: string): Promise<ProxifiedModule<any>>;
16
20
  private getUntestedFiles;
17
21
  private getSources;
18
22
  private convertCoverage;
19
23
  }
20
24
 
21
- export { V8CoverageProvider };
25
+ export { type ScriptCoverageWithOffset, V8CoverageProvider };
package/dist/provider.js CHANGED
@@ -1627,7 +1627,7 @@ function requireTraceMapping_umd () {
1627
1627
  function encodedMappings(map) {
1628
1628
  var _a;
1629
1629
  var _b;
1630
- return ((_a = (_b = cast(map))._encoded) !== null && _a !== undefined ? _a : (_b._encoded = sourcemapCodec.encode(cast(map)._decoded)));
1630
+ return ((_a = (_b = cast(map))._encoded) !== null && _a !== void 0 ? _a : (_b._encoded = sourcemapCodec.encode(cast(map)._decoded)));
1631
1631
  }
1632
1632
  /**
1633
1633
  * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
@@ -2539,9 +2539,8 @@ function cleanUrl(url) {
2539
2539
  "wasi"
2540
2540
  ]);
2541
2541
 
2542
- var version = "3.0.5";
2542
+ var version = "3.0.6";
2543
2543
 
2544
- const WRAPPER_LENGTH = 185;
2545
2544
  const VITE_EXPORTS_LINE_PATTERN = /Object\.defineProperty\(__vite_ssr_exports__.*\n/g;
2546
2545
  const DECORATOR_METADATA_PATTERN = /_ts_metadata\("design:paramtypes", \[[^\]]*\]\),*/g;
2547
2546
  const FILE_PROTOCOL = "file://";
@@ -2570,6 +2569,12 @@ class V8CoverageProvider extends BaseCoverageProvider {
2570
2569
  await this.readCoverageFiles({
2571
2570
  onFileRead(coverage) {
2572
2571
  merged = mergeProcessCovs([merged, coverage]);
2572
+ merged.result.forEach((result) => {
2573
+ if (!result.startOffset) {
2574
+ const original = coverage.result.find((r) => r.url === result.url);
2575
+ result.startOffset = original?.startOffset || 0;
2576
+ }
2577
+ });
2573
2578
  },
2574
2579
  onFinished: async (project, transformMode) => {
2575
2580
  const converted = await this.convertCoverage(
@@ -2690,11 +2695,9 @@ class V8CoverageProvider extends BaseCoverageProvider {
2690
2695
  }
2691
2696
  async getSources(url, transformResults, onTransform, functions = []) {
2692
2697
  const filePath = normalize(fileURLToPath(url));
2693
- let isExecuted = true;
2694
2698
  let transformResult = transformResults.get(filePath);
2695
2699
  if (!transformResult) {
2696
- isExecuted = false;
2697
- transformResult = await onTransform(removeStartsWith(url, FILE_PROTOCOL)).catch(() => undefined);
2700
+ transformResult = await onTransform(removeStartsWith(url, FILE_PROTOCOL)).catch(() => void 0);
2698
2701
  }
2699
2702
  const map = transformResult?.map;
2700
2703
  const code = transformResult?.code;
@@ -2707,7 +2710,6 @@ class V8CoverageProvider extends BaseCoverageProvider {
2707
2710
  }
2708
2711
  if (!map) {
2709
2712
  return {
2710
- isExecuted,
2711
2713
  source: code || sourcesContent[0],
2712
2714
  originalSource: sourcesContent[0]
2713
2715
  };
@@ -2717,7 +2719,6 @@ class V8CoverageProvider extends BaseCoverageProvider {
2717
2719
  sources.push(url);
2718
2720
  }
2719
2721
  return {
2720
- isExecuted,
2721
2722
  originalSource: sourcesContent[0],
2722
2723
  source: code || sourcesContent[0],
2723
2724
  sourceMap: {
@@ -2766,19 +2767,18 @@ class V8CoverageProvider extends BaseCoverageProvider {
2766
2767
  debug("Converting %d/%d", index, scriptCoverages.length);
2767
2768
  }
2768
2769
  await Promise.all(
2769
- chunk.map(async ({ url, functions }) => {
2770
+ chunk.map(async ({ url, functions, startOffset }) => {
2770
2771
  const sources = await this.getSources(
2771
2772
  url,
2772
2773
  transformResults,
2773
2774
  onTransform,
2774
2775
  functions
2775
2776
  );
2776
- const wrapperLength = sources.isExecuted ? WRAPPER_LENGTH : 0;
2777
2777
  const converter = v8ToIstanbul(
2778
2778
  url,
2779
- wrapperLength,
2779
+ startOffset,
2780
2780
  sources,
2781
- undefined,
2781
+ void 0,
2782
2782
  this.options.ignoreEmptyLines
2783
2783
  );
2784
2784
  await converter.load();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/coverage-v8",
3
3
  "type": "module",
4
- "version": "3.0.5",
4
+ "version": "3.0.6",
5
5
  "description": "V8 coverage provider for Vitest",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -41,8 +41,8 @@
41
41
  "dist"
42
42
  ],
43
43
  "peerDependencies": {
44
- "vitest": "3.0.5",
45
- "@vitest/browser": "3.0.5"
44
+ "@vitest/browser": "3.0.6",
45
+ "vitest": "3.0.6"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "@vitest/browser": {
@@ -70,11 +70,11 @@
70
70
  "@types/istanbul-lib-source-maps": "^4.0.4",
71
71
  "@types/istanbul-reports": "^3.0.4",
72
72
  "@types/test-exclude": "^6.0.2",
73
- "pathe": "^2.0.2",
73
+ "pathe": "^2.0.3",
74
74
  "v8-to-istanbul": "^9.3.0",
75
- "@vitest/browser": "3.0.5",
76
- "vitest": "3.0.5",
77
- "vite-node": "3.0.5"
75
+ "@vitest/browser": "3.0.6",
76
+ "vite-node": "3.0.6",
77
+ "vitest": "3.0.6"
78
78
  },
79
79
  "scripts": {
80
80
  "build": "rimraf dist && rollup -c",