happo 6.10.0 → 6.10.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 (49) hide show
  1. package/dist/cli/cancelJob-DQ3TD7VC.js +10 -0
  2. package/dist/cli/{chunk-JJOM7NVS.js → chunk-2CCKQG4B.js} +2 -2
  3. package/dist/cli/{chunk-AJQL27KK.js → chunk-5GCRDC6E.js} +2 -2
  4. package/dist/cli/{chunk-V2ULNFYX.js → chunk-BJXCKTWI.js} +3 -3
  5. package/dist/cli/{chunk-WUYZIKHR.js → chunk-LGXU3JNM.js} +2 -2
  6. package/dist/cli/{chunk-JIRDD3RO.js → chunk-P4CGDKZS.js} +2 -2
  7. package/dist/cli/{chunk-KTUIEOPK.js → chunk-Z32R7CJB.js} +2 -2
  8. package/dist/cli/{chunk-KTUIEOPK.js.map → chunk-Z32R7CJB.js.map} +1 -1
  9. package/dist/cli/createAsyncComparison-P277GZ47.js +10 -0
  10. package/dist/cli/{createAsyncReport-QFCSVMAO.js → createAsyncReport-4XB6OU6P.js} +4 -4
  11. package/dist/cli/{createExtendsReportSnapRequest-X2DLPLP5.js → createExtendsReportSnapRequest-L2XBZPJ3.js} +4 -4
  12. package/dist/cli/{findBaselineReport-N4AUOVXP.js → findBaselineReport-K4JN4ZMB.js} +4 -4
  13. package/dist/cli/{getFlakes-M2LSXSTW.js → getFlakes-6GNOYD2U.js} +4 -4
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/main.js +24 -17
  16. package/dist/cli/main.js.map +2 -2
  17. package/dist/cli/package-UABOUH2S.js +7 -0
  18. package/dist/cli/parseOptions.d.ts +3 -0
  19. package/dist/cli/parseOptions.d.ts.map +1 -1
  20. package/dist/cli/{prepareSnapRequests-RINWFSWA.js → prepareSnapRequests-KMVRPKIT.js} +4 -4
  21. package/dist/cli/startJob-TUFOU2O5.js +10 -0
  22. package/dist/cli/{wrapper-YYNZLEMW.js → wrapper-XUOTVPDW.js} +7 -7
  23. package/dist/cypress/task.js +1 -1
  24. package/dist/cypress/task.js.map +1 -1
  25. package/dist/playwright/index.js +1 -1
  26. package/dist/playwright/index.js.map +1 -1
  27. package/dist/storybook/browser/register.d.ts.map +1 -1
  28. package/dist/storybook/browser/register.js +12 -10
  29. package/dist/storybook/browser/register.js.map +2 -2
  30. package/package.json +1 -1
  31. package/dist/cli/cancelJob-PHMDAIJB.js +0 -10
  32. package/dist/cli/createAsyncComparison-D525PJCA.js +0 -10
  33. package/dist/cli/package-3UUMFV7J.js +0 -7
  34. package/dist/cli/startJob-JAVHOIR6.js +0 -10
  35. /package/dist/cli/{cancelJob-PHMDAIJB.js.map → cancelJob-DQ3TD7VC.js.map} +0 -0
  36. /package/dist/cli/{chunk-JJOM7NVS.js.map → chunk-2CCKQG4B.js.map} +0 -0
  37. /package/dist/cli/{chunk-AJQL27KK.js.map → chunk-5GCRDC6E.js.map} +0 -0
  38. /package/dist/cli/{chunk-V2ULNFYX.js.map → chunk-BJXCKTWI.js.map} +0 -0
  39. /package/dist/cli/{chunk-WUYZIKHR.js.map → chunk-LGXU3JNM.js.map} +0 -0
  40. /package/dist/cli/{chunk-JIRDD3RO.js.map → chunk-P4CGDKZS.js.map} +0 -0
  41. /package/dist/cli/{createAsyncComparison-D525PJCA.js.map → createAsyncComparison-P277GZ47.js.map} +0 -0
  42. /package/dist/cli/{createAsyncReport-QFCSVMAO.js.map → createAsyncReport-4XB6OU6P.js.map} +0 -0
  43. /package/dist/cli/{createExtendsReportSnapRequest-X2DLPLP5.js.map → createExtendsReportSnapRequest-L2XBZPJ3.js.map} +0 -0
  44. /package/dist/cli/{findBaselineReport-N4AUOVXP.js.map → findBaselineReport-K4JN4ZMB.js.map} +0 -0
  45. /package/dist/cli/{getFlakes-M2LSXSTW.js.map → getFlakes-6GNOYD2U.js.map} +0 -0
  46. /package/dist/cli/{package-3UUMFV7J.js.map → package-UABOUH2S.js.map} +0 -0
  47. /package/dist/cli/{prepareSnapRequests-RINWFSWA.js.map → prepareSnapRequests-KMVRPKIT.js.map} +0 -0
  48. /package/dist/cli/{startJob-JAVHOIR6.js.map → startJob-TUFOU2O5.js.map} +0 -0
  49. /package/dist/cli/{wrapper-YYNZLEMW.js.map → wrapper-XUOTVPDW.js.map} +0 -0
