@vitest/coverage-v8 2.1.0-beta.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/provider.js +355 -91
  2. package/package.json +6 -6
package/dist/provider.js CHANGED
@@ -452,6 +452,42 @@ function requireSourcemapCodec_umd () {
452
452
  intToChar[i] = c;
453
453
  charToInt[c] = i;
454
454
  }
455
+ function decodeInteger(reader, relative) {
456
+ let value = 0;
457
+ let shift = 0;
458
+ let integer = 0;
459
+ do {
460
+ const c = reader.next();
461
+ integer = charToInt[c];
462
+ value |= (integer & 31) << shift;
463
+ shift += 5;
464
+ } while (integer & 32);
465
+ const shouldNegate = value & 1;
466
+ value >>>= 1;
467
+ if (shouldNegate) {
468
+ value = -0x80000000 | -value;
469
+ }
470
+ return relative + value;
471
+ }
472
+ function encodeInteger(builder, num, relative) {
473
+ let delta = num - relative;
474
+ delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;
475
+ do {
476
+ let clamped = delta & 0b011111;
477
+ delta >>>= 5;
478
+ if (delta > 0)
479
+ clamped |= 0b100000;
480
+ builder.write(intToChar[clamped]);
481
+ } while (delta > 0);
482
+ return num;
483
+ }
484
+ function hasMoreVlq(reader, max) {
485
+ if (reader.pos >= max)
486
+ return false;
487
+ return reader.peek() !== comma;
488
+ }
489
+
490
+ const bufLength = 1024 * 16;
455
491
  // Provide a fallback for older environments.
456
492
  const td = typeof TextDecoder !== 'undefined'
457
493
  ? /* #__PURE__ */ new TextDecoder()
@@ -471,74 +507,326 @@ function requireSourcemapCodec_umd () {
471
507
  return out;
472
508
  },
473
509
  };
