happo 6.3.1 → 6.3.3

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 (40) hide show
  1. package/dist/cli/cancelJob-JYPGGQOF.js +10 -0
  2. package/dist/cli/{chunk-VGC6VLFX.js → chunk-7GGKMO73.js} +2 -2
  3. package/dist/cli/{chunk-VGC6VLFX.js.map → chunk-7GGKMO73.js.map} +1 -1
  4. package/dist/cli/{chunk-HAOW7OPC.js → chunk-EFADKLOS.js} +2 -2
  5. package/dist/cli/{chunk-AQSWKKBJ.js → chunk-HCCR7LII.js} +2 -2
  6. package/dist/cli/{chunk-VRKXLPSQ.js → chunk-N5JA5TL4.js} +3 -3
  7. package/dist/cli/{chunk-H4SN6WPV.js → chunk-PAR4AAZF.js} +2 -2
  8. package/dist/cli/{chunk-WFRUGXXQ.js → chunk-UYPVGDDM.js} +2 -2
  9. package/dist/cli/createAsyncComparison-OM4RCCP7.js +10 -0
  10. package/dist/cli/{createAsyncReport-5E3IWVZX.js → createAsyncReport-2JVTIVAS.js} +4 -4
  11. package/dist/cli/{getFlakes-ITQLVM5D.js → getFlakes-4WW45S3F.js} +4 -4
  12. package/dist/cli/main.js +75 -22
  13. package/dist/cli/main.js.map +2 -2
  14. package/dist/cli/package-IMEAGR5I.js +7 -0
  15. package/dist/cli/{prepareSnapRequests-O2FC3E2P.js → prepareSnapRequests-KLZQ4U6E.js} +4 -4
  16. package/dist/cli/startJob-7FN6WAXU.js +10 -0
  17. package/dist/cli/{wrapper-ZQOATRO2.js → wrapper-FBG7WHH4.js} +7 -7
  18. package/dist/cypress/task.js +1 -1
  19. package/dist/cypress/task.js.map +1 -1
  20. package/dist/environment/index.d.ts.map +1 -1
  21. package/dist/playwright/index.js +1 -1
  22. package/dist/playwright/index.js.map +1 -1
  23. package/package.json +1 -1
  24. package/dist/cli/cancelJob-6YMRZKZ6.js +0 -10
  25. package/dist/cli/createAsyncComparison-O4TTQSO6.js +0 -10
  26. package/dist/cli/package-BZTLWVDW.js +0 -7
  27. package/dist/cli/startJob-5JOX4R4S.js +0 -10
  28. /package/dist/cli/{cancelJob-6YMRZKZ6.js.map → cancelJob-JYPGGQOF.js.map} +0 -0
  29. /package/dist/cli/{chunk-HAOW7OPC.js.map → chunk-EFADKLOS.js.map} +0 -0
  30. /package/dist/cli/{chunk-AQSWKKBJ.js.map → chunk-HCCR7LII.js.map} +0 -0
  31. /package/dist/cli/{chunk-VRKXLPSQ.js.map → chunk-N5JA5TL4.js.map} +0 -0
  32. /package/dist/cli/{chunk-H4SN6WPV.js.map → chunk-PAR4AAZF.js.map} +0 -0
  33. /package/dist/cli/{chunk-WFRUGXXQ.js.map → chunk-UYPVGDDM.js.map} +0 -0
  34. /package/dist/cli/{createAsyncComparison-O4TTQSO6.js.map → createAsyncComparison-OM4RCCP7.js.map} +0 -0
  35. /package/dist/cli/{createAsyncReport-5E3IWVZX.js.map → createAsyncReport-2JVTIVAS.js.map} +0 -0
  36. /package/dist/cli/{getFlakes-ITQLVM5D.js.map → getFlakes-4WW45S3F.js.map} +0 -0
  37. /package/dist/cli/{package-BZTLWVDW.js.map → package-IMEAGR5I.js.map} +0 -0
  38. /package/dist/cli/{prepareSnapRequests-O2FC3E2P.js.map → prepareSnapRequests-KLZQ4U6E.js.map} +0 -0
  39. /package/dist/cli/{startJob-5JOX4R4S.js.map → startJob-7FN6WAXU.js.map} +0 -0
  40. /package/dist/cli/{wrapper-ZQOATRO2.js.map → wrapper-FBG7WHH4.js.map} +0 -0
