happo 6.3.2 → 6.3.4

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 (43) hide show
  1. package/dist/cli/cancelJob-2Y37DD62.js +10 -0
  2. package/dist/cli/{chunk-LETCVDIZ.js → chunk-4JWGHBWV.js} +3 -3
  3. package/dist/cli/{chunk-C3Z7VCFE.js → chunk-AGKX4YUW.js} +2 -2
  4. package/dist/cli/{chunk-C3Z7VCFE.js.map → chunk-AGKX4YUW.js.map} +1 -1
  5. package/dist/cli/{chunk-EZP6OELW.js → chunk-FGXBXADQ.js} +2 -2
  6. package/dist/cli/{chunk-BGIW7GAC.js → chunk-SDRGUIAT.js} +2 -2
  7. package/dist/cli/{chunk-2C2AJHJJ.js → chunk-SYK4EWJG.js} +2 -2
  8. package/dist/cli/{chunk-6LAI3ROJ.js → chunk-VCHPF5HT.js} +2 -2
  9. package/dist/cli/createAsyncComparison-4JNXSJPV.js +10 -0
  10. package/dist/cli/{createAsyncReport-V6FJPMF2.js → createAsyncReport-YG573QF4.js} +4 -4
  11. package/dist/cli/{getFlakes-RK6N2BJZ.js → getFlakes-HHKDRMUX.js} +4 -4
  12. package/dist/cli/main.js +51 -19
  13. package/dist/cli/main.js.map +2 -2
  14. package/dist/cli/package-2XZLNOYC.js +7 -0
  15. package/dist/cli/{prepareSnapRequests-UHPKHHWN.js → prepareSnapRequests-4MXQWKYB.js} +9 -4
  16. package/dist/cli/prepareSnapRequests-4MXQWKYB.js.map +7 -0
  17. package/dist/cli/startJob-DPDKPF7E.js +10 -0
  18. package/dist/cli/{wrapper-FLNFNO3B.js → wrapper-7YC7ZCKZ.js} +7 -7
  19. package/dist/config/RemoteBrowserTarget.d.ts +3 -3
  20. package/dist/config/RemoteBrowserTarget.d.ts.map +1 -1
  21. package/dist/cypress/task.js +6 -1
  22. package/dist/cypress/task.js.map +2 -2
  23. package/dist/environment/index.d.ts.map +1 -1
  24. package/dist/playwright/index.js +6 -1
  25. package/dist/playwright/index.js.map +2 -2
  26. package/package.json +1 -1
  27. package/dist/cli/cancelJob-HYFDKZHL.js +0 -10
  28. package/dist/cli/createAsyncComparison-W5M2ERG2.js +0 -10
  29. package/dist/cli/package-7H6XLDEN.js +0 -7
  30. package/dist/cli/prepareSnapRequests-UHPKHHWN.js.map +0 -7
  31. package/dist/cli/startJob-SBN2UHFE.js +0 -10
  32. /package/dist/cli/{cancelJob-HYFDKZHL.js.map → cancelJob-2Y37DD62.js.map} +0 -0
  33. /package/dist/cli/{chunk-LETCVDIZ.js.map → chunk-4JWGHBWV.js.map} +0 -0
  34. /package/dist/cli/{chunk-EZP6OELW.js.map → chunk-FGXBXADQ.js.map} +0 -0
  35. /package/dist/cli/{chunk-BGIW7GAC.js.map → chunk-SDRGUIAT.js.map} +0 -0
  36. /package/dist/cli/{chunk-2C2AJHJJ.js.map → chunk-SYK4EWJG.js.map} +0 -0
  37. /package/dist/cli/{chunk-6LAI3ROJ.js.map → chunk-VCHPF5HT.js.map} +0 -0
  38. /package/dist/cli/{createAsyncComparison-W5M2ERG2.js.map → createAsyncComparison-4JNXSJPV.js.map} +0 -0
  39. /package/dist/cli/{createAsyncReport-V6FJPMF2.js.map → createAsyncReport-YG573QF4.js.map} +0 -0
  40. /package/dist/cli/{getFlakes-RK6N2BJZ.js.map → getFlakes-HHKDRMUX.js.map} +0 -0
  41. /package/dist/cli/{package-7H6XLDEN.js.map → package-2XZLNOYC.js.map} +0 -0
  42. /package/dist/cli/{startJob-SBN2UHFE.js.map → startJob-DPDKPF7E.js.map} +0 -0
  43. /package/dist/cli/{wrapper-FLNFNO3B.js.map → wrapper-7YC7ZCKZ.js.map} +0 -0
