happo 6.9.0 → 6.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/cancelJob-4I7RBUQG.js +10 -0
- package/dist/cli/{chunk-P4EXA4AX.js → chunk-64XRFVHC.js} +8 -4
- package/dist/cli/chunk-64XRFVHC.js.map +7 -0
- package/dist/cli/{chunk-J2EA5OBW.js → chunk-GG7D7TQZ.js} +2 -2
- package/dist/cli/chunk-ML3Z5Z22.js +44 -0
- package/dist/cli/chunk-ML3Z5Z22.js.map +7 -0
- package/dist/cli/{chunk-BK32666K.js → chunk-OCKO64S4.js} +3 -3
- package/dist/cli/{chunk-R6YURZXU.js → chunk-RJXHIGT5.js} +2 -2
- package/dist/cli/{chunk-BESQLM5F.js → chunk-UTRRH3WF.js} +2 -2
- package/dist/cli/{chunk-CVX5DVCT.js → chunk-XZTQZZFK.js} +2 -2
- package/dist/cli/createAsyncComparison-WLPUS2NJ.js +10 -0
- package/dist/cli/{createAsyncReport-4ZD53TJC.js → createAsyncReport-2ZTQOHDA.js} +4 -4
- package/dist/cli/createExtendsReportSnapRequest-4ZSBNCPL.js +32 -0
- package/dist/cli/createExtendsReportSnapRequest-4ZSBNCPL.js.map +7 -0
- package/dist/cli/findBaselineReport-2SHS2OH7.js +36 -0
- package/dist/cli/findBaselineReport-2SHS2OH7.js.map +7 -0
- package/dist/cli/{getFlakes-6ZGTWZTM.js → getFlakes-DLKH2VLM.js} +4 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/main.js +160 -19
- package/dist/cli/main.js.map +3 -3
- package/dist/cli/package-TU7REKQ6.js +7 -0
- package/dist/cli/parseOptions.d.ts +6 -0
- package/dist/cli/parseOptions.d.ts.map +1 -1
- package/dist/cli/{prepareSnapRequests-2LHSGFZV.js → prepareSnapRequests-WBXFGB4B.js} +170 -65
- package/dist/cli/prepareSnapRequests-WBXFGB4B.js.map +7 -0
- package/dist/cli/startJob-33HGTT4N.js +10 -0
- package/dist/cli/{wrapper-7RE2N7Y3.js → wrapper-CCHBHKT2.js} +45 -26
- package/dist/cli/wrapper-CCHBHKT2.js.map +7 -0
- package/dist/config/index.d.ts +0 -8
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +2 -2
- package/dist/custom/index.d.ts.map +1 -1
- package/dist/custom/index.js +70 -14
- package/dist/custom/index.js.map +3 -3
- package/dist/cypress/chunk-TYBGAHYH.js +69 -0
- package/dist/cypress/chunk-TYBGAHYH.js.map +7 -0
- package/dist/cypress/index.d.ts.map +1 -1
- package/dist/cypress/index.js +14 -4
- package/dist/cypress/index.js.map +2 -2
- package/dist/cypress/task.d.ts +4 -2
- package/dist/cypress/task.d.ts.map +1 -1
- package/dist/cypress/task.js +25 -6
- package/dist/cypress/task.js.map +4 -4
- package/dist/e2e/wrapper.d.ts +1 -1
- package/dist/e2e/wrapper.d.ts.map +1 -1
- package/dist/environment/index.d.ts +2 -1
- package/dist/environment/index.d.ts.map +1 -1
- package/dist/isomorphic/parseOnly.d.ts +15 -0
- package/dist/isomorphic/parseOnly.d.ts.map +1 -0
- package/dist/isomorphic/parseSkip.d.ts +28 -0
- package/dist/isomorphic/parseSkip.d.ts.map +1 -0
- package/dist/isomorphic/types.d.ts +11 -0
- package/dist/isomorphic/types.d.ts.map +1 -1
- package/dist/network/createExtendsReportSnapRequest.d.ts +4 -0
- package/dist/network/createExtendsReportSnapRequest.d.ts.map +1 -0
- package/dist/network/findBaselineReport.d.ts +5 -0
- package/dist/network/findBaselineReport.d.ts.map +1 -0
- package/dist/network/prepareSnapRequests.d.ts +9 -1
- package/dist/network/prepareSnapRequests.d.ts.map +1 -1
- package/dist/playwright/index.d.ts.map +1 -1
- package/dist/playwright/index.js +59 -3
- package/dist/playwright/index.js.map +3 -3
- package/dist/storybook/browser/register.d.ts +2 -1
- package/dist/storybook/browser/register.d.ts.map +1 -1
- package/dist/storybook/browser/register.js +5 -1
- package/dist/storybook/browser/register.js.map +2 -2
- package/dist/storybook/index.d.ts +9 -1
- package/dist/storybook/index.d.ts.map +1 -1
- package/dist/storybook/index.js +134 -42
- package/dist/storybook/index.js.map +4 -4
- package/dist/storybook/isomorphic/types.d.ts +4 -0
- package/dist/storybook/isomorphic/types.d.ts.map +1 -1
- package/dist/storybook/resolveStoryFileItems.d.ts +21 -0
- package/dist/storybook/resolveStoryFileItems.d.ts.map +1 -0
- package/package.json +7 -3
- package/dist/cli/cancelJob-Y4WJCCU6.js +0 -10
- package/dist/cli/chunk-P4EXA4AX.js.map +0 -7
- package/dist/cli/createAsyncComparison-CQLGQXY2.js +0 -10
- package/dist/cli/package-4NRNRUE3.js +0 -7
- package/dist/cli/prepareSnapRequests-2LHSGFZV.js.map +0 -7
- package/dist/cli/startJob-JAO5FUA2.js +0 -10
- package/dist/cli/wrapper-7RE2N7Y3.js.map +0 -7
- package/dist/cypress/chunk-RKK2MPML.js +0 -20
- package/dist/cypress/chunk-RKK2MPML.js.map +0 -7
- /package/dist/cli/{cancelJob-Y4WJCCU6.js.map → cancelJob-4I7RBUQG.js.map} +0 -0
- /package/dist/cli/{chunk-J2EA5OBW.js.map → chunk-GG7D7TQZ.js.map} +0 -0
- /package/dist/cli/{chunk-BK32666K.js.map → chunk-OCKO64S4.js.map} +0 -0
- /package/dist/cli/{chunk-R6YURZXU.js.map → chunk-RJXHIGT5.js.map} +0 -0
- /package/dist/cli/{chunk-BESQLM5F.js.map → chunk-UTRRH3WF.js.map} +0 -0
- /package/dist/cli/{chunk-CVX5DVCT.js.map → chunk-XZTQZZFK.js.map} +0 -0
- /package/dist/cli/{createAsyncComparison-CQLGQXY2.js.map → createAsyncComparison-WLPUS2NJ.js.map} +0 -0
- /package/dist/cli/{createAsyncReport-4ZD53TJC.js.map → createAsyncReport-2ZTQOHDA.js.map} +0 -0
- /package/dist/cli/{getFlakes-6ZGTWZTM.js.map → getFlakes-DLKH2VLM.js.map} +0 -0
- /package/dist/cli/{package-4NRNRUE3.js.map → package-TU7REKQ6.js.map} +0 -0
- /package/dist/cli/{startJob-JAO5FUA2.js.map → startJob-33HGTT4N.js.map} +0 -0
package/dist/e2e/wrapper.d.ts
CHANGED
|
@@ -17,6 +17,6 @@ export declare function finalizeAll({ happoConfig, environment, logger, }: Final
|
|
|
17
17
|
* @param logger The logger
|
|
18
18
|
* @returns The exit code of the command
|
|
19
19
|
*/
|
|
20
|
-
export default function runWithWrapper(dashdashCommandParts: Array<string>, happoConfig: ConfigWithDefaults, environment: EnvironmentResult, logger: Logger, configFilePath: string): Promise<number>;
|
|
20
|
+
export default function runWithWrapper(dashdashCommandParts: Array<string>, happoConfig: ConfigWithDefaults, environment: EnvironmentResult, logger: Logger, configFilePath: string, skipJSON?: string): Promise<number>;
|
|
21
21
|
export {};
|
|
22
22
|
//# sourceMappingURL=wrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/e2e/wrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/e2e/wrapper.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAuCjE,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;AAE7C,UAAU,kBAAkB;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,EAChC,WAAW,EACX,WAAW,EACX,MAAM,GACP,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDpC;AAoGD;;;;;;;;;GASG;AACH,wBAA8B,cAAc,CAC1C,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,EACnC,WAAW,EAAE,kBAAkB,EAC/B,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAoFjB"}
|
|
@@ -11,7 +11,8 @@ export interface EnvironmentResult {
|
|
|
11
11
|
fallbackShas: Array<string> | undefined;
|
|
12
12
|
githubToken: string | undefined;
|
|
13
13
|
ci: boolean;
|
|
14
|
-
|
|
14
|
+
skip: string | undefined;
|
|
15
|
+
only: string | undefined;
|
|
15
16
|
}
|
|
16
17
|
export default function resolveEnvironment(cliArgs: ParsedCLIArgs, env?: Record<string, string | undefined>): Promise<EnvironmentResult>;
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/environment/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8B5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/environment/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8B5D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAgjBD,wBAA8B,kBAAkB,CAC9C,OAAO,EAAE,aAAa,EACtB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,iBAAiB,CAAC,CA0C5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OnlyItem } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Parses and validates a JSON string, returning an array of OnlyItems.
|
|
4
|
+
* Throws a TypeError if the JSON is invalid or not an array of OnlyItems.
|
|
5
|
+
*
|
|
6
|
+
* Note: `variant` is not supported in `--only` items because variants cannot
|
|
7
|
+
* be resolved statically from the Storybook built files.
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateOnly(json: string): Array<OnlyItem>;
|
|
10
|
+
/**
|
|
11
|
+
* Parses a JSON string into an array of OnlyItems. Returns an empty array on
|
|
12
|
+
* any parse error or if the value is not a valid array of OnlyItems.
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseOnly(json?: string): Array<OnlyItem>;
|
|
15
|
+
//# sourceMappingURL=parseOnly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseOnly.d.ts","sourceRoot":"","sources":["../../src/isomorphic/parseOnly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAa3C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAOxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SkipItem } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* A pair of Sets used for O(1) skip lookups.
|
|
4
|
+
* - [0]: component-only skips (match all variants of the component)
|
|
5
|
+
* - [1]: component+variant skips (match a specific variant, keyed as "component\0variant")
|
|
6
|
+
*/
|
|
7
|
+
export type SkipSet = readonly [componentOnly: Set<string>, componentVariant: Set<string>];
|
|
8
|
+
/**
|
|
9
|
+
* Parses and validates a JSON string, returning an array of SkipItems.
|
|
10
|
+
* Throws a TypeError if the JSON is invalid or not an array of SkipItems.
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateSkip(json: string): Array<SkipItem>;
|
|
13
|
+
/**
|
|
14
|
+
* Parses a JSON string into an array of SkipItems. Returns an empty array on
|
|
15
|
+
* any parse error or if the value is not a valid array of SkipItems.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseSkip(json?: string): Array<SkipItem>;
|
|
18
|
+
/**
|
|
19
|
+
* Converts an array of SkipItems into a SkipSet for efficient lookups.
|
|
20
|
+
* Items with a `storyFile` key (unresolved) are silently ignored.
|
|
21
|
+
*/
|
|
22
|
+
export declare function toSkipSet(items: Array<SkipItem>): SkipSet;
|
|
23
|
+
/**
|
|
24
|
+
* Returns true if the given component+variant should be skipped according to
|
|
25
|
+
* the SkipSet.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isInSkipSet([componentOnly, componentVariant]: SkipSet, component: string, variant: string): boolean;
|
|
28
|
+
//# sourceMappingURL=parseSkip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseSkip.d.ts","sourceRoot":"","sources":["../../src/isomorphic/parseSkip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAa3F;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAOxD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAazD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAET"}
|
|
@@ -70,4 +70,15 @@ export interface WindowWithHappo extends Window {
|
|
|
70
70
|
happo?: WindowHappo | undefined;
|
|
71
71
|
}
|
|
72
72
|
export type Logger = Pick<Console, 'log' | 'error'>;
|
|
73
|
+
export type SkipItem = {
|
|
74
|
+
component: string;
|
|
75
|
+
variant?: string;
|
|
76
|
+
} | {
|
|
77
|
+
storyFile: string;
|
|
78
|
+
};
|
|
79
|
+
export type OnlyItem = {
|
|
80
|
+
component: string;
|
|
81
|
+
} | {
|
|
82
|
+
storyFile: string;
|
|
83
|
+
};
|
|
73
84
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/isomorphic/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC;KACzD,CAAC;IACF,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,gBAAgB,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,iBAAiB,CAAC;CAC1E,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/isomorphic/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ConfigWithDefaults } from '../config/index.ts';
|
|
2
|
+
import type { SkipItem } from '../isomorphic/types.ts';
|
|
3
|
+
export default function createExtendsReportSnapRequest(extendsSha: string, skip: Array<SkipItem>, config: ConfigWithDefaults): Promise<number>;
|
|
4
|
+
//# sourceMappingURL=createExtendsReportSnapRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExtendsReportSnapRequest.d.ts","sourceRoot":"","sources":["../../src/network/createExtendsReportSnapRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,wBAA8B,8BAA8B,CAC1D,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EACrB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ConfigWithDefaults } from '../config/index.ts';
|
|
2
|
+
import type { EnvironmentResult } from '../environment/index.ts';
|
|
3
|
+
import type { Logger } from '../isomorphic/types.ts';
|
|
4
|
+
export default function findBaselineReport(environment: EnvironmentResult, config: ConfigWithDefaults, logger: Logger): Promise<string | undefined>;
|
|
5
|
+
//# sourceMappingURL=findBaselineReport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findBaselineReport.d.ts","sourceRoot":"","sources":["../../src/network/findBaselineReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD,wBAA8B,kBAAkB,CAC9C,WAAW,EAAE,iBAAiB,EAC9B,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2B7B"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { ConfigWithDefaults } from '../config/index.ts';
|
|
2
|
-
|
|
2
|
+
import type { OnlyItem, SkipItem } from '../isomorphic/types.ts';
|
|
3
|
+
export interface PrepareSnapRequestsResult {
|
|
4
|
+
snapRequestIds: Array<number>;
|
|
5
|
+
resolvedSkip?: Array<{
|
|
6
|
+
component: string;
|
|
7
|
+
variant?: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
export default function prepareSnapRequests(config: ConfigWithDefaults, skip?: Array<SkipItem>, only?: Array<OnlyItem>): Promise<PrepareSnapRequestsResult>;
|
|
3
11
|
//# sourceMappingURL=prepareSnapRequests.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"prepareSnapRequests.d.ts","sourceRoot":"","sources":["../../src/network/prepareSnapRequests.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAqJjE,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,wBAA8B,mBAAmB,CAC/C,MAAM,EAAE,kBAAkB,EAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EACtB,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,GACrB,OAAO,CAAC,yBAAyB,CAAC,CA0DpC"}
|
|
@@ -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;
|
|
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;AAsB1B,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,CAoI/D,CAAC"}
|
package/dist/playwright/index.js
CHANGED
|
@@ -19,7 +19,7 @@ import asyncRetry from "async-retry";
|
|
|
19
19
|
// package.json
|
|
20
20
|
var package_default = {
|
|
21
21
|
name: "happo",
|
|
22
|
-
version: "6.
|
|
22
|
+
version: "6.10.1",
|
|
23
23
|
description: "Catch unexpected visual and accessibility changes and UI bugs",
|
|
24
24
|
license: "MIT",
|
|
25
25
|
repository: {
|
|
@@ -94,7 +94,10 @@ var package_default = {
|
|
|
94
94
|
"test:playwright": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright.config.ts e2e -- playwright test",
|
|
95
95
|
"test:playwright:nonce": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright-nonce.config.ts --nonce $HAPPO_NONCE e2e -- playwright test && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.playwright-nonce.config.ts --nonce $HAPPO_NONCE finalize",
|
|
96
96
|
"test:storybook": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.storybook.config.ts",
|
|
97
|
+
"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)"',
|
|
98
|
+
"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)"',
|
|
97
99
|
"test:pages": "pnpm build:dist && node --env-file-if-exists=.env.local dist/cli/main.js -c ./happoconfigs/happo.pages.config.ts",
|
|
100
|
+
release: "set -a && source .env && set +a && release-with-ease",
|
|
98
101
|
tsc: "tsc --build tsconfig.json"
|
|
99
102
|
},
|
|
100
103
|
browserslist: {
|
|
@@ -136,13 +139,13 @@ var package_default = {
|
|
|
136
139
|
"@types/react": "^19.2.0",
|
|
137
140
|
"@types/react-dom": "^19.2.0",
|
|
138
141
|
cypress: "^15.5.0",
|
|
139
|
-
esbuild: "^0.
|
|
142
|
+
esbuild: "^0.28.0",
|
|
140
143
|
eslint: "^10.0.2",
|
|
141
144
|
"eslint-config-prettier": "^10.1.8",
|
|
142
145
|
"eslint-plugin-compat": "^7.0.1",
|
|
143
146
|
"eslint-plugin-depend": "^1.4.0",
|
|
144
147
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
145
|
-
"eslint-plugin-unicorn": "^
|
|
148
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
146
149
|
jiti: "^2.6.1",
|
|
147
150
|
jsdom: "^29.0.0",
|
|
148
151
|
multiparty: "^4.2.3",
|
|
@@ -152,6 +155,7 @@ var package_default = {
|
|
|
152
155
|
"react-error-boundary": "^6.0.0",
|
|
153
156
|
storybook: "^10.0.1",
|
|
154
157
|
typescript: "^6.0.2",
|
|
158
|
+
"release-with-ease": "^2.1.0",
|
|
155
159
|
"typescript-eslint": "^8.57.2"
|
|
156
160
|
},
|
|
157
161
|
dependencies: {
|
|
@@ -1788,6 +1792,52 @@ var Controller = class {
|
|
|
1788
1792
|
};
|
|
1789
1793
|
var controller_default = Controller;
|
|
1790
1794
|
|
|
1795
|
+
// src/isomorphic/parseSkip.ts
|
|
1796
|
+
function isSkipItem(item) {
|
|
1797
|
+
if (typeof item !== "object" || item === null) return false;
|
|
1798
|
+
const record = item;
|
|
1799
|
+
const hasComponent = typeof record["component"] === "string";
|
|
1800
|
+
const hasStoryFile = typeof record["storyFile"] === "string";
|
|
1801
|
+
if (hasComponent && hasStoryFile) return false;
|
|
1802
|
+
if (hasStoryFile) return record["variant"] === void 0;
|
|
1803
|
+
if (hasComponent) return record["variant"] === void 0 || typeof record["variant"] === "string";
|
|
1804
|
+
return false;
|
|
1805
|
+
}
|
|
1806
|
+
function validateSkip(json) {
|
|
1807
|
+
const parsed = JSON.parse(json);
|
|
1808
|
+
if (!Array.isArray(parsed) || !parsed.every(isSkipItem)) {
|
|
1809
|
+
throw new TypeError(
|
|
1810
|
+
"--skip must be a JSON array of {component, variant?} or {storyFile} objects"
|
|
1811
|
+
);
|
|
1812
|
+
}
|
|
1813
|
+
return parsed;
|
|
1814
|
+
}
|
|
1815
|
+
function parseSkip(json) {
|
|
1816
|
+
if (!json) return [];
|
|
1817
|
+
try {
|
|
1818
|
+
return validateSkip(json);
|
|
1819
|
+
} catch {
|
|
1820
|
+
return [];
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1823
|
+
function toSkipSet(items) {
|
|
1824
|
+
const componentOnly = /* @__PURE__ */ new Set();
|
|
1825
|
+
const componentVariant = /* @__PURE__ */ new Set();
|
|
1826
|
+
for (const item of items) {
|
|
1827
|
+
if (!("component" in item)) continue;
|
|
1828
|
+
const { component, variant } = item;
|
|
1829
|
+
if (variant === void 0) {
|
|
1830
|
+
componentOnly.add(component);
|
|
1831
|
+
} else {
|
|
1832
|
+
componentVariant.add(`${component}\0${variant}`);
|
|
1833
|
+
}
|
|
1834
|
+
}
|
|
1835
|
+
return [componentOnly, componentVariant];
|
|
1836
|
+
}
|
|
1837
|
+
function isInSkipSet([componentOnly, componentVariant], component, variant) {
|
|
1838
|
+
return componentOnly.has(component) || componentVariant.has(`${component}\0${variant}`);
|
|
1839
|
+
}
|
|
1840
|
+
|
|
1791
1841
|
// src/playwright/index.ts
|
|
1792
1842
|
var pathToBrowserBuild = path3.resolve(
|
|
1793
1843
|
import.meta.dirname,
|
|
@@ -1837,6 +1887,9 @@ var test = base.extend({
|
|
|
1837
1887
|
happoScreenshot: async ({ page }, use) => {
|
|
1838
1888
|
const integration = controller.config?.integration;
|
|
1839
1889
|
const autoApplyPseudoStateAttributes = integration?.type === "playwright" ? integration.autoApplyPseudoStateAttributes ?? false : false;
|
|
1890
|
+
const skippedFilePath = process.env.HAPPO_SKIP_FILE;
|
|
1891
|
+
const rawSkipped = skippedFilePath ? fs5.readFileSync(skippedFilePath, "utf8") : void 0;
|
|
1892
|
+
const skipSet = toSkipSet(parseSkip(rawSkipped));
|
|
1840
1893
|
const happoScreenshot = async (handleOrLocator, { component, variant, snapshotStrategy = "hoist", ...rest }) => {
|
|
1841
1894
|
if (!controller.isActive()) {
|
|
1842
1895
|
return;
|
|
@@ -1857,6 +1910,9 @@ var test = base.extend({
|
|
|
1857
1910
|
if (!variant) {
|
|
1858
1911
|
throw new Error("Missing `variant`");
|
|
1859
1912
|
}
|
|
1913
|
+
if (isInSkipSet(skipSet, component, variant)) {
|
|
1914
|
+
return;
|
|
1915
|
+
}
|
|
1860
1916
|
const elementHandle = "elementHandle" in handleOrLocator ? await handleOrLocator.elementHandle() : handleOrLocator;
|
|
1861
1917
|
if (!elementHandle) {
|
|
1862
1918
|
throw new Error("elementHandle cannot be null or undefined");
|