@@ -0,0 +1,10 @@
1
+ import {
2
+ cancelJob
3
+ } from "./chunk-N5JA5TL4.js";
4
+ import "./chunk-UYPVGDDM.js";
5
+ import "./chunk-PAR4AAZF.js";
6
+ import "./chunk-7GGKMO73.js";
7
+ export {
8
+ cancelJob as default
9
+ };
10
+ //# sourceMappingURL=cancelJob-JYPGGQOF.js.map
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "happo",
4
- version: "6.3.1",
4
+ version: "6.3.3",
5
5
  description: "Catch unexpected visual and accessibility changes and UI bugs",
6
6
  license: "MIT",
7
7
  repository: {
@@ -185,4 +185,4 @@ var package_default = {
185
185
  export {
186
186
  package_default
187
187
  };
188
- //# sourceMappingURL=chunk-VGC6VLFX.js.map
188
+ //# sourceMappingURL=chunk-7GGKMO73.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.3.1\",\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\": \"./scripts/build.ts\",\n \"build:types\": \"pnpm tsc --pretty\",\n \"build:watch\": \"tsc --build --watch\",\n \"clean\": \"rm -rf dist tmp/tsc tmp/happo-custom\",\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:storybook\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.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 \"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\": \"^9.36.0\",\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\": \"^27.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 \"@types/serve-handler\": \"^6.1.4\",\n \"cypress\": \"^15.5.0\",\n \"esbuild\": \"^0.27.0\",\n \"eslint\": \"^9.36.0\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-compat\": \"^6.0.2\",\n \"eslint-plugin-depend\": \"^1.3.1\",\n \"eslint-plugin-simple-import-sort\": \"^12.1.1\",\n \"eslint-plugin-unicorn\": \"^63.0.0\",\n \"jiti\": \"^2.6.0\",\n \"jsdom\": \"^28.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 \"serve-handler\": \"^6.1.6\",\n \"storybook\": \"^10.0.1\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.44.1\"\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.3.3\",\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\": \"./scripts/build.ts\",\n \"build:types\": \"pnpm tsc --pretty\",\n \"build:watch\": \"tsc --build --watch\",\n \"clean\": \"rm -rf dist tmp/tsc tmp/happo-custom\",\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:storybook\": \"pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.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 \"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\": \"^9.36.0\",\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\": \"^27.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 \"@types/serve-handler\": \"^6.1.4\",\n \"cypress\": \"^15.5.0\",\n \"esbuild\": \"^0.27.0\",\n \"eslint\": \"^9.36.0\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-compat\": \"^6.0.2\",\n \"eslint-plugin-depend\": \"^1.3.1\",\n \"eslint-plugin-simple-import-sort\": \"^12.1.1\",\n \"eslint-plugin-unicorn\": \"^63.0.0\",\n \"jiti\": \"^2.6.0\",\n \"jsdom\": \"^28.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 \"serve-handler\": \"^6.1.6\",\n \"storybook\": \"^10.0.1\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.44.1\"\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
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-WFRUGXXQ.js";
3
+ } from "./chunk-UYPVGDDM.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-HAOW7OPC.js.map
39
+ //# sourceMappingURL=chunk-EFADKLOS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-WFRUGXXQ.js";
3
+ } from "./chunk-UYPVGDDM.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-AQSWKKBJ.js.map
63
+ //# sourceMappingURL=chunk-HCCR7LII.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-WFRUGXXQ.js";
3
+ } from "./chunk-UYPVGDDM.js";
4
4
  import {
5
5
  ErrorWithStatusCode
6
- } from "./chunk-H4SN6WPV.js";
6
+ } from "./chunk-PAR4AAZF.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-VRKXLPSQ.js.map
46
+ //# sourceMappingURL=chunk-N5JA5TL4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "./chunk-VGC6VLFX.js";
3
+ } from "./chunk-7GGKMO73.js";
4
4
 
5
5
  // src/network/fetchWithRetry.ts
6
6
  import asyncRetry from "async-retry";
