happo 6.5.0 → 6.5.2

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 (42) hide show
  1. package/dist/cli/cancelJob-RTDZ3IL3.js +10 -0
  2. package/dist/cli/{chunk-W7MO2NTZ.js → chunk-DSAGPJIH.js} +4 -4
  3. package/dist/cli/{chunk-W7MO2NTZ.js.map → chunk-DSAGPJIH.js.map} +1 -1
  4. package/dist/cli/{chunk-O45JRUNT.js → chunk-I357LIPJ.js} +2 -2
  5. package/dist/cli/{chunk-J36FZKJS.js → chunk-IOLNNTKP.js} +2 -2
  6. package/dist/cli/{chunk-6TFMGRAI.js → chunk-JEFG3R6O.js} +2 -2
  7. package/dist/cli/{chunk-LOWIGCXB.js → chunk-JZDVA76O.js} +3 -3
  8. package/dist/cli/{chunk-XWK4EJNY.js → chunk-SB3TDZLE.js} +2 -2
  9. package/dist/cli/createAsyncComparison-3ZFRRUDB.js +10 -0
  10. package/dist/cli/{createAsyncReport-UN2QKCNH.js → createAsyncReport-4M7HVIS3.js} +4 -4
  11. package/dist/cli/{getFlakes-2AOSNDXZ.js → getFlakes-QCVM7BHM.js} +4 -4
  12. package/dist/cli/index.d.ts.map +1 -1
  13. package/dist/cli/main.js +13 -12
  14. package/dist/cli/main.js.map +2 -2
  15. package/dist/cli/package-OPMNMDIG.js +7 -0
  16. package/dist/cli/{prepareSnapRequests-XD63A3BP.js → prepareSnapRequests-NQGLK5M6.js} +14 -10
  17. package/dist/cli/{prepareSnapRequests-XD63A3BP.js.map → prepareSnapRequests-NQGLK5M6.js.map} +2 -2
  18. package/dist/cli/startJob-GO6BQDB4.js +10 -0
  19. package/dist/cli/{wrapper-DENWASOQ.js → wrapper-AGHA5SGK.js} +7 -7
  20. package/dist/config/loadConfig.d.ts.map +1 -1
  21. package/dist/cypress/task.js +15 -10
  22. package/dist/cypress/task.js.map +2 -2
  23. package/dist/playwright/index.js +15 -10
  24. package/dist/playwright/index.js.map +2 -2
  25. package/dist/utils/deterministicArchive.d.ts.map +1 -1
  26. package/package.json +3 -3
  27. package/dist/cli/cancelJob-VXWND6VO.js +0 -10
  28. package/dist/cli/createAsyncComparison-M6AWTU4R.js +0 -10
  29. package/dist/cli/package-ONTBKT57.js +0 -7
  30. package/dist/cli/startJob-33OSMHV4.js +0 -10
  31. /package/dist/cli/{cancelJob-VXWND6VO.js.map → cancelJob-RTDZ3IL3.js.map} +0 -0
  32. /package/dist/cli/{chunk-O45JRUNT.js.map → chunk-I357LIPJ.js.map} +0 -0
  33. /package/dist/cli/{chunk-J36FZKJS.js.map → chunk-IOLNNTKP.js.map} +0 -0
  34. /package/dist/cli/{chunk-6TFMGRAI.js.map → chunk-JEFG3R6O.js.map} +0 -0
  35. /package/dist/cli/{chunk-LOWIGCXB.js.map → chunk-JZDVA76O.js.map} +0 -0
  36. /package/dist/cli/{chunk-XWK4EJNY.js.map → chunk-SB3TDZLE.js.map} +0 -0
  37. /package/dist/cli/{createAsyncComparison-M6AWTU4R.js.map → createAsyncComparison-3ZFRRUDB.js.map} +0 -0
  38. /package/dist/cli/{createAsyncReport-UN2QKCNH.js.map → createAsyncReport-4M7HVIS3.js.map} +0 -0
  39. /package/dist/cli/{getFlakes-2AOSNDXZ.js.map → getFlakes-QCVM7BHM.js.map} +0 -0
  40. /package/dist/cli/{package-ONTBKT57.js.map → package-OPMNMDIG.js.map} +0 -0
  41. /package/dist/cli/{startJob-33OSMHV4.js.map → startJob-GO6BQDB4.js.map} +0 -0
  42. /package/dist/cli/{wrapper-DENWASOQ.js.map → wrapper-AGHA5SGK.js.map} +0 -0
@@ -10,6 +10,7 @@ import limitConcur from "limit-concur";
10
10
  // src/config/loadConfig.ts
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
13
+ import { pathToFileURL } from "node:url";
13
14
  import { any as findAny } from "empathic/find";