510
+ class StringWriter {
511
+ constructor() {
512
+ this.pos = 0;
513
+ this.out = '';
514
+ this.buffer = new Uint8Array(bufLength);
515
+ }
516
+ write(v) {
517
+ const { buffer } = this;
518
+ buffer[this.pos++] = v;
519
+ if (this.pos === bufLength) {
520
+ this.out += td.decode(buffer);
521
+ this.pos = 0;
522
+ }
523
+ }
524
+ flush() {
525
+ const { buffer, out, pos } = this;
526
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
527
+ }
528
+ }
529
+ class StringReader {
530
+ constructor(buffer) {
531
+ this.pos = 0;
532
+ this.buffer = buffer;
533
+ }
534
+ next() {
535
+ return this.buffer.charCodeAt(this.pos++);
536
+ }
537
+ peek() {
538
+ return this.buffer.charCodeAt(this.pos);
539
+ }
540
+ indexOf(char) {
541
+ const { buffer, pos } = this;
542
+ const idx = buffer.indexOf(char, pos);
543
+ return idx === -1 ? buffer.length : idx;
544
+ }
545
+ }
546
+
547
+ const EMPTY = [];
548
+ function decodeOriginalScopes(input) {
549
+ const { length } = input;
550
+ const reader = new StringReader(input);
551
+ const scopes = [];
552
+ const stack = [];
553
+ let line = 0;
554
+ for (; reader.pos < length; reader.pos++) {
555
+ line = decodeInteger(reader, line);
556
+ const column = decodeInteger(reader, 0);
557
+ if (!hasMoreVlq(reader, length)) {
558
+ const last = stack.pop();
559
+ last[2] = line;
560
+ last[3] = column;
561
+ continue;
562
+ }
563
+ const kind = decodeInteger(reader, 0);
564
+ const fields = decodeInteger(reader, 0);
565
+ const hasName = fields & 0b0001;
566
+ const scope = (hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]);
567
+ let vars = EMPTY;
568
+ if (hasMoreVlq(reader, length)) {
569
+ vars = [];
570
+ do {
571
+ const varsIndex = decodeInteger(reader, 0);
572
+ vars.push(varsIndex);
573
+ } while (hasMoreVlq(reader, length));
574
+ }
575
+ scope.vars = vars;
576
+ scopes.push(scope);
577
+ stack.push(scope);
578
+ }
579
+ return scopes;
580
+ }
581
+ function encodeOriginalScopes(scopes) {
582
+ const writer = new StringWriter();
583
+ for (let i = 0; i < scopes.length;) {
584
+ i = _encodeOriginalScopes(scopes, i, writer, [0]);
585
+ }
586
+ return writer.flush();
587
+ }
588
+ function _encodeOriginalScopes(scopes, index, writer, state) {
589
+ const scope = scopes[index];
590
+ const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;
591
+ if (index > 0)
592
+ writer.write(comma);
593
+ state[0] = encodeInteger(writer, startLine, state[0]);
594
+ encodeInteger(writer, startColumn, 0);
595
+ encodeInteger(writer, kind, 0);
596
+ const fields = scope.length === 6 ? 0b0001 : 0;
597
+ encodeInteger(writer, fields, 0);
598
+ if (scope.length === 6)
599
+ encodeInteger(writer, scope[5], 0);
600
+ for (const v of vars) {
601
+ encodeInteger(writer, v, 0);
602
+ }
603
+ for (index++; index < scopes.length;) {
604
+ const next = scopes[index];
605
+ const { 0: l, 1: c } = next;
606
+ if (l > endLine || (l === endLine && c >= endColumn)) {
607
+ break;
608
+ }
609
+ index = _encodeOriginalScopes(scopes, index, writer, state);
610
+ }
611
+ writer.write(comma);
612
+ state[0] = encodeInteger(writer, endLine, state[0]);
613
+ encodeInteger(writer, endColumn, 0);
614
+ return index;
615
+ }
616
+ function decodeGeneratedRanges(input) {
617
+ const { length } = input;
618
+ const reader = new StringReader(input);
619
+ const ranges = [];
620
+ const stack = [];
621
+ let genLine = 0;
622
+ let definitionSourcesIndex = 0;
623
+ let definitionScopeIndex = 0;
624
+ let callsiteSourcesIndex = 0;
625
+ let callsiteLine = 0;
626
+ let callsiteColumn = 0;
627
+ let bindingLine = 0;
628
+ let bindingColumn = 0;
629
+ do {
630
+ const semi = reader.indexOf(';');
631
+ let genColumn = 0;
632
+ for (; reader.pos < semi; reader.pos++) {
633
+ genColumn = decodeInteger(reader, genColumn);
634
+ if (!hasMoreVlq(reader, semi)) {
635
+ const last = stack.pop();
636
+ last[2] = genLine;
637
+ last[3] = genColumn;
638
+ continue;
639
+ }
640
+ const fields = decodeInteger(reader, 0);
641
+ const hasDefinition = fields & 0b0001;
642
+ const hasCallsite = fields & 0b0010;
643
+ const hasScope = fields & 0b0100;
644
+ let callsite = null;
645
+ let bindings = EMPTY;
646
+ let range;
647
+ if (hasDefinition) {
648
+ const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);
649
+ definitionScopeIndex = decodeInteger(reader, definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0);
650
+ definitionSourcesIndex = defSourcesIndex;
651
+ range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];
652
+ }
653
+ else {
654
+ range = [genLine, genColumn, 0, 0];
655
+ }
656
+ range.isScope = !!hasScope;
657
+ if (hasCallsite) {
658
+ const prevCsi = callsiteSourcesIndex;
659
+ const prevLine = callsiteLine;
660
+ callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);
661
+ const sameSource = prevCsi === callsiteSourcesIndex;
662
+ callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);
663
+ callsiteColumn = decodeInteger(reader, sameSource && prevLine === callsiteLine ? callsiteColumn : 0);
664
+ callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];
665
+ }
666
+ range.callsite = callsite;
667
+ if (hasMoreVlq(reader, semi)) {
668
+ bindings = [];
669
+ do {
670
+ bindingLine = genLine;
671
+ bindingColumn = genColumn;
672
+ const expressionsCount = decodeInteger(reader, 0);
673
+ let expressionRanges;
674
+ if (expressionsCount < -1) {
675
+ expressionRanges = [[decodeInteger(reader, 0)]];
676
+ for (let i = -1; i > expressionsCount; i--) {
677
+ const prevBl = bindingLine;
678
+ bindingLine = decodeInteger(reader, bindingLine);
679
+ bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);
680
+ const expression = decodeInteger(reader, 0);
681
+ expressionRanges.push([expression, bindingLine, bindingColumn]);
682
+ }
683
+ }
684
+ else {
685
+ expressionRanges = [[expressionsCount]];
686
+ }
687
+ bindings.push(expressionRanges);
688
+ } while (hasMoreVlq(reader, semi));
689
+ }
690
+ range.bindings = bindings;
691
+ ranges.push(range);
692
+ stack.push(range);
693
+ }
694
+ genLine++;
695
+ reader.pos = semi + 1;
696
+ } while (reader.pos < length);
697
+ return ranges;
698
+ }
699
+ function encodeGeneratedRanges(ranges) {
700
+ if (ranges.length === 0)
701
+ return '';
702
+ const writer = new StringWriter();
703
+ for (let i = 0; i < ranges.length;) {
704
+ i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);
705
+ }
706
+ return writer.flush();
707
+ }
708
+ function _encodeGeneratedRanges(ranges, index, writer, state) {
709
+ const range = ranges[index];
710
+ const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, isScope, callsite, bindings, } = range;
711
+ if (state[0] < startLine) {
712
+ catchupLine(writer, state[0], startLine);
713
+ state[0] = startLine;
714
+ state[1] = 0;
715
+ }
716
+ else if (index > 0) {
717
+ writer.write(comma);
718
+ }
719
+ state[1] = encodeInteger(writer, range[1], state[1]);
720
+ const fields = (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0);
721
+ encodeInteger(writer, fields, 0);
722
+ if (range.length === 6) {
723
+ const { 4: sourcesIndex, 5: scopesIndex } = range;
724
+ if (sourcesIndex !== state[2]) {
725
+ state[3] = 0;
726
+ }
727
+ state[2] = encodeInteger(writer, sourcesIndex, state[2]);
728
+ state[3] = encodeInteger(writer, scopesIndex, state[3]);
729
+ }
730
+ if (callsite) {
731
+ const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;
732
+ if (sourcesIndex !== state[4]) {
733
+ state[5] = 0;
734
+ state[6] = 0;
735
+ }
736
+ else if (callLine !== state[5]) {
737
+ state[6] = 0;
738
+ }
739
+ state[4] = encodeInteger(writer, sourcesIndex, state[4]);
740
+ state[5] = encodeInteger(writer, callLine, state[5]);
741
+ state[6] = encodeInteger(writer, callColumn, state[6]);
742
+ }
743
+ if (bindings) {
744
+ for (const binding of bindings) {
745
+ if (binding.length > 1)
746
+ encodeInteger(writer, -binding.length, 0);
747
+ const expression = binding[0][0];
748
+ encodeInteger(writer, expression, 0);
749
+ let bindingStartLine = startLine;
750
+ let bindingStartColumn = startColumn;
751
+ for (let i = 1; i < binding.length; i++) {
752
+ const expRange = binding[i];
753
+ bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);
754
+ bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);
755
+ encodeInteger(writer, expRange[0], 0);
756
+ }
757
+ }
758
+ }
759
+ for (index++; index < ranges.length;) {
760
+ const next = ranges[index];
761
+ const { 0: l, 1: c } = next;
762
+ if (l > endLine || (l === endLine && c >= endColumn)) {
763
+ break;
764
+ }
765
+ index = _encodeGeneratedRanges(ranges, index, writer, state);
766
+ }
767
+ if (state[0] < endLine) {
768
+ catchupLine(writer, state[0], endLine);
769
+ state[0] = endLine;
770
+ state[1] = 0;
771
+ }
772
+ else {
773
+ writer.write(comma);
774
+ }
775
+ state[1] = encodeInteger(writer, endColumn, state[1]);
776
+ return index;
777
+ }
778
+ function catchupLine(writer, lastLine, line) {
779
+ do {
780
+ writer.write(semicolon);
781
+ } while (++lastLine < line);
782
+ }
783
+
474
784
  function decode(mappings) {
475
- const state = new Int32Array(5);
785
+ const { length } = mappings;
786
+ const reader = new StringReader(mappings);
476
787
  const decoded = [];
477
- let index = 0;
788
+ let genColumn = 0;
789
+ let sourcesIndex = 0;
790
+ let sourceLine = 0;
791
+ let sourceColumn = 0;
792
+ let namesIndex = 0;
478
793
  do {
479
- const semi = indexOf(mappings, index);
794
+ const semi = reader.indexOf(';');
480
795
  const line = [];
481
796
  let sorted = true;
482
797
  let lastCol = 0;
483
- state[0] = 0;
484
- for (let i = index; i < semi; i++) {
798
+ genColumn = 0;
799
+ while (reader.pos < semi) {
485
800
  let seg;
486
- i = decodeInteger(mappings, i, state, 0); // genColumn
487
- const col = state[0];
488
- if (col < lastCol)
801
+ genColumn = decodeInteger(reader, genColumn);
802
+ if (genColumn < lastCol)
489
803
  sorted = false;
490
- lastCol = col;
491
- if (hasMoreVlq(mappings, i, semi)) {
492
- i = decodeInteger(mappings, i, state, 1); // sourcesIndex
493
- i = decodeInteger(mappings, i, state, 2); // sourceLine
494
- i = decodeInteger(mappings, i, state, 3); // sourceColumn
495
- if (hasMoreVlq(mappings, i, semi)) {
496
- i = decodeInteger(mappings, i, state, 4); // namesIndex
497
- seg = [col, state[1], state[2], state[3], state[4]];
804
+ lastCol = genColumn;
805
+ if (hasMoreVlq(reader, semi)) {
806
+ sourcesIndex = decodeInteger(reader, sourcesIndex);
807
+ sourceLine = decodeInteger(reader, sourceLine);
808
+ sourceColumn = decodeInteger(reader, sourceColumn);
809
+ if (hasMoreVlq(reader, semi)) {
810
+ namesIndex = decodeInteger(reader, namesIndex);
811
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
498
812
  }
499
813
  else {
500
- seg = [col, state[1], state[2], state[3]];
814
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
501
815
  }
502
816
  }
503
817
  else {
504
- seg = [col];
818
+ seg = [genColumn];
505
819
  }
506
820
  line.push(seg);
821
+ reader.pos++;
507
822
  }
508
823
  if (!sorted)
509
824
  sort(line);
510
825
  decoded.push(line);
511
- index = semi + 1;
512
- } while (index <= mappings.length);
826
+ reader.pos = semi + 1;
827
+ } while (reader.pos <= length);
513
828
  return decoded;
514
829
  }
515
- function indexOf(mappings, index) {
516
- const idx = mappings.indexOf(';', index);
517
- return idx === -1 ? mappings.length : idx;
518
- }
519
- function decodeInteger(mappings, pos, state, j) {
520
- let value = 0;
521
- let shift = 0;
522
- let integer = 0;
523
- do {
524
- const c = mappings.charCodeAt(pos++);
525
- integer = charToInt[c];
526
- value |= (integer & 31) << shift;
527
- shift += 5;
528
- } while (integer & 32);
529
- const shouldNegate = value & 1;
530
- value >>>= 1;
531
- if (shouldNegate) {
532
- value = -0x80000000 | -value;
533
- }
534
- state[j] += value;
535
- return pos;
536
- }
537
- function hasMoreVlq(mappings, i, length) {
538
- if (i >= length)
539
- return false;
540
- return mappings.charCodeAt(i) !== comma;
541
- }
542
830
  function sort(line) {
543
831
  line.sort(sortComparator);
544
832
  }
@@ -546,66 +834,42 @@ function requireSourcemapCodec_umd () {
546
834
  return a[0] - b[0];
547
835
  }
548
836
  function encode(decoded) {
549
- const state = new Int32Array(5);
550
- const bufLength = 1024 * 16;
551
- const subLength = bufLength - 36;
552
- const buf = new Uint8Array(bufLength);
553
- const sub = buf.subarray(0, subLength);
554
- let pos = 0;
555
- let out = '';
837
+ const writer = new StringWriter();
838
+ let sourcesIndex = 0;
839
+ let sourceLine = 0;
840
+ let sourceColumn = 0;
841
+ let namesIndex = 0;
556
842
  for (let i = 0; i < decoded.length; i++) {
557
843
  const line = decoded[i];
558
- if (i > 0) {
559
- if (pos === bufLength) {
560
- out += td.decode(buf);
561
- pos = 0;
562
- }
563
- buf[pos++] = semicolon;
564
- }
844
+ if (i > 0)
845
+ writer.write(semicolon);
565
846
  if (line.length === 0)
566
847
  continue;
567
- state[0] = 0;
848
+ let genColumn = 0;
568
849
  for (let j = 0; j < line.length; j++) {
569
850
  const segment = line[j];
570
- // We can push up to 5 ints, each int can take at most 7 chars, and we
571
- // may push a comma.
572
- if (pos > subLength) {
573
- out += td.decode(sub);
574
- buf.copyWithin(0, subLength, pos);
575
- pos -= subLength;
576
- }
577
851
  if (j > 0)
578
- buf[pos++] = comma;
579
- pos = encodeInteger(buf, pos, state, segment, 0); // genColumn
852
+ writer.write(comma);
853
+ genColumn = encodeInteger(writer, segment[0], genColumn);
580
854
  if (segment.length === 1)
581
855
  continue;
582
- pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex
583
- pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine
584
- pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn
856
+ sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
857
+ sourceLine = encodeInteger(writer, segment[2], sourceLine);
858
+ sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
585
859
  if (segment.length === 4)
586
860
  continue;
587
- pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex
861
+ namesIndex = encodeInteger(writer, segment[4], namesIndex);
588
862
  }
589
863
  }
590
- return out + td.decode(buf.subarray(0, pos));
591
- }
592
- function encodeInteger(buf, pos, state, segment, j) {
593
- const next = segment[j];
594
- let num = next - state[j];
595
- state[j] = next;
596
- num = num < 0 ? (-num << 1) | 1 : num << 1;
597
- do {
598
- let clamped = num & 0b011111;
599
- num >>>= 5;
600
- if (num > 0)
601
- clamped |= 0b100000;
602
- buf[pos++] = intToChar[clamped];
603
- } while (num > 0);
604
- return pos;
864
+ return writer.flush();
605
865
  }
606
866
 
607
867
  exports.decode = decode;
868
+ exports.decodeGeneratedRanges = decodeGeneratedRanges;
869
+ exports.decodeOriginalScopes = decodeOriginalScopes;
608
870
  exports.encode = encode;
871
+ exports.encodeGeneratedRanges = encodeGeneratedRanges;
872
+ exports.encodeOriginalScopes = encodeOriginalScopes;
609
873
 
610
874
  Object.defineProperty(exports, '__esModule', { value: true });
611
875
 
@@ -2248,7 +2512,7 @@ function cleanUrl(url) {
2248
2512
  "wasi"
2249
2513
  ]);
2250
2514
 
2251
- var version = "2.1.0-beta.6";
2515
+ var version = "2.1.0";
2252
2516
 
2253
2517
  const WRAPPER_LENGTH = 185;
2254
2518
  const VITE_EXPORTS_LINE_PATTERN = /Object\.defineProperty\(__vite_ssr_exports__.*\n/g;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/coverage-v8",
3
3
  "type": "module",
4
- "version": "2.1.0-beta.6",
4
+ "version": "2.1.0",
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/browser": "2.1.0-beta.6",
45
- "vitest": "2.1.0-beta.6"
44
+ "@vitest/browser": "2.1.0",
45
+ "vitest": "2.1.0"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "@vitest/browser": {
@@ -71,9 +71,9 @@
71
71
  "@types/istanbul-reports": "^3.0.4",
72
72
  "pathe": "^1.1.2",
73
73
  "v8-to-istanbul": "^9.3.0",
74
- "@vitest/browser": "2.1.0-beta.6",
75
- "vite-node": "2.1.0-beta.6",
76
- "vitest": "2.1.0-beta.6"
74
+ "@vitest/browser": "2.1.0",
75
+ "vitest": "2.1.0",
76
+ "vite-node": "2.1.0"
77
77
  },
78
78
  "scripts": {
79
79
  "build": "rimraf dist && rollup -c",