happo 6.6.0 → 6.6.1
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/cli/cancelJob-DETLA3XZ.js +10 -0
- package/dist/cli/{chunk-OXGH6FW4.js → chunk-2LNQIG6R.js} +2 -2
- package/dist/cli/{chunk-PRPDWPU3.js → chunk-JMN6VM22.js} +3 -3
- package/dist/cli/{chunk-QC2HOKDQ.js → chunk-MCYQSPED.js} +2 -2
- package/dist/cli/{chunk-LCNHMIOU.js → chunk-MGNFR3W2.js} +2 -2
- package/dist/cli/{chunk-DUWOS4XT.js → chunk-OJHKEE3W.js} +3 -2
- package/dist/cli/chunk-OJHKEE3W.js.map +7 -0
- package/dist/cli/{chunk-AFAI3HL3.js → chunk-SE7XKHF6.js} +2 -2
- package/dist/cli/createAsyncComparison-B3USWOAI.js +10 -0
- package/dist/cli/{createAsyncReport-IQO7YVCA.js → createAsyncReport-3FKLGSYD.js} +4 -4
- package/dist/cli/{getFlakes-HICLTPZC.js → getFlakes-5DA34KWE.js} +4 -4
- package/dist/cli/main.js +11 -11
- package/dist/cli/package-CY7G2FGG.js +7 -0
- package/dist/cli/{prepareSnapRequests-VFWDWE5X.js → prepareSnapRequests-RSZU5TQG.js} +16 -5
- package/dist/cli/{prepareSnapRequests-VFWDWE5X.js.map → prepareSnapRequests-RSZU5TQG.js.map} +3 -3
- package/dist/cli/startJob-OPTUE4PO.js +10 -0
- package/dist/cli/{wrapper-IQJTUXE4.js → wrapper-QAPBXQCV.js} +7 -7
- package/dist/cypress/task.js +14 -2
- package/dist/cypress/task.js.map +3 -3
- package/dist/network/uploadAssets.d.ts.map +1 -1
- package/dist/playwright/index.js +14 -2
- package/dist/playwright/index.js.map +3 -3
- package/package.json +2 -1
- package/dist/cli/cancelJob-HZDX6274.js +0 -10
- package/dist/cli/chunk-DUWOS4XT.js.map +0 -7
- package/dist/cli/createAsyncComparison-FQQHINTM.js +0 -10
- package/dist/cli/package-RZI6QOJX.js +0 -7
- package/dist/cli/startJob-QZA4POSE.js +0 -10
- /package/dist/cli/{cancelJob-HZDX6274.js.map → cancelJob-DETLA3XZ.js.map} +0 -0
- /package/dist/cli/{chunk-OXGH6FW4.js.map → chunk-2LNQIG6R.js.map} +0 -0
- /package/dist/cli/{chunk-PRPDWPU3.js.map → chunk-JMN6VM22.js.map} +0 -0
- /package/dist/cli/{chunk-QC2HOKDQ.js.map → chunk-MCYQSPED.js.map} +0 -0
- /package/dist/cli/{chunk-LCNHMIOU.js.map → chunk-MGNFR3W2.js.map} +0 -0
- /package/dist/cli/{chunk-AFAI3HL3.js.map → chunk-SE7XKHF6.js.map} +0 -0
- /package/dist/cli/{createAsyncComparison-FQQHINTM.js.map → createAsyncComparison-B3USWOAI.js.map} +0 -0
- /package/dist/cli/{createAsyncReport-IQO7YVCA.js.map → createAsyncReport-3FKLGSYD.js.map} +0 -0
- /package/dist/cli/{getFlakes-HICLTPZC.js.map → getFlakes-5DA34KWE.js.map} +0 -0
- /package/dist/cli/{package-RZI6QOJX.js.map → package-CY7G2FGG.js.map} +0 -0
- /package/dist/cli/{startJob-QZA4POSE.js.map → startJob-OPTUE4PO.js.map} +0 -0
- /package/dist/cli/{wrapper-IQJTUXE4.js.map → wrapper-QAPBXQCV.js.map} +0 -0
|
@@ -3,21 +3,21 @@ import {
|
|
|
3
3
|
} from "./chunk-JTRP4JVC.js";
|
|
4
4
|
import {
|
|
5
5
|
startJob
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MGNFR3W2.js";
|
|
7
7
|
import {
|
|
8
8
|
createAsyncComparison
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MCYQSPED.js";
|
|
10
10
|
import {
|
|
11
11
|
postGitHubComment
|
|
12
12
|
} from "./chunk-X4TE2VNY.js";
|
|
13
13
|
import {
|
|
14
14
|
cancelJob
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JMN6VM22.js";
|
|
16
16
|
import {
|
|
17
17
|
makeHappoAPIRequest
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-2LNQIG6R.js";
|
|
19
|
+
import "./chunk-SE7XKHF6.js";
|
|
20
|
+
import "./chunk-OJHKEE3W.js";
|
|
21
21
|
|
|
22
22
|
// src/e2e/wrapper.ts
|
|
23
23
|
import { spawn } from "node:child_process";
|
|
@@ -217,4 +217,4 @@ export {
|
|
|
217
217
|
runWithWrapper as default,
|
|
218
218
|
finalizeAll
|
|
219
219
|
};
|
|
220
|
-
//# sourceMappingURL=wrapper-
|
|
220
|
+
//# sourceMappingURL=wrapper-QAPBXQCV.js.map
|
package/dist/cypress/task.js
CHANGED
|
@@ -19,7 +19,7 @@ import asyncRetry from "async-retry";
|
|
|
19
19
|
// package.json
|
|
20
20
|
var package_default = {
|
|
21
21
|
name: "happo",
|
|
22
|
-
version: "6.6.
|
|
22
|
+
version: "6.6.1",
|
|
23
23
|
description: "Catch unexpected visual and accessibility changes and UI bugs",
|
|
24
24
|
license: "MIT",
|
|
25
25
|
repository: {
|
|
@@ -92,6 +92,7 @@ var package_default = {
|
|
|
92
92
|
"test:cypress": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.cypress.config.ts e2e -- cypress run -C src/cypress/__cypress__/cypress.config.ts",
|
|
93
93
|
"test:cypress:open": "cypress open -C src/cypress/__cypress__/cypress.config.ts",
|
|
94
94
|
"test:playwright": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright.config.ts e2e -- playwright test",
|
|
95
|
+
"test:playwright:nonce": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright-nonce.config.ts --nonce $HAPPO_NONCE e2e -- playwright test && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright-nonce.config.ts --nonce $HAPPO_NONCE finalize",
|
|
95
96
|
"test:storybook": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts",
|
|
96
97
|
"test:pages": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.pages.config.ts",
|
|
97
98
|
tsc: "tsc --build tsconfig.json"
|
|
@@ -958,6 +959,7 @@ var RemoteBrowserTarget = class {
|
|
|
958
959
|
};
|
|
959
960
|
|
|
960
961
|
// src/network/uploadAssets.ts
|
|
962
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
961
963
|
import retry from "async-retry";
|
|
962
964
|
|
|
963
965
|
// src/utils/Logger.ts
|
|
@@ -998,7 +1000,8 @@ async function uploadAssets(buffer, options, config) {
|
|
|
998
1000
|
body: buffer,
|
|
999
1001
|
headers: {
|
|
1000
1002
|
"Content-Type": "application/zip"
|
|
1001
|
-
}
|
|
1003
|
+
},
|
|
1004
|
+
signal: AbortSignal.timeout(6e4)
|
|
1002
1005
|
});
|
|
1003
1006
|
if (!res.ok) {
|
|
1004
1007
|
const error = new Error(
|
|
@@ -1010,6 +1013,15 @@ async function uploadAssets(buffer, options, config) {
|
|
|
1010
1013
|
}
|
|
1011
1014
|
throw error;
|
|
1012
1015
|
}
|
|
1016
|
+
const etag = res.headers.get("etag");
|
|
1017
|
+
const expectedEtag = createHash2("md5").update(buffer).digest("hex");
|
|
1018
|
+
if (!etag || !etag.includes(expectedEtag)) {
|
|
1019
|
+
const error = new Error(
|
|
1020
|
+
`S3 upload verification failed: expected ETag to include ${expectedEtag}, got ${etag ?? "(none)"}. A firewall may be intercepting the upload.`
|
|
1021
|
+
);
|
|
1022
|
+
bail(error);
|
|
1023
|
+
return;
|
|
1024
|
+
}
|
|
1013
1025
|
return res;
|
|
1014
1026
|
},
|
|
1015
1027
|
{
|