@@ -94,4 +94,4 @@ export {
94
94
  ErrorWithStatusCode,
95
95
  fetchWithRetry
96
96
  };
97
- //# sourceMappingURL=chunk-H4SN6WPV.js.map
97
+ //# sourceMappingURL=chunk-PAR4AAZF.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fetchWithRetry
3
- } from "./chunk-H4SN6WPV.js";
3
+ } from "./chunk-PAR4AAZF.js";
4
4
 
5
5
  // src/network/makeHappoAPIRequest.ts
6
6
  import { SignJWT } from "jose";
@@ -51,4 +51,4 @@ async function makeHappoAPIRequest({ url, path, method = "GET", formData, body }
51
51
  export {
52
52
  makeHappoAPIRequest
53
53
  };
54
- //# sourceMappingURL=chunk-WFRUGXXQ.js.map
54
+ //# sourceMappingURL=chunk-UYPVGDDM.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ createAsyncComparison
3
+ } from "./chunk-HCCR7LII.js";
4
+ import "./chunk-UYPVGDDM.js";
5
+ import "./chunk-PAR4AAZF.js";
6
+ import "./chunk-7GGKMO73.js";
7
+ export {
8
+ createAsyncComparison as default
9
+ };
10
+ //# sourceMappingURL=createAsyncComparison-OM4RCCP7.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-WFRUGXXQ.js";
4
- import "./chunk-H4SN6WPV.js";
5
- import "./chunk-VGC6VLFX.js";
3
+ } from "./chunk-UYPVGDDM.js";
4
+ import "./chunk-PAR4AAZF.js";
5
+ import "./chunk-7GGKMO73.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-5E3IWVZX.js.map
41
+ //# sourceMappingURL=createAsyncReport-2JVTIVAS.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-WFRUGXXQ.js";
4
- import "./chunk-H4SN6WPV.js";
5
- import "./chunk-VGC6VLFX.js";
3
+ } from "./chunk-UYPVGDDM.js";
4
+ import "./chunk-PAR4AAZF.js";
5
+ import "./chunk-7GGKMO73.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-ITQLVM5D.js.map
73
+ //# sourceMappingURL=getFlakes-4WW45S3F.js.map
package/dist/cli/main.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-JTRP4JVC.js";
5
5
  import {
6
6
  fetchWithRetry
7
- } from "./chunk-H4SN6WPV.js";
7
+ } from "./chunk-PAR4AAZF.js";
8
8
  import {
9
9
  package_default
10
- } from "./chunk-VGC6VLFX.js";
10
+ } from "./chunk-7GGKMO73.js";
11
11
 
12
12
  // src/cli/index.ts
13
13
  import path3 from "node:path";