@@ -0,0 +1,10 @@
1
+ import {
2
+ cancelJob
3
+ } from "./chunk-4JWGHBWV.js";
4
+ import "./chunk-FGXBXADQ.js";
5
+ import "./chunk-VCHPF5HT.js";
6
+ import "./chunk-AGKX4YUW.js";
7
+ export {
8
+ cancelJob as default
9
+ };
10
+ //# sourceMappingURL=cancelJob-2Y37DD62.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-EZP6OELW.js";
3
+ } from "./chunk-FGXBXADQ.js";
4
4
  import {
5
5
  ErrorWithStatusCode
6
- } from "./chunk-6LAI3ROJ.js";
6
+ } from "./chunk-VCHPF5HT.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-LETCVDIZ.js.map
46
+ //# sourceMappingURL=chunk-4JWGHBWV.js.map
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "happo",
4
- version: "6.3.2",
4
+ version: "6.3.4",
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-C3Z7VCFE.js.map
188
+ //# sourceMappingURL=chunk-AGKX4YUW.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.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\": \"./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.4\",\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
  fetchWithRetry
3
- } from "./chunk-6LAI3ROJ.js";
3
+ } from "./chunk-VCHPF5HT.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-EZP6OELW.js.map
54
+ //# sourceMappingURL=chunk-FGXBXADQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-EZP6OELW.js";
3
+ } from "./chunk-FGXBXADQ.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-BGIW7GAC.js.map
39
+ //# sourceMappingURL=chunk-SDRGUIAT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-EZP6OELW.js";
3
+ } from "./chunk-FGXBXADQ.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-2C2AJHJJ.js.map
63
+ //# sourceMappingURL=chunk-SYK4EWJG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "./chunk-C3Z7VCFE.js";
3
+ } from "./chunk-AGKX4YUW.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-6LAI3ROJ.js.map
97
+ //# sourceMappingURL=chunk-VCHPF5HT.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ createAsyncComparison
3
+ } from "./chunk-SYK4EWJG.js";
4
+ import "./chunk-FGXBXADQ.js";
5
+ import "./chunk-VCHPF5HT.js";
6
+ import "./chunk-AGKX4YUW.js";
7
+ export {
8
+ createAsyncComparison as default
9
+ };
10
+ //# sourceMappingURL=createAsyncComparison-4JNXSJPV.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-EZP6OELW.js";
4
- import "./chunk-6LAI3ROJ.js";
5
- import "./chunk-C3Z7VCFE.js";
3
+ } from "./chunk-FGXBXADQ.js";
4
+ import "./chunk-VCHPF5HT.js";
5
+ import "./chunk-AGKX4YUW.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-V6FJPMF2.js.map
41
+ //# sourceMappingURL=createAsyncReport-YG573QF4.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  makeHappoAPIRequest
3
- } from "./chunk-EZP6OELW.js";
4
- import "./chunk-6LAI3ROJ.js";
5
- import "./chunk-C3Z7VCFE.js";
3
+ } from "./chunk-FGXBXADQ.js";
4
+ import "./chunk-VCHPF5HT.js";
5
+ import "./chunk-AGKX4YUW.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-RK6N2BJZ.js.map
73
+ //# sourceMappingURL=getFlakes-HHKDRMUX.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-6LAI3ROJ.js";
7
+ } from "./chunk-VCHPF5HT.js";
8
8
  import {
9
9
  package_default
10
- } from "./chunk-C3Z7VCFE.js";
10
+ } from "./chunk-AGKX4YUW.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,27 +556,53 @@ function resolveShaFromTagMatcher(tagMatcher) {
554
556
  }
