happo 6.3.5 → 6.4.0

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 (61) hide show
  1. package/dist/cli/cancelJob-ORBIXVT5.js +10 -0
  2. package/dist/cli/{chunk-KBSCVKHT.js → chunk-6PWJAPHP.js} +2 -2
  3. package/dist/cli/chunk-6PWJAPHP.js.map +7 -0
  4. package/dist/cli/{chunk-JQRP37NK.js → chunk-IGI756V3.js} +3 -3
  5. package/dist/cli/{chunk-EIXHFGQL.js → chunk-JOPTBOXW.js} +2 -2
  6. package/dist/cli/{chunk-D6LAGJC3.js → chunk-QTTEOWAX.js} +3 -3
  7. package/dist/cli/{chunk-D6LAGJC3.js.map → chunk-QTTEOWAX.js.map} +1 -1
  8. package/dist/cli/{chunk-H6OKM3G2.js → chunk-ULGAHSS5.js} +2 -2
  9. package/dist/cli/{chunk-WYDYZN3N.js → chunk-WJIEJMLG.js} +4 -4
  10. package/dist/cli/chunk-WJIEJMLG.js.map +7 -0
  11. package/dist/cli/createAsyncComparison-XISBMLXA.js +10 -0
  12. package/dist/cli/{createAsyncReport-PWLSEU4U.js → createAsyncReport-A27NY62E.js} +4 -4
  13. package/dist/cli/{getFlakes-ISMCYQYN.js → getFlakes-CPW3FFIF.js} +4 -4
  14. package/dist/cli/main.js +11 -11
  15. package/dist/cli/package-ZLQ7KI7I.js +7 -0
  16. package/dist/cli/{prepareSnapRequests-LKEGFH3U.js → prepareSnapRequests-74QL6FGT.js} +77 -42
  17. package/dist/cli/prepareSnapRequests-74QL6FGT.js.map +7 -0
  18. package/dist/cli/startJob-NZDZNGVS.js +10 -0
  19. package/dist/cli/{wrapper-AA77AANX.js → wrapper-PXCRJ4BX.js} +7 -7
  20. package/dist/config/RemoteBrowserTarget.d.ts +7 -1
  21. package/dist/config/RemoteBrowserTarget.d.ts.map +1 -1
  22. package/dist/config/index.d.ts +5 -1
  23. package/dist/config/index.d.ts.map +1 -1
  24. package/dist/config/index.js.map +2 -2
  25. package/dist/cypress/task.d.ts.map +1 -1
  26. package/dist/cypress/task.js +21 -18
  27. package/dist/cypress/task.js.map +2 -2
  28. package/dist/e2e/controller.d.ts +1 -1
  29. package/dist/e2e/controller.d.ts.map +1 -1
  30. package/dist/network/fetchWithRetry.d.ts +1 -1
  31. package/dist/network/fetchWithRetry.d.ts.map +1 -1
  32. package/dist/network/makeHappoAPIRequest.d.ts +1 -1
  33. package/dist/network/makeHappoAPIRequest.d.ts.map +1 -1
  34. package/dist/network/prepareSnapRequests.d.ts.map +1 -1
  35. package/dist/playwright/index.d.ts.map +1 -1
  36. package/dist/playwright/index.js +17 -17
  37. package/dist/playwright/index.js.map +2 -2
  38. package/dist/storybook/getStorybookStoryCount.d.ts +7 -0
  39. package/dist/storybook/getStorybookStoryCount.d.ts.map +1 -0
  40. package/dist/storybook/index.d.ts +5 -1
  41. package/dist/storybook/index.d.ts.map +1 -1
  42. package/dist/storybook/index.js +34 -13
  43. package/dist/storybook/index.js.map +4 -4
  44. package/package.json +2 -2
  45. package/dist/cli/cancelJob-QSJ4H5RQ.js +0 -10
  46. package/dist/cli/chunk-KBSCVKHT.js.map +0 -7
  47. package/dist/cli/chunk-WYDYZN3N.js.map +0 -7
  48. package/dist/cli/createAsyncComparison-2X5JW753.js +0 -10
  49. package/dist/cli/package-QA5NMKSG.js +0 -7
  50. package/dist/cli/prepareSnapRequests-LKEGFH3U.js.map +0 -7
  51. package/dist/cli/startJob-3G7ZMTJL.js +0 -10
  52. /package/dist/cli/{cancelJob-QSJ4H5RQ.js.map → cancelJob-ORBIXVT5.js.map} +0 -0
  53. /package/dist/cli/{chunk-JQRP37NK.js.map → chunk-IGI756V3.js.map} +0 -0
  54. /package/dist/cli/{chunk-EIXHFGQL.js.map → chunk-JOPTBOXW.js.map} +0 -0
  55. /package/dist/cli/{chunk-H6OKM3G2.js.map → chunk-ULGAHSS5.js.map} +0 -0
  56. /package/dist/cli/{createAsyncComparison-2X5JW753.js.map → createAsyncComparison-XISBMLXA.js.map} +0 -0
  57. /package/dist/cli/{createAsyncReport-PWLSEU4U.js.map → createAsyncReport-A27NY62E.js.map} +0 -0
  58. /package/dist/cli/{getFlakes-ISMCYQYN.js.map → getFlakes-CPW3FFIF.js.map} +0 -0
  59. /package/dist/cli/{package-QA5NMKSG.js.map → package-ZLQ7KI7I.js.map} +0 -0
  60. /package/dist/cli/{startJob-3G7ZMTJL.js.map → startJob-NZDZNGVS.js.map} +0 -0
  61. /package/dist/cli/{wrapper-AA77AANX.js.map → wrapper-PXCRJ4BX.js.map} +0 -0