@@ -0,0 +1,10 @@
1
+ import {
2
+ cancelJob
3
+ } from "./chunk-BJXCKTWI.js";
4
+ import "./chunk-2CCKQG4B.js";
5
+ import "./chunk-LGXU3JNM.js";
6
+ import "./chunk-Z32R7CJB.js";
7
+ export {
8
+ cancelJob as default
9
+ };
10
+ //# sourceMappingURL=cancelJob-DQ3TD7VC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fetchWithRetry
3
- } from "./chunk-WUYZIKHR.js";
3
+ } from "./chunk-LGXU3JNM.js";
4
4
 
5
5
  // src/network/getSignedToken.ts
6
6
  import { SignJWT } from "jose";
@@ -81,4 +81,4 @@ async function makeHappoAPIRequest({ url, path, method = "GET", formData, body }
81
81
  export {
82
82
  makeHappoAPIRequest
83
83
  };
84
- //# sourceMappingURL=chunk-JJOM7NVS.js.map
84
+ //# sourceMappingURL=chunk-2CCKQG4B.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
4
 
5
5
  // src/network/startJob.ts
6
6
  function assertResultIsStartJobResult(result) {
@@ -36,4 +36,4 @@ async function startJob(config, { beforeSha, afterSha, link, message }, logger)
36
36
  export {
37
37
  startJob
38
38
  };
39
- //# sourceMappingURL=chunk-AJQL27KK.js.map
39
+ //# sourceMappingURL=chunk-5GCRDC6E.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
4
  import {
5
5
  ErrorWithStatusCode
6
- } from "./chunk-WUYZIKHR.js";
6
+ } from "./chunk-LGXU3JNM.js";
7
7
 
8
8
  // src/network/cancelJob.ts
9
9
  async function cancelJob(status, message, config, { beforeSha, afterSha, link }, logger) {
@@ -43,4 +43,4 @@ async function cancelJob(status, message, config, { beforeSha, afterSha, link },
43
43
  export {
44
44
  cancelJob
45
45
  };
46
- //# sourceMappingURL=chunk-V2ULNFYX.js.map
46
+ //# sourceMappingURL=chunk-BJXCKTWI.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "./chunk-KTUIEOPK.js";
3
+ } from "./chunk-Z32R7CJB.js";
4
4
 
5
5
  // src/network/fetchWithRetry.ts
6
6
  import asyncRetry from "async-retry";
@@ -95,4 +95,4 @@ export {
95
95
  ErrorWithStatusCode,
96
96
  fetchWithRetry
97
97
  };
98
- //# sourceMappingURL=chunk-WUYZIKHR.js.map
98
+ //# sourceMappingURL=chunk-LGXU3JNM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
4
 
5
5
  // src/network/createAsyncComparison.ts
6
6
  function assertResultIsCreateAsyncComparisonResult(result) {
@@ -60,4 +60,4 @@ async function createAsyncComparison(config, {
60
60
  export {
61
61
  createAsyncComparison
62
62
  };
63
- //# sourceMappingURL=chunk-JIRDD3RO.js.map
63
+ //# sourceMappingURL=chunk-P4CGDKZS.js.map
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "happo",
4
- version: "6.10.0",
4
+ version: "6.10.2",
5
5
  description: "Catch unexpected visual and accessibility changes and UI bugs",
6
6
  license: "MIT",
7
7
  repository: {
@@ -188,4 +188,4 @@ var package_default = {
188
188
  export {
189
189
  package_default
190
190
  };
191
- //# sourceMappingURL=chunk-KTUIEOPK.js.map
191
+ //# sourceMappingURL=chunk-Z32R7CJB.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../package.json"],
4
- "sourcesContent": ["{\n \"name\": \"happo\",\n \"version\": \"6.10.0\",\n \"description\": \"Catch unexpected visual and accessibility changes and UI bugs\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/happo/happo.git\"\n },\n \"bugs\": \"https://github.com/happo/happo/issues\",\n \"homepage\": \"https://happo.io\",\n \"bin\": {\n \"happo\": \"dist/cli/main.js\"\n },\n \"type\": \"module\",\n \"main\": \"./dist/config/index.js\",\n \"types\": \"./dist/config/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/config/index.d.ts\",\n \"default\": \"./dist/config/index.js\"\n },\n \"./cypress\": {\n \"types\": \"./dist/cypress/index.d.ts\",\n \"default\": \"./dist/cypress/index.js\"\n },\n \"./cypress/task\": {\n \"types\": \"./dist/cypress/task.d.ts\",\n \"default\": \"./dist/cypress/task.js\"\n },\n \"./playwright\": {\n \"types\": \"./dist/playwright/index.d.ts\",\n \"default\": \"./dist/playwright/index.js\"\n },\n \"./custom\": {\n \"types\": \"./dist/custom/index.d.ts\",\n \"default\": \"./dist/custom/index.js\"\n },\n \"./storybook/addon\": {\n \"types\": \"./dist/storybook/browser/addon.d.ts\",\n \"default\": \"./dist/storybook/browser/addon.js\"\n },\n \"./storybook/decorator\": {\n \"types\": \"./dist/storybook/browser/decorator.d.ts\",\n \"default\": \"./dist/storybook/browser/decorator.js\"\n },\n \"./storybook/preset\": {\n \"types\": \"./dist/storybook/preset.d.ts\",\n \"default\": \"./dist/storybook/preset.js\"\n },\n \"./storybook/register\": {\n \"types\": \"./dist/storybook/browser/register.d.ts\",\n \"default\": \"./dist/storybook/browser/register.js\"\n }\n },\n \"files\": [\n \"dist\",\n \"preset.js\"\n ],\n \"scripts\": {\n \"all\": \"node ./scripts/allchecks.ts\",\n \"build\": \"pnpm build:types && pnpm build:dist\",\n \"build:custom\": \"esbuild src/custom/__happo__/index.ts --bundle --format=iife --global-name=happoCustom --outfile=tmp/happo-custom/bundle.js --platform=browser --target=esnext\",\n \"build:dist\": \"node ./scripts/build.ts\",\n \"build:types\": \"pnpm tsc --pretty\",\n \"build:watch\": \"tsc --build --watch\",\n \"clean\": \"node ./scripts/clean.ts\",\n \"lint\": \"eslint .\",\n \"prepublishOnly\": \"pnpm clean && pnpm build\",\n \"storybook:dev\": \"storybook dev --config-dir src/storybook/__tests__/storybook-app -p ${PORT:-6007}\",\n \"test\": \"node --env-file-if-exists=.env.local ./scripts/test.ts\",\n \"test:custom\": \"pnpm build:dist && pnpm build:custom && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.custom.config.ts\",\n \"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\",\n \"test:cypress:open\": \"cypress open -C src/cypress/__cypress__/cypress.config.ts\",\n \"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\",\n \"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\",\n \"test:storybook\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts\",\n \"test:storybook:skipped\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts --project storybook-skipped --skip \\\"$(node ./scripts/getSkip.ts)\\\"\",\n \"test:storybook:only\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts --project storybook-only --only \\\"$(node ./scripts/getOnly.ts)\\\"\",\n \"test:pages\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.pages.config.ts\",\n \"release\": \"set -a && source .env && set +a && release-with-ease\",\n \"tsc\": \"tsc --build tsconfig.json\"\n },\n \"browserslist\": {\n \"node\": [\n \"node 22\"\n ],\n \"browser\": [\n \"last 2 Chrome major versions\",\n \"last 2 Firefox major versions\",\n \"last 2 Safari major versions\",\n \"last 2 Edge major versions\"\n ],\n \"isomorphic\": [\n \"node 22\",\n \"last 2 Chrome major versions\",\n \"last 2 Firefox major versions\",\n \"last 2 Safari major versions\",\n \"last 2 Edge major versions\"\n ]\n },\n \"prettier\": {\n \"printWidth\": 85,\n \"singleQuote\": true,\n \"trailingComma\": \"all\",\n \"arrowParens\": \"always\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^10.0.1\",\n \"@playwright/test\": \"^1.55.1\",\n \"@reporters/github\": \"^1.11.0\",\n \"@storybook/builder-vite\": \"^10.0.1\",\n \"@storybook/react-vite\": \"^10.0.1\",\n \"@types/async-retry\": \"^1.4.9\",\n \"@types/base64-stream\": \"^1.0.5\",\n \"@types/jsdom\": \"^28.0.0\",\n \"@types/mime-types\": \"^3.0.1\",\n \"@types/multiparty\": \"^4.2.1\",\n \"@types/node\": \"^24.9.1\",\n \"@types/react\": \"^19.2.0\",\n \"@types/react-dom\": \"^19.2.0\",\n \"cypress\": \"^15.5.0\",\n \"esbuild\": \"^0.28.0\",\n \"eslint\": \"^10.0.2\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-compat\": \"^7.0.1\",\n \"eslint-plugin-depend\": \"^1.4.0\",\n \"eslint-plugin-simple-import-sort\": \"^12.1.1\",\n \"eslint-plugin-unicorn\": \"^64.0.0\",\n \"jiti\": \"^2.6.1\",\n \"jsdom\": \"^29.0.0\",\n \"multiparty\": \"^4.2.3\",\n \"prettier\": \"^3.6.2\",\n \"react\": \"^19.2.0\",\n \"react-dom\": \"^19.2.0\",\n \"react-error-boundary\": \"^6.0.0\",\n \"storybook\": \"^10.0.1\",\n \"typescript\": \"^6.0.2\",\n \"release-with-ease\": \"^2.1.0\",\n \"typescript-eslint\": \"^8.57.2\"\n },\n \"dependencies\": {\n \"async-retry\": \"^1.3.3\",\n \"base64-stream\": \"^1.0.0\",\n \"empathic\": \"^2.0.0\",\n \"fflate\": \"^0.8.2\",\n \"jose\": \"^6.1.0\",\n \"limit-concur\": \"^4.0.0\",\n \"mime-types\": \"^3.0.1\",\n \"srcset\": \"^5.0.2\"\n },\n \"storybook\": {\n \"displayName\": \"Happo\",\n \"icon\": \"https://happo.io/static/happo-hippo.png\",\n \"supportedFrameworks\": [\n \"angular\",\n \"ember\",\n \"html\",\n \"preact\",\n \"react\",\n \"react-native\",\n \"svelte\",\n \"vue\",\n \"web-components\"\n ],\n \"unsupportedFrameworks\": []\n },\n \"keywords\": [\n \"storybook-addon\",\n \"accessibility\",\n \"cypress\",\n \"playwright\",\n \"regression\",\n \"storybook\",\n \"test\",\n \"testing\",\n \"ui\",\n \"visual-regression\",\n \"visual\",\n \"vrt\"\n ],\n \"engines\": {\n \"node\": \"^22.18.0 || ^23.6.0 || >=24.0.0\"\n }\n}\n"],
4
+ "sourcesContent": ["{\n \"name\": \"happo\",\n \"version\": \"6.10.2\",\n \"description\": \"Catch unexpected visual and accessibility changes and UI bugs\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/happo/happo.git\"\n },\n \"bugs\": \"https://github.com/happo/happo/issues\",\n \"homepage\": \"https://happo.io\",\n \"bin\": {\n \"happo\": \"dist/cli/main.js\"\n },\n \"type\": \"module\",\n \"main\": \"./dist/config/index.js\",\n \"types\": \"./dist/config/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/config/index.d.ts\",\n \"default\": \"./dist/config/index.js\"\n },\n \"./cypress\": {\n \"types\": \"./dist/cypress/index.d.ts\",\n \"default\": \"./dist/cypress/index.js\"\n },\n \"./cypress/task\": {\n \"types\": \"./dist/cypress/task.d.ts\",\n \"default\": \"./dist/cypress/task.js\"\n },\n \"./playwright\": {\n \"types\": \"./dist/playwright/index.d.ts\",\n \"default\": \"./dist/playwright/index.js\"\n },\n \"./custom\": {\n \"types\": \"./dist/custom/index.d.ts\",\n \"default\": \"./dist/custom/index.js\"\n },\n \"./storybook/addon\": {\n \"types\": \"./dist/storybook/browser/addon.d.ts\",\n \"default\": \"./dist/storybook/browser/addon.js\"\n },\n \"./storybook/decorator\": {\n \"types\": \"./dist/storybook/browser/decorator.d.ts\",\n \"default\": \"./dist/storybook/browser/decorator.js\"\n },\n \"./storybook/preset\": {\n \"types\": \"./dist/storybook/preset.d.ts\",\n \"default\": \"./dist/storybook/preset.js\"\n },\n \"./storybook/register\": {\n \"types\": \"./dist/storybook/browser/register.d.ts\",\n \"default\": \"./dist/storybook/browser/register.js\"\n }\n },\n \"files\": [\n \"dist\",\n \"preset.js\"\n ],\n \"scripts\": {\n \"all\": \"node ./scripts/allchecks.ts\",\n \"build\": \"pnpm build:types && pnpm build:dist\",\n \"build:custom\": \"esbuild src/custom/__happo__/index.ts --bundle --format=iife --global-name=happoCustom --outfile=tmp/happo-custom/bundle.js --platform=browser --target=esnext\",\n \"build:dist\": \"node ./scripts/build.ts\",\n \"build:types\": \"pnpm tsc --pretty\",\n \"build:watch\": \"tsc --build --watch\",\n \"clean\": \"node ./scripts/clean.ts\",\n \"lint\": \"eslint .\",\n \"prepublishOnly\": \"pnpm clean && pnpm build\",\n \"storybook:dev\": \"storybook dev --config-dir src/storybook/__tests__/storybook-app -p ${PORT:-6007}\",\n \"test\": \"node --env-file-if-exists=.env.local ./scripts/test.ts\",\n \"test:custom\": \"pnpm build:dist && pnpm build:custom && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.custom.config.ts\",\n \"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\",\n \"test:cypress:open\": \"cypress open -C src/cypress/__cypress__/cypress.config.ts\",\n \"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\",\n \"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\",\n \"test:storybook\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts\",\n \"test:storybook:skipped\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts --project storybook-skipped --skip \\\"$(node ./scripts/getSkip.ts)\\\"\",\n \"test:storybook:only\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts --project storybook-only --only \\\"$(node ./scripts/getOnly.ts)\\\"\",\n \"test:pages\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.pages.config.ts\",\n \"release\": \"set -a && source .env && set +a && release-with-ease\",\n \"tsc\": \"tsc --build tsconfig.json\"\n },\n \"browserslist\": {\n \"node\": [\n \"node 22\"\n ],\n \"browser\": [\n \"last 2 Chrome major versions\",\n \"last 2 Firefox major versions\",\n \"last 2 Safari major versions\",\n \"last 2 Edge major versions\"\n ],\n \"isomorphic\": [\n \"node 22\",\n \"last 2 Chrome major versions\",\n \"last 2 Firefox major versions\",\n \"last 2 Safari major versions\",\n \"last 2 Edge major versions\"\n ]\n },\n \"prettier\": {\n \"printWidth\": 85,\n \"singleQuote\": true,\n \"trailingComma\": \"all\",\n \"arrowParens\": \"always\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^10.0.1\",\n \"@playwright/test\": \"^1.55.1\",\n \"@reporters/github\": \"^1.11.0\",\n \"@storybook/builder-vite\": \"^10.0.1\",\n \"@storybook/react-vite\": \"^10.0.1\",\n \"@types/async-retry\": \"^1.4.9\",\n \"@types/base64-stream\": \"^1.0.5\",\n \"@types/jsdom\": \"^28.0.0\",\n \"@types/mime-types\": \"^3.0.1\",\n \"@types/multiparty\": \"^4.2.1\",\n \"@types/node\": \"^24.9.1\",\n \"@types/react\": \"^19.2.0\",\n \"@types/react-dom\": \"^19.2.0\",\n \"cypress\": \"^15.5.0\",\n \"esbuild\": \"^0.28.0\",\n \"eslint\": \"^10.0.2\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-compat\": \"^7.0.1\",\n \"eslint-plugin-depend\": \"^1.4.0\",\n \"eslint-plugin-simple-import-sort\": \"^12.1.1\",\n \"eslint-plugin-unicorn\": \"^64.0.0\",\n \"jiti\": \"^2.6.1\",\n \"jsdom\": \"^29.0.0\",\n \"multiparty\": \"^4.2.3\",\n \"prettier\": \"^3.6.2\",\n \"react\": \"^19.2.0\",\n \"react-dom\": \"^19.2.0\",\n \"react-error-boundary\": \"^6.0.0\",\n \"storybook\": \"^10.0.1\",\n \"typescript\": \"^6.0.2\",\n \"release-with-ease\": \"^2.1.0\",\n \"typescript-eslint\": \"^8.57.2\"\n },\n \"dependencies\": {\n \"async-retry\": \"^1.3.3\",\n \"base64-stream\": \"^1.0.0\",\n \"empathic\": \"^2.0.0\",\n \"fflate\": \"^0.8.2\",\n \"jose\": \"^6.1.0\",\n \"limit-concur\": \"^4.0.0\",\n \"mime-types\": \"^3.0.1\",\n \"srcset\": \"^5.0.2\"\n },\n \"storybook\": {\n \"displayName\": \"Happo\",\n \"icon\": \"https://happo.io/static/happo-hippo.png\",\n \"supportedFrameworks\": [\n \"angular\",\n \"ember\",\n \"html\",\n \"preact\",\n \"react\",\n \"react-native\",\n \"svelte\",\n \"vue\",\n \"web-components\"\n ],\n \"unsupportedFrameworks\": []\n },\n \"keywords\": [\n \"storybook-addon\",\n \"accessibility\",\n \"cypress\",\n \"playwright\",\n \"regression\",\n \"storybook\",\n \"test\",\n \"testing\",\n \"ui\",\n \"visual-regression\",\n \"visual\",\n \"vrt\"\n ],\n \"engines\": {\n \"node\": \"^22.18.0 || ^23.6.0 || >=24.0.0\"\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,10 @@
1
+ import {
2
+ createAsyncComparison
3
+ } from "./chunk-P4CGDKZS.js";
4
+ import "./chunk-2CCKQG4B.js";
5
+ import "./chunk-LGXU3JNM.js";
6
+ import "./chunk-Z32R7CJB.js";
7
+ export {
8
+ createAsyncComparison as default
9
+ };
10
+ //# sourceMappingURL=createAsyncComparison-P277GZ47.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
4
- import "./chunk-WUYZIKHR.js";
5
- import "./chunk-KTUIEOPK.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
+ import "./chunk-LGXU3JNM.js";
5
+ import "./chunk-Z32R7CJB.js";
6
6
 
7
7
  // src/network/createAsyncReport.ts
8
8
  function assertResultIsCreateAsyncReportResult(result) {
@@ -38,4 +38,4 @@ async function createAsyncReport(snapRequestIds, config, { afterSha, link, messa
38
38
  export {
39
39
  createAsyncReport as default
40
40
  };
41
- //# sourceMappingURL=createAsyncReport-QFCSVMAO.js.map
41
+ //# sourceMappingURL=createAsyncReport-4XB6OU6P.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
4
- import "./chunk-WUYZIKHR.js";
5
- import "./chunk-KTUIEOPK.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
+ import "./chunk-LGXU3JNM.js";
5
+ import "./chunk-Z32R7CJB.js";
6
6
 
7
7
  // src/network/createExtendsReportSnapRequest.ts
8
8
  async function createExtendsReportSnapRequest(extendsSha, skip, config) {
@@ -29,4 +29,4 @@ async function createExtendsReportSnapRequest(extendsSha, skip, config) {
29
29
  export {
30
30
  createExtendsReportSnapRequest as default
31
31
  };
32
- //# sourceMappingURL=createExtendsReportSnapRequest-X2DLPLP5.js.map
32
+ //# sourceMappingURL=createExtendsReportSnapRequest-L2XBZPJ3.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
4
- import "./chunk-WUYZIKHR.js";
5
- import "./chunk-KTUIEOPK.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
+ import "./chunk-LGXU3JNM.js";
5
+ import "./chunk-Z32R7CJB.js";
6
6
 
7
7
  // src/network/findBaselineReport.ts
8
8
  async function findBaselineReport(environment, config, logger) {
@@ -33,4 +33,4 @@ async function findBaselineReport(environment, config, logger) {
33
33
  export {
34
34
  findBaselineReport as default
35
35
  };
36
- //# sourceMappingURL=findBaselineReport-N4AUOVXP.js.map
36
+ //# sourceMappingURL=findBaselineReport-K4JN4ZMB.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-JJOM7NVS.js";
4
- import "./chunk-WUYZIKHR.js";
5
- import "./chunk-KTUIEOPK.js";
3
+ } from "./chunk-2CCKQG4B.js";
4
+ import "./chunk-LGXU3JNM.js";
5
+ import "./chunk-Z32R7CJB.js";
6
6
 
7
7
  // src/network/getFlakes.ts
8
8
  function formatFlakeOutput(flakes) {
@@ -70,4 +70,4 @@ export {
70
70
  getFlakes as default,
71
71
  formatFlakeOutput
72
72
  };
73
- //# sourceMappingURL=getFlakes-M2LSXSTW.js.map
73
+ //# sourceMappingURL=getFlakes-6GNOYD2U.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,wBAAwB,CAAC;AA2MzE,wBAAsB,IAAI,CACxB,OAAO,GAAE,KAAK,CAAC,MAAM,CAAgB,EACrC,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Gf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,wBAAwB,CAAC;AA8MzE,wBAAsB,IAAI,CACxB,OAAO,GAAE,KAAK,CAAC,MAAM,CAAgB,EACrC,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAkHf"}
package/dist/cli/main.js CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-ML3Z5Z22.js";
8
8
  import {
9
9
  fetchWithRetry
10
- } from "./chunk-WUYZIKHR.js";
10
+ } from "./chunk-LGXU3JNM.js";
11
11
  import {
12
12
  package_default
13
- } from "./chunk-KTUIEOPK.js";
13
+ } from "./chunk-Z32R7CJB.js";
14
14
 
15
15
  // src/cli/index.ts
16
16
  import path3 from "node:path";
@@ -923,6 +923,9 @@ var parseOptions = {
923
923
  skip: {
924
924
  type: "string"
925
925
  },
926
+ skippedExamples: {
927
+ type: "string"
928
+ },
926
929
  only: {
927
930
  type: "string"
928
931
  }
@@ -1222,7 +1225,7 @@ function createReporter(opts = {}) {
1222
1225
 
1223
1226
  // src/cli/index.ts
1224
1227
  async function getVersion() {
1225
- const packageJson = await import("./package-3UUMFV7J.js");
1228
+ const packageJson = await import("./package-UABOUH2S.js");
1226
1229
  return packageJson.default.version;
1227
1230
  }
1228
1231
  function parseDashdashCommandParts(rawArgs) {
@@ -1317,6 +1320,9 @@ Options:
1317
1320
  --skip <json> JSON array of {component, variant} objects to skip in this run and borrow from the nearest baseline report instead
1318
1321
  --only <json> JSON array of {component} or {storyFile} objects to include in this run (all other stories are skipped); only supported for the Storybook integration
1319
1322
 
1323
+ Finalize command options:
1324
+ --skippedExamples <json> JSON array of {component, variant, target} objects to skip when finalizing; borrowed from the nearest baseline report
1325
+
1320
1326
  Flake command options:
1321
1327
  --allProjects List flakes across all projects (default: current project)
1322
1328
  --format <format> Output format for flake command (default: "human", use "json" for raw output)
@@ -1349,7 +1355,7 @@ Examples:
1349
1355
 
1350
1356
  happo finalize
1351
1357
  happo finalize --nonce my-unique-nonce
1352
- happo finalize --skip '[{"component":"Button","variant":"primary","target":"chrome"}]'
1358
+ happo finalize --skippedExamples '[{"component":"Button","variant":"primary","target":"chrome"}]'
1353
1359
 
1354
1360
  happo flake
1355
1361
  happo flake --allProjects
@@ -1434,7 +1440,8 @@ async function main(rawArgs = process.argv, logger = console) {
1434
1440
  return;
1435
1441
  }
1436
1442
  if (command === "finalize") {
1437
- await handleFinalizeCommand(config, environment, logger);
1443
+ const finalizeEnvironment = args.values.skippedExamples ? { ...environment, skip: args.values.skippedExamples } : environment;
1444
+ await handleFinalizeCommand(config, finalizeEnvironment, logger);
1438
1445
  return;
1439
1446
  }
1440
1447
  if (command === "flake") {
@@ -1488,10 +1495,10 @@ async function main(rawArgs = process.argv, logger = console) {
1488
1495
  async function handleDefaultCommand(config, environment, logger) {
1489
1496
  logger.log("Running happo tests...");
1490
1497
  const [startJob, createAsyncComparison, createAsyncReport, prepareSnapRequests] = await Promise.all([
1491
- (await import("./startJob-JAVHOIR6.js")).default,
1492
- (await import("./createAsyncComparison-D525PJCA.js")).default,
1493
- (await import("./createAsyncReport-QFCSVMAO.js")).default,
1494
- (await import("./prepareSnapRequests-RINWFSWA.js")).default
1498
+ (await import("./startJob-TUFOU2O5.js")).default,
1499
+ (await import("./createAsyncComparison-P277GZ47.js")).default,
1500
+ (await import("./createAsyncReport-4XB6OU6P.js")).default,
1501
+ (await import("./prepareSnapRequests-KMVRPKIT.js")).default
1495
1502
  ]);
1496
1503
  await startJob(config, environment, logger);
1497
1504
  try {
@@ -1523,7 +1530,7 @@ async function handleDefaultCommand(config, environment, logger) {
1523
1530
  process.exitCode = 1;
1524
1531
  return;
1525
1532
  }
1526
- const findBaselineReport = (await import("./findBaselineReport-N4AUOVXP.js")).default;
1533
+ const findBaselineReport = (await import("./findBaselineReport-K4JN4ZMB.js")).default;
1527
1534
  baselineSha = await findBaselineReport(environment, config, logger);
1528
1535
  if (!baselineSha) {
1529
1536
  logger.log(
@@ -1552,7 +1559,7 @@ async function handleDefaultCommand(config, environment, logger) {
1552
1559
  return;
1553
1560
  }
1554
1561
  if (!baselineSha) {
1555
- const findBaselineReport = (await import("./findBaselineReport-N4AUOVXP.js")).default;
1562
+ const findBaselineReport = (await import("./findBaselineReport-K4JN4ZMB.js")).default;
1556
1563
  baselineSha = await findBaselineReport(environment, config, logger);
1557
1564
  if (!baselineSha) {
1558
1565
  logger.log(
@@ -1564,7 +1571,7 @@ async function handleDefaultCommand(config, environment, logger) {
1564
1571
  const { snapRequestIds, resolvedSkip } = await prepareSnapRequests(config, skip, only);
1565
1572
  let allSnapRequestIds = snapRequestIds;
1566
1573
  if (skip && baselineSha) {
1567
- const createExtendsReportSnapRequest = (await import("./createExtendsReportSnapRequest-X2DLPLP5.js")).default;
1574
+ const createExtendsReportSnapRequest = (await import("./createExtendsReportSnapRequest-L2XBZPJ3.js")).default;
1568
1575
  const extendsRequestId = await createExtendsReportSnapRequest(
1569
1576
  baselineSha,
1570
1577
  resolvedSkip ?? skip,
@@ -1572,7 +1579,7 @@ async function handleDefaultCommand(config, environment, logger) {
1572
1579
  );
1573
1580
  allSnapRequestIds = [...snapRequestIds, extendsRequestId];
1574
1581
  } else if (only && baselineSha && resolvedSkip && resolvedSkip.length > 0) {
1575
- const createExtendsReportSnapRequest = (await import("./createExtendsReportSnapRequest-X2DLPLP5.js")).default;
1582
+ const createExtendsReportSnapRequest = (await import("./createExtendsReportSnapRequest-L2XBZPJ3.js")).default;
1576
1583
  const extendsRequestId = await createExtendsReportSnapRequest(
1577
1584
  baselineSha,
1578
1585
  resolvedSkip,
@@ -1608,7 +1615,7 @@ async function handleDefaultCommand(config, environment, logger) {
1608
1615
  } catch (e) {
1609
1616
  const message = e instanceof Error ? e.message : String(e);
1610
1617
  logger.error(`${config.integration.type} run failed: ${message}`, e);
1611
- const cancelJob = (await import("./cancelJob-PHMDAIJB.js")).default;
1618
+ const cancelJob = (await import("./cancelJob-DQ3TD7VC.js")).default;
1612
1619
  await cancelJob("failure", message, config, environment, logger);
1613
1620
  process.exitCode = 1;
1614
1621
  return;
@@ -1619,7 +1626,7 @@ async function handleFinalizeCommand(config, environment, logger) {
1619
1626
  logger.log("Config:", config);
1620
1627
  logger.log("Environment:", environment);
1621
1628
  try {
1622
- const finalizeAll = (await import("./wrapper-YYNZLEMW.js")).finalizeAll;
1629
+ const finalizeAll = (await import("./wrapper-XUOTVPDW.js")).finalizeAll;
1623
1630
  await finalizeAll({ happoConfig: config, environment, logger });
1624
1631
  } catch (e) {
1625
1632
  logger.error(e instanceof Error ? e.message : String(e), e);
@@ -1647,7 +1654,7 @@ async function handleFlakeCommand(config, {
1647
1654
  process.exitCode = 1;
1648
1655
  return;
1649
1656
  }
1650
- const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-M2LSXSTW.js");
1657
+ const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-6GNOYD2U.js");
1651
1658
  const project = allProjects ? void 0 : projectOverride ?? config.project;
1652
1659
  const flakes = await getFlakes(
1653
1660
  {
@@ -1689,7 +1696,7 @@ async function handleE2ECommand(config, environment, dashdashCommandParts, confi
1689
1696
  logger.log("Config:", config);
1690
1697
  logger.log("Environment:", environment);
1691
1698
  logger.log("Dashdash command parts:", dashdashCommandParts);
1692
- const runWithWrapper = (await import("./wrapper-YYNZLEMW.js")).default;
1699
+ const runWithWrapper = (await import("./wrapper-XUOTVPDW.js")).default;
1693
1700
  const exitCode = await runWithWrapper(
1694
1701
  dashdashCommandParts,
1695
1702
  config,