@@ -369,6 +369,8 @@ async function loadConfigFile(configFilePath, environment, logger = console) {
369
369
  import { spawnSync } from "node:child_process";
370
370
  import crypto, { randomBytes } from "node:crypto";
371
371
  import { readFileSync } from "node:fs";
372
+ var NUMBER_OF_COMMITS_TO_FETCH = 50;
373
+ var FULL_SHA_REGEX = /^[a-f0-9]{40}$/i;
372
374
  var envKeys = [
373
375
  "BUILD_REPOSITORY_URI",
374
376
  "BUILD_SOURCEVERSION",
@@ -554,7 +556,53 @@ function resolveShaFromTagMatcher(tagMatcher) {
554
556
  }
555
557
  return commitRes.stdout.trim();
556
558
  }
557
- async function resolveBeforeSha(cliArgs, env, afterSha) {
559
+ function fetchMoreHistory(ref, numberOfCommitsToFetch) {
560
+ const fetchRes = spawnSync(
561
+ "git",
562
+ ["fetch", "origin", ref, `--depth=${numberOfCommitsToFetch}`],
563
+ {
564
+ encoding: "utf8"
565
+ }
566
+ );
567
+ const success = fetchRes.status === 0;
568
+ if (!success) {
569
+ console.error(
570
+ `[HAPPO] Failed to fetch more history (${numberOfCommitsToFetch} commits) for ${ref}. Error: ${fetchRes.stderr}`
571
+ );
572
+ }
573
+ return success;
574
+ }
575
+ function resolveMergeBase(baseRef, afterSha, debugMode, tryNumber = 1) {
576
+ const res = spawnSync("git", ["merge-base", baseRef, afterSha], {
577
+ encoding: "utf8"
578
+ });
579
+ if (res.status !== 0) {
580
+ if (FULL_SHA_REGEX.test(baseRef) && tryNumber <= 10) {
581
+ if (debugMode) {
582
+ console.error(
583
+ `[HAPPO] When resolving the merge base between ${baseRef} and ${afterSha}, we failed to resolve the merge base. We'll try fetching more history (${tryNumber * NUMBER_OF_COMMITS_TO_FETCH} commits) and resolving the merge base again.`
584
+ );
585
+ }
586
+ if (fetchMoreHistory(baseRef, tryNumber * NUMBER_OF_COMMITS_TO_FETCH)) {
587
+ return resolveMergeBase(baseRef, afterSha, debugMode, tryNumber + 1);
588
+ }
589
+ }
590
+ console.error(
591
+ `[HAPPO] Ignored error when resolving merge base between ${baseRef} and ${afterSha}: ${res.stderr}`
592
+ );
593
+ return void 0;
594
+ }
595
+ const mergeBase = res.stdout.split("\n")[0]?.trim();
596
+ if (!mergeBase) {
597
+ console.error(
598
+ `[HAPPO] git merge-base stdout is empty when resolving merge base between ${baseRef} and ${afterSha}. stdout: ${res.stdout}
599
+ stderr: ${res.stderr}`
600
+ );
601
+ return void 0;
602
+ }
603
+ return mergeBase;
604
+ }
605
+ async function resolveBeforeSha(cliArgs, env, afterSha, debugMode) {
558
606
  if (cliArgs.beforeSha) {
559
607
  return cliArgs.beforeSha;
560
608
  }
@@ -568,7 +616,19 @@ async function resolveBeforeSha(cliArgs, env, afterSha) {
568
616
  if (GITHUB_EVENT_PATH) {
569
617
  const ghEvent = await resolveGithubEvent(GITHUB_EVENT_PATH);
570
618
  if (ghEvent.pull_request) {
571
- return ghEvent.pull_request.base.sha;
619
+ const resolvedSha = resolveMergeBase(
620
+ ghEvent.pull_request.base.sha,
621
+ afterSha,
622
+ debugMode
623
+ );
624
+ if (resolvedSha) {
625
+ return resolvedSha;
626
+ } else {
627
+ console.error(
628
+ `[HAPPO] Failed to resolve merge base commit for GitHub event ${ghEvent.pull_request.base.sha} and ${afterSha}. Falling back to pull request base SHA.`
629
+ );
630
+ return ghEvent.pull_request.base.sha;
631
+ }
572
632
  }
573
633
  if (ghEvent.merge_group) {
574
634
  return ghEvent.merge_group.base_sha;
@@ -587,14 +647,7 @@ async function resolveBeforeSha(cliArgs, env, afterSha) {
587
647
  ].join("/");
588
648
  }
589
649
  const baseBranch = cliArgs.baseBranch || baseAzureBranch || "origin/main";
590
- const res = spawnSync("git", ["merge-base", baseBranch, afterSha], {
591
- encoding: "utf8"
592
- });
593
- if (res.status !== 0) {
594
- console.error(`[HAPPO] Ignored error when resolving base commit: ${res.stderr}`);
595
- return void 0;
596
- }
597
- return res.stdout.split("\n")[0];
650
+ return resolveMergeBase(baseBranch, afterSha, debugMode);
598
651
  }
599
652
  function getHeadShaWithLocalChanges() {
600
653
  const randomSha = randomBytes(20).toString("hex");
@@ -732,7 +785,7 @@ async function resolveEnvironment(cliArgs, env = process.env) {
732
785
  const realAfterSha = typeof afterSha === "string" ? afterSha : afterSha.headSha;
733
786
  const afterShaWithLocalChanges = typeof afterSha === "string" ? afterSha : afterSha.headShaWithLocalChanges;
734
787
  const [beforeSha, link, authorEmail, message] = await Promise.all([
735
- resolveBeforeSha(cliArgs, env, realAfterSha),
788
+ resolveBeforeSha(cliArgs, env, realAfterSha, debugMode),
736
789
  resolveLink(cliArgs, env),
737
790
  resolveAuthorEmail(cliArgs, env),
738
791
  // Resolve message with the SHA that includes local changes
@@ -1053,7 +1106,7 @@ function createReporter(opts = {}) {
1053
1106
 
1054
1107
  // src/cli/index.ts
1055
1108
  async function getVersion() {
1056
- const packageJson = await import("./package-BZTLWVDW.js");
1109
+ const packageJson = await import("./package-IMEAGR5I.js");
1057
1110
  return packageJson.default.version;
1058
1111
  }
1059
1112
  function parseDashdashCommandParts(rawArgs) {
@@ -1324,10 +1377,10 @@ async function main(rawArgs = process.argv, logger = console) {
1324
1377
  async function handleDefaultCommand(config, environment, logger) {
1325
1378
  logger.log("Running happo tests...");
1326
1379
  const [startJob, createAsyncComparison, createAsyncReport, prepareSnapRequests] = await Promise.all([
1327
- (await import("./startJob-5JOX4R4S.js")).default,
1328
- (await import("./createAsyncComparison-O4TTQSO6.js")).default,
1329
- (await import("./createAsyncReport-5E3IWVZX.js")).default,
1330
- (await import("./prepareSnapRequests-O2FC3E2P.js")).default
1380
+ (await import("./startJob-7FN6WAXU.js")).default,
1381
+ (await import("./createAsyncComparison-OM4RCCP7.js")).default,
1382
+ (await import("./createAsyncReport-2JVTIVAS.js")).default,
1383
+ (await import("./prepareSnapRequests-KLZQ4U6E.js")).default
1331
1384
  ]);
1332
1385
  await startJob(config, environment, logger);
1333
1386
  try {
@@ -1360,7 +1413,7 @@ async function handleDefaultCommand(config, environment, logger) {
1360
1413
  } catch (e) {
1361
1414
  const message = e instanceof Error ? e.message : String(e);
1362
1415
  logger.error(`${config.integration.type} run failed: ${message}`, e);
1363
- const cancelJob = (await import("./cancelJob-6YMRZKZ6.js")).default;
1416
+ const cancelJob = (await import("./cancelJob-JYPGGQOF.js")).default;
1364
1417
  await cancelJob("failure", message, config, environment, logger);
1365
1418
  process.exitCode = 1;
1366
1419
  return;
@@ -1371,7 +1424,7 @@ async function handleFinalizeCommand(config, environment, logger) {
1371
1424
  logger.log("Config:", config);
1372
1425
  logger.log("Environment:", environment);
1373
1426
  try {
1374
- const finalizeAll = (await import("./wrapper-ZQOATRO2.js")).finalizeAll;
1427
+ const finalizeAll = (await import("./wrapper-FBG7WHH4.js")).finalizeAll;
1375
1428
  await finalizeAll({ happoConfig: config, environment, logger });
1376
1429
  } catch (e) {
1377
1430
  logger.error(e instanceof Error ? e.message : String(e), e);
@@ -1399,7 +1452,7 @@ async function handleFlakeCommand(config, {
1399
1452
  process.exitCode = 1;
1400
1453
  return;
1401
1454
  }
1402
- const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-ITQLVM5D.js");
1455
+ const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-4WW45S3F.js");
1403
1456
  const project = allProjects ? void 0 : projectOverride ?? config.project;
1404
1457
  const flakes = await getFlakes(
1405
1458
  {
@@ -1441,7 +1494,7 @@ async function handleE2ECommand(config, environment, dashdashCommandParts, confi
1441
1494
  logger.log("Config:", config);
1442
1495
  logger.log("Environment:", environment);
1443
1496
  logger.log("Dashdash command parts:", dashdashCommandParts);
1444
- const runWithWrapper = (await import("./wrapper-ZQOATRO2.js")).default;
1497
+ const runWithWrapper = (await import("./wrapper-FBG7WHH4.js")).default;
1445
1498
  const exitCode = await runWithWrapper(
1446
1499
  dashdashCommandParts,
1447
1500
  config,