@@ -3,7 +3,7 @@ export declare class ErrorWithStatusCode extends Error {
3
3
  statusCode: number;
4
4
  constructor(message: string, statusCode: number);
5
5
  }
6
- type FormDataValue = string | File | undefined;
6
+ type FormDataValue = string | number | File | undefined;
7
7
  interface FetchParams {
8
8
  method?: string;
9
9
  headers?: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWithRetry.d.ts","sourceRoot":"","sources":["../../src/network/fetchWithRetry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAIhD;AAED,KAAK,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAkB/C,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAA8B,cAAc,CAC1C,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,EACE,MAAc,EACd,OAAY,EACZ,QAAQ,EACR,IAAI,EAAE,QAAQ,EACd,OAAgB,EAChB,UAAc,EACd,eAAsB,EACtB,eAA0B,GAC3B,EAAE,WAAW,EACd,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,QAAQ,CAAC,CA6EnB"}
1
+ {"version":3,"file":"fetchWithRetry.d.ts","sourceRoot":"","sources":["../../src/network/fetchWithRetry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAIhD;AAED,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAkBxD,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAA8B,cAAc,CAC1C,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,EACE,MAAc,EACd,OAAY,EACZ,QAAQ,EACR,IAAI,EAAE,QAAQ,EACd,OAAgB,EAChB,UAAc,EACd,eAAsB,EACtB,eAA0B,GAC3B,EAAE,WAAW,EACd,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,QAAQ,CAAC,CA6EnB"}
@@ -1,6 +1,6 @@
1
1
  import type { ConfigWithDefaults } from '../config/index.ts';
2
2
  import type { Logger } from '../isomorphic/types.ts';
3
- type FormDataValue = string | File | undefined;
3
+ type FormDataValue = string | number | File | undefined;
4
4
  export interface RequestAttributes {
5
5
  /**
6
6
  * The path to the API endpoint
@@ -1 +1 @@
1
- {"version":3,"file":"makeHappoAPIRequest.d.ts","sourceRoot":"","sources":["../../src/network/makeHappoAPIRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,KAAK,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,MAAM,EAAE,CAAC;IAExB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,wBAA8B,mBAAmB,CAC/C,EAAE,GAAG,EAAE,IAAI,EAAE,MAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAChE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EACnD,EACE,UAAc,EACd,OAAgB,EAChB,eAAsB,EACtB,eAA0B,GAC3B,EAAE,0BAA0B,EAC7B,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxB"}
1
+ {"version":3,"file":"makeHappoAPIRequest.d.ts","sourceRoot":"","sources":["../../src/network/makeHappoAPIRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,MAAM,EAAE,CAAC;IAExB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,wBAA8B,mBAAmB,CAC/C,EAAE,GAAG,EAAE,IAAI,EAAE,MAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAChE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EACnD,EACE,UAAc,EACd,OAAgB,EAChB,eAAsB,EACtB,eAA0B,GAC3B,EAAE,0BAA0B,EAC7B,MAAM,GAAE,MAAgB,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2CxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareSnapRequests.d.ts","sourceRoot":"","sources":["../../src/network/prepareSnapRequests.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAgG7D,wBAA8B,mBAAmB,CAC/C,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CA4CxB"}
1
+ {"version":3,"file":"prepareSnapRequests.d.ts","sourceRoot":"","sources":["../../src/network/prepareSnapRequests.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAqH7D,wBAA8B,mBAAmB,CAC/C,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAsDxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAgB1B,KAAK,kBAAkB,GAAG,CACxB,eAAe,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI,EAC/C,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,kBAAkB,CAAC;IACpC,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,IAAI,CAAC;CAC3B;AAMD,eAAO,MAAM,IAAI,EAAE,QAAQ,CACzB,kBAAkB,GAAG,qBAAqB,GAAG,YAAY,EACzD,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,CA4G/D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAiB1B,KAAK,kBAAkB,GAAG,CACxB,eAAe,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI,EAC/C,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,kBAAkB,CAAC;IACpC,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,IAAI,CAAC;CAC3B;AAMD,eAAO,MAAM,IAAI,EAAE,QAAQ,CACzB,kBAAkB,GAAG,qBAAqB,GAAG,YAAY,EACzD,oBAAoB,GAAG,uBAAuB,GAAG,cAAc,CAkH/D,CAAC"}
@@ -18,7 +18,7 @@ import asyncRetry from "async-retry";
18
18
  // package.json
19
19
  var package_default = {
20
20
  name: "happo",
21
- version: "6.3.5",
21
+ version: "6.4.0",
22
22
  description: "Catch unexpected visual and accessibility changes and UI bugs",
23
23
  license: "MIT",
24
24
  repository: {
@@ -137,7 +137,7 @@ var package_default = {
137
137
  esbuild: "^0.27.0",
138
138
  eslint: "^10.0.2",
139
139
  "eslint-config-prettier": "^10.1.8",
140
- "eslint-plugin-compat": "^6.2.0",
140
+ "eslint-plugin-compat": "^7.0.1",
141
141
  "eslint-plugin-depend": "^1.4.0",
142
142
  "eslint-plugin-simple-import-sort": "^12.1.1",
143
143
  "eslint-plugin-unicorn": "^63.0.0",
@@ -207,12 +207,12 @@ var ErrorWithStatusCode = class extends Error {
207
207
  }
208
208
  };
209
209
  function prepareFormData(data) {
210
- if (!data) {
210
+ if (data == null) {
211
211
  return null;
212
212
  }
213
213
  const form = new FormData();
214
214
  for (const [key, value] of Object.entries(data)) {
215
- if (value) {
215
+ if (value != null) {
216
216
  form.append(key, value);
217
217
  }
218
218
  }
@@ -757,7 +757,8 @@ var RemoteBrowserTarget = class {
757
757
  staticPackage,
758
758
  snapPayloads,
759
759
  pages,
760
- targetName
760
+ targetName,
761
+ estimatedSnapsCount
761
762
  }, config) {
762
763
  const boundMakeRequest = async ({
763
764
  slice,
@@ -783,6 +784,7 @@ var RemoteBrowserTarget = class {
783
784
  type: pageSlice && pageSlice.extendsSha ? "extends-report" : `browser-${this.browserName}`,
784
785
  targetName,
785
786
  payloadHash,
787
+ estimatedSnapsCount: staticPackage && estimatedSnapsCount != null ? estimatedSnapsCount : void 0,
786
788
  payload: new File([payloadString], "payload.json", {
787
789
  type: "application/json"
788
790
  })
@@ -1322,23 +1324,14 @@ var Controller = class {
1322
1324
  this.happoDebug = true;
1323
1325
  }
1324
1326
  if (!HAPPO_E2E_PORT) {
1325
- console.log(
1326
- `
1327
- [HAPPO] Happo is disabled. Enable it by using the \`happo\` command.
1328
-
1329
- Documentation:
1330
- Playwright: https://docs.happo.io/docs/playwright#usage
1331
- Cypress (run): https://docs.happo.io/docs/cypress#usage-with-cypress-run
1332
- Cypress (open): https://docs.happo.io/docs/cypress#usage-with-cypress-open
1333
- `.trim()
1334
- );
1335
- return;
1327
+ return false;
1336
1328
  }
1337
1329
  if (this.happoDebug) {
1338
1330
  console.log("[HAPPO] Running Controller.init");
1339
1331
  }
1340
1332
  const configFilePath = findConfigFile();
1341
1333
  this.happoConfig = await loadConfigFile(configFilePath);
1334
+ return true;
1342
1335
  }
1343
1336
  isActive() {
1344
1337
  const result = !!this.happoConfig;
@@ -1679,13 +1672,20 @@ if (!fs5.existsSync(pathToBrowserBuild)) {
1679
1672
  throw new Error(`Browser build not found at ${pathToBrowserBuild}.`);
1680
1673
  }
1681
1674
  var controller = new controller_default();
1675
+ var disabledLogged = false;
1682
1676
  var BATCH_SIZE = 4;
1683
1677
  var specCounter = 0;
1684
1678
  var test = base.extend({
1685
1679
  // Runs once per worker, before any test starts
1686
1680
  _happoForEachWorker: [
1687
1681
  async ({}, use) => {
1688
- await controller.init();
1682
+ const isRunning = await controller.init();
1683
+ if (!isRunning && !disabledLogged) {
1684
+ console.log(
1685
+ "[HAPPO] Happo is disabled. See https://docs.happo.io/docs/playwright for how to enable it."
1686
+ );
1687
+ disabledLogged = true;
1688
+ }
1689
1689
  await use();
1690
1690
  await controller.finish();
1691
1691
  },