@vitest/utils 3.0.6 → 3.0.8

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.
@@ -123,7 +123,7 @@ declare function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void):
123
123
  interface StackTraceParserOptions {
124
124
  ignoreStackEntries?: (RegExp | string)[];
125
125
  getSourceMap?: (file: string) => unknown;
126
- getFileName?: (id: string) => string;
126
+ getUrlId?: (id: string) => string;
127
127
  frameFilter?: (error: ErrorWithDiff, frame: ParsedStack) => boolean | void;
128
128
  }
129
129
  declare function parseSingleFFOrSafariStack(raw: string): ParsedStack | null;
@@ -821,7 +821,9 @@ function extractLocation(urlLike) {
821
821
  }
822
822
  if (url.startsWith("http:") || url.startsWith("https:")) {
823
823
  const urlObj = new URL(url);
824
- url = urlObj.pathname;
824
+ urlObj.searchParams.delete("import");
825
+ urlObj.searchParams.delete("browserv");
826
+ url = urlObj.pathname + urlObj.hash + urlObj.search;
825
827
  }
826
828
  if (url.startsWith("/@fs/")) {
827
829
  const isWindows = /^\/@fs\/[a-zA-Z]:\//.test(url);
@@ -913,28 +915,40 @@ function createStackString(stacks) {
913
915
  }
914
916
  function parseStacktrace(stack, options = {}) {
915
917
  const { ignoreStackEntries = stackIgnorePatterns } = options;
916
- let stacks = !CHROME_IE_STACK_REGEXP.test(stack) ? parseFFOrSafariStackTrace(stack) : parseV8Stacktrace(stack);
917
- if (ignoreStackEntries.length) {
918
- stacks = stacks.filter(
919
- (stack2) => !ignoreStackEntries.some((p) => stack2.file.match(p))
920
- );
921
- }
918
+ const stacks = !CHROME_IE_STACK_REGEXP.test(stack) ? parseFFOrSafariStackTrace(stack) : parseV8Stacktrace(stack);
922
919
  return stacks.map((stack2) => {
923
920
  var _a;
924
- if (options.getFileName) {
925
- stack2.file = options.getFileName(stack2.file);
921
+ if (options.getUrlId) {
922
+ stack2.file = options.getUrlId(stack2.file);
926
923
  }
927
924
  const map = (_a = options.getSourceMap) == null ? void 0 : _a.call(options, stack2.file);
928
925
  if (!map || typeof map !== "object" || !map.version) {
929
- return stack2;
926
+ return shouldFilter(ignoreStackEntries, stack2.file) ? null : stack2;
930
927
  }
931
928
  const traceMap = new TraceMap(map);
932
- const { line, column } = originalPositionFor(traceMap, stack2);
929
+ const { line, column, source, name } = originalPositionFor(traceMap, stack2);
930
+ let file = stack2.file;
931
+ if (source) {
932
+ const fileUrl = stack2.file.startsWith("file://") ? stack2.file : `file://${stack2.file}`;
933
+ const sourceRootUrl = map.sourceRoot ? new URL(map.sourceRoot, fileUrl) : fileUrl;
934
+ file = new URL(source, sourceRootUrl).pathname;
935
+ }
936
+ if (shouldFilter(ignoreStackEntries, file)) {
937
+ return null;
938
+ }
933
939
  if (line != null && column != null) {
934
- return { ...stack2, line, column };
940
+ return {
941
+ line,
942
+ column,
943
+ file,
944
+ method: name || stack2.method
945
+ };
935
946
  }
936
947
  return stack2;
937
- });
948
+ }).filter((s) => s != null);
949
+ }
950
+ function shouldFilter(ignoreStackEntries, file) {
951
+ return ignoreStackEntries.some((p) => file.match(p));
938
952
  }
939
953
  function parseFFOrSafariStackTrace(stack) {
940
954
  return stack.split("\n").map((line) => parseSingleFFOrSafariStack(line)).filter(notNullish);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/utils",
3
3
  "type": "module",
4
- "version": "3.0.6",
4
+ "version": "3.0.8",
5
5
  "description": "Shared Vitest utility functions",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -62,7 +62,7 @@
62
62
  "dependencies": {
63
63
  "loupe": "^3.1.3",
64
64
  "tinyrainbow": "^2.0.0",
65
- "@vitest/pretty-format": "3.0.6"
65
+ "@vitest/pretty-format": "3.0.8"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@jridgewell/trace-mapping": "^0.3.25",