14
15
 
15
16
  // src/network/fetchWithRetry.ts
@@ -18,7 +19,7 @@ import asyncRetry from "async-retry";
18
19
  // package.json
19
20
  var package_default = {
20
21
  name: "happo",
21
- version: "6.5.0",
22
+ version: "6.5.2",
22
23
  description: "Catch unexpected visual and accessibility changes and UI bugs",
23
24
  license: "MIT",
24
25
  repository: {
@@ -79,10 +80,10 @@ var package_default = {
79
80
  all: "node ./scripts/allchecks.ts",
80
81
  build: "pnpm build:types && pnpm build:dist",
81
82
  "build:custom": "esbuild src/custom/__happo__/index.ts --bundle --format=iife --global-name=happoCustom --outfile=tmp/happo-custom/bundle.js --platform=browser --target=esnext",
82
- "build:dist": "./scripts/build.ts",
83
+ "build:dist": "node ./scripts/build.ts",
83
84
  "build:types": "pnpm tsc --pretty",
84
85
  "build:watch": "tsc --build --watch",
85
- clean: "rm -rf dist tmp/tsc tmp/happo-custom",
86
+ clean: "node ./scripts/clean.ts",
86
87
  lint: "eslint .",
87
88
  prepublishOnly: "pnpm clean && pnpm build",
88
89
  "storybook:dev": "storybook dev --config-dir src/storybook/__tests__/storybook-app -p ${PORT:-6007}",
@@ -567,7 +568,7 @@ async function loadConfigFile(configFilePath, environment, logger = console) {
567
568
  }
568
569
  let config;
569
570
  try {
570
- config = (await import(configFilePath)).default;
571
+ config = (await import(pathToFileURL(configFilePath).href)).default;
571
572
  } catch (error) {
572
573
  if (error instanceof Error && "code" in error && error.code === "ERR_UNKNOWN_FILE_EXTENSION") {
573
574
  const extension = path.extname(configFilePath);
@@ -1002,6 +1003,9 @@ function validateArchive(totalBytes, entries) {
1002
1003
  }
1003
1004
 
1004
1005
  // src/utils/deterministicArchive.ts
1006
+ function normalizeEntryName(name) {
1007
+ return name.replaceAll("\\", "/");
1008
+ }
1005
1009
  var FILE_CREATION_DATE = new Date(2019, 1, 8, 13, 31, 55);
1006
1010
  async function resolveFilesRecursiveForDir(dirOrFile) {
1007
1011
  const resolvedDirOrFile = path2.resolve(dirOrFile);
@@ -1015,7 +1019,7 @@ async function resolveFilesRecursiveForDir(dirOrFile) {
1015
1019
  if (fileType.isFile()) {
1016
1020
  const fullPath = `${fileType.parentPath}/${fileType.name}`;
1017
1021
  fileEntries.push({
1018
- name: path2.relative(resolvedDirOrFile, fullPath),
1022
+ name: normalizeEntryName(path2.relative(resolvedDirOrFile, fullPath)),
1019
1023
  stream: fs3.createReadStream(fullPath)
1020
1024
  });
1021
1025
  }
@@ -1024,7 +1028,7 @@ async function resolveFilesRecursiveForDir(dirOrFile) {
1024
1028
  }
1025
1029
  return [
1026
1030
  {
1027
- name: path2.relative(process.cwd(), resolvedDirOrFile),
1031
+ name: normalizeEntryName(path2.relative(process.cwd(), resolvedDirOrFile)),
1028
1032
  stream: fs3.createReadStream(resolvedDirOrFile)
1029
1033
  }
1030
1034
  ];
@@ -1076,11 +1080,12 @@ async function deterministicArchive(dirsAndFiles, contentToArchive = []) {
1076
1080
  }
1077
1081
  }
1078
1082
  for (const file of contentToArchiveSorted) {
1079
- if (!seenFiles.has(file.name)) {
1083
+ const normalizedName = normalizeEntryName(file.name);
1084
+ if (!seenFiles.has(normalizedName)) {
1080
1085
  const data = await contentToUint8Array(file.content);
1081
- entryDataList.push({ name: file.name, data });
1082
- entries.push({ name: file.name, size: data.length });
1083
- seenFiles.add(file.name);
1086
+ entryDataList.push({ name: normalizedName, data });
1087
+ entries.push({ name: normalizedName, size: data.length });
1088
+ seenFiles.add(normalizedName);
1084
1089
  }
1085
1090
  }
1086
1091
  entryDataList.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);