555
557
  return commitRes.stdout.trim();
556
558
  }
557
- function resolveMergeBase(baseSha, afterSha) {
558
- const res = spawnSync("git", ["merge-base", baseSha, 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], {
559
577
  encoding: "utf8"
560
578
  });
561
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
+ }
562
590
  console.error(
563
- `[HAPPO] Ignored error when resolving merge base between ${baseSha} and ${afterSha}: ${res.stderr}`
591
+ `[HAPPO] Ignored error when resolving merge base between ${baseRef} and ${afterSha}: ${res.stderr}`
564
592
  );
565
593
  return void 0;
566
594
  }
567
595
  const mergeBase = res.stdout.split("\n")[0]?.trim();
568
596
  if (!mergeBase) {
569
597
  console.error(
570
- `[HAPPO] git merge-base stdout is empty when resolving merge base between ${baseSha} and ${afterSha}. stdout: ${res.stdout}
598
+ `[HAPPO] git merge-base stdout is empty when resolving merge base between ${baseRef} and ${afterSha}. stdout: ${res.stdout}
571
599
  stderr: ${res.stderr}`
572
600
  );
573
601
  return void 0;
574
602
  }
575
603
  return mergeBase;
576
604
  }
577
- async function resolveBeforeSha(cliArgs, env, afterSha) {
605
+ async function resolveBeforeSha(cliArgs, env, afterSha, debugMode) {
578
606
  if (cliArgs.beforeSha) {
579
607
  return cliArgs.beforeSha;
580
608
  }
@@ -588,7 +616,11 @@ async function resolveBeforeSha(cliArgs, env, afterSha) {
588
616
  if (GITHUB_EVENT_PATH) {
589
617
  const ghEvent = await resolveGithubEvent(GITHUB_EVENT_PATH);
590
618
  if (ghEvent.pull_request) {
591
- const resolvedSha = resolveMergeBase(ghEvent.pull_request.base.sha, afterSha);
619
+ const resolvedSha = resolveMergeBase(
620
+ ghEvent.pull_request.base.sha,
621
+ afterSha,
622
+ debugMode
623
+ );
592
624
  if (resolvedSha) {
593
625
  return resolvedSha;
594
626
  } else {
@@ -615,7 +647,7 @@ async function resolveBeforeSha(cliArgs, env, afterSha) {
615
647
  ].join("/");
616
648
  }
617
649
  const baseBranch = cliArgs.baseBranch || baseAzureBranch || "origin/main";
618
- return resolveMergeBase(baseBranch, afterSha);
650
+ return resolveMergeBase(baseBranch, afterSha, debugMode);
619
651
  }
620
652
  function getHeadShaWithLocalChanges() {
621
653
  const randomSha = randomBytes(20).toString("hex");
@@ -753,7 +785,7 @@ async function resolveEnvironment(cliArgs, env = process.env) {
753
785
  const realAfterSha = typeof afterSha === "string" ? afterSha : afterSha.headSha;
754
786
  const afterShaWithLocalChanges = typeof afterSha === "string" ? afterSha : afterSha.headShaWithLocalChanges;
755
787
  const [beforeSha, link, authorEmail, message] = await Promise.all([
756
- resolveBeforeSha(cliArgs, env, realAfterSha),
788
+ resolveBeforeSha(cliArgs, env, realAfterSha, debugMode),
757
789
  resolveLink(cliArgs, env),
758
790
  resolveAuthorEmail(cliArgs, env),
759
791
  // Resolve message with the SHA that includes local changes
@@ -1074,7 +1106,7 @@ function createReporter(opts = {}) {
1074
1106
 
1075
1107
  // src/cli/index.ts
1076
1108
  async function getVersion() {
1077
- const packageJson = await import("./package-7H6XLDEN.js");
1109
+ const packageJson = await import("./package-2XZLNOYC.js");
1078
1110
  return packageJson.default.version;
1079
1111
  }
1080
1112
  function parseDashdashCommandParts(rawArgs) {
@@ -1345,10 +1377,10 @@ async function main(rawArgs = process.argv, logger = console) {
1345
1377
  async function handleDefaultCommand(config, environment, logger) {
1346
1378
  logger.log("Running happo tests...");
1347
1379
  const [startJob, createAsyncComparison, createAsyncReport, prepareSnapRequests] = await Promise.all([
1348
- (await import("./startJob-SBN2UHFE.js")).default,
1349
- (await import("./createAsyncComparison-W5M2ERG2.js")).default,
1350
- (await import("./createAsyncReport-V6FJPMF2.js")).default,
1351
- (await import("./prepareSnapRequests-UHPKHHWN.js")).default
1380
+ (await import("./startJob-DPDKPF7E.js")).default,
1381
+ (await import("./createAsyncComparison-4JNXSJPV.js")).default,
1382
+ (await import("./createAsyncReport-YG573QF4.js")).default,
1383
+ (await import("./prepareSnapRequests-4MXQWKYB.js")).default
1352
1384
  ]);
1353
1385
  await startJob(config, environment, logger);
1354
1386
  try {
@@ -1381,7 +1413,7 @@ async function handleDefaultCommand(config, environment, logger) {
1381
1413
  } catch (e) {
1382
1414
  const message = e instanceof Error ? e.message : String(e);
1383
1415
  logger.error(`${config.integration.type} run failed: ${message}`, e);
1384
- const cancelJob = (await import("./cancelJob-HYFDKZHL.js")).default;
1416
+ const cancelJob = (await import("./cancelJob-2Y37DD62.js")).default;
1385
1417
  await cancelJob("failure", message, config, environment, logger);
1386
1418
  process.exitCode = 1;
1387
1419
  return;
@@ -1392,7 +1424,7 @@ async function handleFinalizeCommand(config, environment, logger) {
1392
1424
  logger.log("Config:", config);
1393
1425
  logger.log("Environment:", environment);
1394
1426
  try {
1395
- const finalizeAll = (await import("./wrapper-FLNFNO3B.js")).finalizeAll;
1427
+ const finalizeAll = (await import("./wrapper-7YC7ZCKZ.js")).finalizeAll;
1396
1428
  await finalizeAll({ happoConfig: config, environment, logger });
1397
1429
  } catch (e) {
1398
1430
  logger.error(e instanceof Error ? e.message : String(e), e);
@@ -1420,7 +1452,7 @@ async function handleFlakeCommand(config, {
1420
1452
  process.exitCode = 1;
1421
1453
  return;
1422
1454
  }
1423
- const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-RK6N2BJZ.js");
1455
+ const { default: getFlakes, formatFlakeOutput } = await import("./getFlakes-HHKDRMUX.js");
1424
1456
  const project = allProjects ? void 0 : projectOverride ?? config.project;
1425
1457
  const flakes = await getFlakes(
1426
1458
  {
@@ -1462,7 +1494,7 @@ async function handleE2ECommand(config, environment, dashdashCommandParts, confi
1462
1494
  logger.log("Config:", config);
1463
1495
  logger.log("Environment:", environment);
1464
1496
  logger.log("Dashdash command parts:", dashdashCommandParts);
1465
- const runWithWrapper = (await import("./wrapper-FLNFNO3B.js")).default;
1497
+ const runWithWrapper = (await import("./wrapper-7YC7ZCKZ.js")).default;
1466
1498
  const exitCode = await runWithWrapper(
1467
1499
  dashdashCommandParts,
1468
1500
  config,