@scrymore/scry-sbcov 0.3.3 → 0.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.
- package/dist/cli/config.d.ts +3 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +36 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +3 -0
- package/dist/core/analyzer.js.map +1 -1
- package/dist/core/built-story-index.d.ts +32 -5
- package/dist/core/built-story-index.d.ts.map +1 -1
- package/dist/core/built-story-index.js +72 -11
- package/dist/core/built-story-index.js.map +1 -1
- package/dist/core/capture-target.d.ts +48 -0
- package/dist/core/capture-target.d.ts.map +1 -0
- package/dist/core/capture-target.js +32 -0
- package/dist/core/capture-target.js.map +1 -0
- package/dist/core/static-server.d.ts.map +1 -1
- package/dist/core/static-server.js +35 -18
- package/dist/core/static-server.js.map +1 -1
- package/dist/core/story-executor.d.ts.map +1 -1
- package/dist/core/story-executor.js +60 -7
- package/dist/core/story-executor.js.map +1 -1
- package/dist/core/zip-generator.d.ts.map +1 -1
- package/dist/core/zip-generator.js +1 -0
- package/dist/core/zip-generator.js.map +1 -1
- package/dist/parsers/story-parser.d.ts.map +1 -1
- package/dist/parsers/story-parser.js +317 -27
- package/dist/parsers/story-parser.js.map +1 -1
- package/dist/types/index.d.ts +48 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/config.d.ts
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* Configuration file loader for scry-sbcov
|
|
3
3
|
* Supports scry-sbcov.config.js, scry-sbcov.config.mjs, and package.json
|
|
4
4
|
*/
|
|
5
|
-
import type { ScryConfig, CliOptions } from '../types/index.js';
|
|
5
|
+
import type { ScryConfig, CliOptions, CaptureViewport } from '../types/index.js';
|
|
6
6
|
declare const DEFAULT_CONFIG: ScryConfig;
|
|
7
7
|
/**
|
|
8
8
|
* Merge CLI options with config file and defaults
|
|
9
9
|
*/
|
|
10
10
|
export declare function loadConfig(cliOptions: CliOptions, projectPath?: string): Promise<ScryConfig>;
|
|
11
|
+
/** "390x844" → { width: 390, height: 844 }. */
|
|
12
|
+
export declare function parseViewport(value: string): CaptureViewport;
|
|
11
13
|
export { DEFAULT_CONFIG };
|
|
12
14
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElG,QAAA,MAAM,cAAc,EAAE,UAmCrB,CAAC;AAgFF;;GAEG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,CA2ErB;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAI5D;AAmDD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/cli/config.js
CHANGED
|
@@ -18,6 +18,9 @@ const DEFAULT_CONFIG = {
|
|
|
18
18
|
storybookStaticDir: null,
|
|
19
19
|
executionTimeout: 15000,
|
|
20
20
|
captureAllScreenshots: false,
|
|
21
|
+
captureMode: 'viewport',
|
|
22
|
+
captureViewport: { width: 1280, height: 720 },
|
|
23
|
+
captureScale: 1,
|
|
21
24
|
thresholds: {
|
|
22
25
|
componentCoverage: 80,
|
|
23
26
|
propCoverage: 70,
|
|
@@ -151,6 +154,15 @@ export async function loadConfig(cliOptions, projectPath = process.cwd()) {
|
|
|
151
154
|
config.execute = true;
|
|
152
155
|
config.captureAllScreenshots = true;
|
|
153
156
|
}
|
|
157
|
+
if (cliOptions.captureMode !== undefined) {
|
|
158
|
+
config.captureMode = cliOptions.captureMode;
|
|
159
|
+
}
|
|
160
|
+
if (cliOptions.captureViewport !== undefined) {
|
|
161
|
+
config.captureViewport = parseViewport(cliOptions.captureViewport);
|
|
162
|
+
}
|
|
163
|
+
if (cliOptions.captureScale !== undefined) {
|
|
164
|
+
config.captureScale = cliOptions.captureScale;
|
|
165
|
+
}
|
|
154
166
|
if (cliOptions.storybookUrl) {
|
|
155
167
|
config.storybookUrl = cliOptions.storybookUrl;
|
|
156
168
|
}
|
|
@@ -170,8 +182,29 @@ export async function loadConfig(cliOptions, projectPath = process.cwd()) {
|
|
|
170
182
|
if (cliOptions.thresholdNewCode !== undefined) {
|
|
171
183
|
config.thresholds.newCodeCoverage = cliOptions.thresholdNewCode;
|
|
172
184
|
}
|
|
185
|
+
validateCapture(config);
|
|
173
186
|
return config;
|
|
174
187
|
}
|
|
188
|
+
/** "390x844" → { width: 390, height: 844 }. */
|
|
189
|
+
export function parseViewport(value) {
|
|
190
|
+
const m = /^\s*(\d+)\s*[xX×]\s*(\d+)\s*$/.exec(value);
|
|
191
|
+
if (!m)
|
|
192
|
+
throw new Error(`Invalid --capture-viewport "${value}": expected WIDTHxHEIGHT, e.g. 390x844`);
|
|
193
|
+
return { width: Number(m[1]), height: Number(m[2]) };
|
|
194
|
+
}
|
|
195
|
+
/** Reject capture settings that would produce nothing or something unexpected, whatever their source. */
|
|
196
|
+
function validateCapture(config) {
|
|
197
|
+
if (config.captureMode !== 'viewport' && config.captureMode !== 'root') {
|
|
198
|
+
throw new Error(`Invalid captureMode "${String(config.captureMode)}": expected "viewport" or "root"`);
|
|
199
|
+
}
|
|
200
|
+
const v = config.captureViewport;
|
|
201
|
+
if (!v || !Number.isInteger(v.width) || !Number.isInteger(v.height) || v.width < 1 || v.height < 1) {
|
|
202
|
+
throw new Error(`Invalid captureViewport ${JSON.stringify(v)}: expected { width, height } in whole CSS px`);
|
|
203
|
+
}
|
|
204
|
+
if (typeof config.captureScale !== 'number' || !(config.captureScale > 0) || config.captureScale > 4) {
|
|
205
|
+
throw new Error(`Invalid captureScale ${String(config.captureScale)}: expected a number in (0, 4]`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
175
208
|
/**
|
|
176
209
|
* Deep merge configuration objects
|
|
177
210
|
*/
|
|
@@ -193,6 +226,9 @@ function mergeConfig(base, override) {
|
|
|
193
226
|
...value,
|
|
194
227
|
};
|
|
195
228
|
}
|
|
229
|
+
else if (key === 'captureViewport' && typeof value === 'object') {
|
|
230
|
+
result.captureViewport = { ...base.captureViewport, ...value };
|
|
231
|
+
}
|
|
196
232
|
else if (key === 'componentStoryMapping' && typeof value === 'object') {
|
|
197
233
|
result.componentStoryMapping = {
|
|
198
234
|
...base.componentStoryMapping,
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,cAAc,GAAe;IACjC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,+EAA+E;IAC/E,8EAA8E;IAC9E,OAAO,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;IACzK,aAAa,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;IAC7F,UAAU,EAAE,MAAM;IAClB,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,KAAK;IACvB,qBAAqB,EAAE,KAAK;IAC5B,WAAW,EAAE,UAAU;IACvB,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC7C,YAAY,EAAE,CAAC;IACf,UAAU,EAAE;QACV,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;KACpB;IACD,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE;QAChB,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC;QAC1E,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC;QACpE,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QAChD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;QACpC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;QAClD,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvD,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;QAC5D,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;KAC/B;IACD,qBAAqB,EAAE,EAAE;CAC1B,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,UAAkB;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,0CAA0C;QAC1C,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;QAClC,CAAC;QAED,aAAa;QACb,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,WAAmB;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,WAAmB;IAC/C,MAAM,WAAW,GAAG;QAClB,sBAAsB;QACtB,uBAAuB;QACvB,wBAAwB;QACxB,gBAAgB;QAChB,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAsB,EACtB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,sBAAsB;IACtB,IAAI,MAAM,GAAe,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/C,qDAAqD;IACrD,IAAI,UAAU,GAA+B,IAAI,CAAC;IAElD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,MAAM,4BAA4B,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,oBAAoB;IACpB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,4BAA4B;IAC5B,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAwC,CAAC;IAC3E,CAAC;IACD,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;QAC/B,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC,eAAe,CAAC;IACzD,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;IACxC,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IAC1C,CAAC;IACD,IAAI,UAAU,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,kBAAkB,CAAC;IACtE,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAClE,CAAC;IAED,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,wCAAwC,CAAC,CAAC;IACtG,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,yGAAyG;AACzG,SAAS,eAAe,CAAC,MAAkB;IACzC,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC;IACxG,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;IACjC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAgB,EAAE,QAA6B;IAClE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAyB,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,IAAI,GAAG,KAAK,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,CAAC,UAAU,GAAG;gBAClB,GAAG,IAAI,CAAC,UAAU;gBAClB,GAAI,KAAkC;aACvC,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,KAAK,kBAAkB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,CAAC,gBAAgB,GAAG;gBACxB,GAAG,IAAI,CAAC,gBAAgB;gBACxB,GAAI,KAAkC;aACvC,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClE,MAAM,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAI,KAAkC,EAAE,CAAC;QAC/F,CAAC;aAAM,IAAI,GAAG,KAAK,uBAAuB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxE,MAAM,CAAC,qBAAqB,GAAG;gBAC7B,GAAG,IAAI,CAAC,qBAAqB;gBAC7B,GAAI,KAAgC;aACrC,CAAC;QACJ,CAAC;aAAM,CAAC;YACL,MAAkC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -33,6 +33,9 @@ program
|
|
|
33
33
|
.option('--no-git', 'Disable git-based new code analysis')
|
|
34
34
|
.option('--execute', 'Run stories and capture failures')
|
|
35
35
|
.option('--screenshots', 'Capture screenshots for all passing stories (implies --execute)')
|
|
36
|
+
.option('--capture-mode <mode>', "Screenshot framing: viewport (default) or root (crop to the story's root element)")
|
|
37
|
+
.option('--capture-viewport <WxH>', 'Browser viewport in CSS px for execution (default: 1280x720)')
|
|
38
|
+
.option('--capture-scale <n>', 'Device scale factor for screenshots (default: 1)', parseFloat)
|
|
36
39
|
.option('--storybook-url <url>', 'Storybook URL for execution (default: http://localhost:6006)')
|
|
37
40
|
.option('--storybook-static <dir>', 'Path to static Storybook build')
|
|
38
41
|
.option('--output-zip <path>', 'Output metadata+screenshots ZIP to this path')
|
|
@@ -90,6 +93,7 @@ async function run(cliOptions) {
|
|
|
90
93
|
console.log(chalk.gray(' Story execution:'), config.execute ? 'enabled' : 'disabled');
|
|
91
94
|
if (config.captureAllScreenshots) {
|
|
92
95
|
console.log(chalk.gray(' Capture screenshots:'), 'enabled');
|
|
96
|
+
console.log(chalk.gray(' Capture framing:'), `${config.captureMode}, ${config.captureViewport.width}x${config.captureViewport.height} @${config.captureScale}x`);
|
|
93
97
|
}
|
|
94
98
|
if (config.outputZip) {
|
|
95
99
|
console.log(chalk.gray(' Output ZIP:'), config.outputZip);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAQ3F;;GAEG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,GACd,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAQ3F;;GAEG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,GACd,OAAO,CAAC,mBAAmB,CAAC,CA2H9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,GACd,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,UAAQ,GACd,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAGD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/core/analyzer.js
CHANGED
|
@@ -78,6 +78,9 @@ export async function analyze(projectPath, config, verbose = false) {
|
|
|
78
78
|
timeout: config.executionTimeout,
|
|
79
79
|
screenshotOnFailure: true,
|
|
80
80
|
captureAllScreenshots: config.captureAllScreenshots,
|
|
81
|
+
captureMode: config.captureMode,
|
|
82
|
+
captureViewport: config.captureViewport,
|
|
83
|
+
captureScale: config.captureScale,
|
|
81
84
|
}, verbose);
|
|
82
85
|
if (verbose) {
|
|
83
86
|
const { passed, failed, total } = executionResults.summary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The set of stories Storybook actually built, read from `index.json
|
|
2
|
+
* The set of stories Storybook actually built, read from `index.json` or, on
|
|
3
|
+
* Storybook 6, `stories.json`.
|
|
3
4
|
*
|
|
4
5
|
* Story discovery globs (`**\/*.stories.tsx` and friends) are not the same set
|
|
5
6
|
* as Storybook's own `stories` config in `.storybook/main.ts`, and the two
|
|
@@ -14,26 +15,52 @@
|
|
|
14
15
|
* silently absent from the index, while the run reports success. This is the
|
|
15
16
|
* dangerous direction, and it is invisible without this check.
|
|
16
17
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
18
|
+
* The index is the authoritative record of what exists: Storybook wrote it from
|
|
19
|
+
* the same config it built from. Preferring it removes the guesswork.
|
|
20
|
+
*
|
|
21
|
+
* Which file holds it depends on the Storybook version, and reading only the
|
|
22
|
+
* modern name is the third way to end up indexing nothing. Storybook 7 and
|
|
23
|
+
* later write `index.json`. Storybook 6 never writes that name; it writes
|
|
24
|
+
* `stories.json`, and only when `features: { buildStoriesJson: true }` is set.
|
|
25
|
+
* A 6.x build without that flag has no manifest at all — which is worth saying
|
|
26
|
+
* out loud rather than treating as "capture against a dev server".
|
|
19
27
|
*/
|
|
28
|
+
/** Manifest filenames, newest name first — both live at the build root. */
|
|
29
|
+
export declare const STORY_INDEX_FILENAMES: readonly ["index.json", "stories.json"];
|
|
20
30
|
export interface BuiltStoryIndex {
|
|
21
31
|
/** Story ids present in the build, e.g. `components-button--primary`. */
|
|
22
32
|
ids: Set<string>;
|
|
33
|
+
/** Filename the index came from, when it was read from a build. */
|
|
34
|
+
source?: (typeof STORY_INDEX_FILENAMES)[number];
|
|
23
35
|
}
|
|
24
36
|
/**
|
|
25
37
|
* Load the built story index, or null when it cannot be read.
|
|
26
38
|
*
|
|
27
39
|
* Returning null rather than throwing is deliberate: capture against a running
|
|
28
40
|
* dev server has no static directory to read, and that is a supported mode
|
|
29
|
-
* rather than an error.
|
|
41
|
+
* rather than an error. Callers that do have a static directory report the
|
|
42
|
+
* absence themselves — see `describeMissingStoryIndex`.
|
|
30
43
|
*/
|
|
31
44
|
export declare function loadBuiltStoryIndex(staticDir: string | undefined): Promise<BuiltStoryIndex | null>;
|
|
32
45
|
/**
|
|
33
|
-
*
|
|
46
|
+
* Explain a build that carries no story manifest.
|
|
47
|
+
*
|
|
48
|
+
* The failure this guards against is silent: no manifest means no reconciliation,
|
|
49
|
+
* so a run that captured a fraction of the library — or none of it — looks exactly
|
|
50
|
+
* like a run that captured all of it.
|
|
51
|
+
*/
|
|
52
|
+
export declare function describeMissingStoryIndex(staticDir: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Parse an `index.json` or `stories.json` payload, or null when it is neither.
|
|
34
55
|
*
|
|
35
56
|
* Split out from the disk read because the same payload is also fetched over
|
|
36
57
|
* HTTP to confirm the server being captured is serving this build.
|
|
58
|
+
*
|
|
59
|
+
* The two envelopes differ in more than the key they hang entries off. v4
|
|
60
|
+
* (`index.json`) tags docs entries with `type: 'docs'`; v3 (`stories.json`) has
|
|
61
|
+
* no `type` at all and marks the same entries `parameters.docsOnly`. Both are
|
|
62
|
+
* skipped here, because a docs page has no story to capture and would otherwise
|
|
63
|
+
* be reported as a story that discovery missed.
|
|
37
64
|
*/
|
|
38
65
|
export declare function parseStoryIndex(raw: string): BuiltStoryIndex | null;
|
|
39
66
|
export interface ReconcileResult<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-story-index.d.ts","sourceRoot":"","sources":["../../src/core/built-story-index.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"built-story-index.d.ts","sourceRoot":"","sources":["../../src/core/built-story-index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,yCAA0C,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgBjC;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAuBnE;AAcD,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,8DAA8D;IAC9D,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,yEAAyE;IACzE,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,yEAAyE;IACzE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,UAAU,EAAE,CAAC,EAAE,EACf,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC9B,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,eAAe,CAAC,CAAC,CAAC,CAmBpB"}
|
|
@@ -1,27 +1,83 @@
|
|
|
1
1
|
import { readFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* The set of stories Storybook actually built, read from `index.json` or, on
|
|
5
|
+
* Storybook 6, `stories.json`.
|
|
6
|
+
*
|
|
7
|
+
* Story discovery globs (`**\/*.stories.tsx` and friends) are not the same set
|
|
8
|
+
* as Storybook's own `stories` config in `.storybook/main.ts`, and the two
|
|
9
|
+
* diverge in both directions:
|
|
10
|
+
*
|
|
11
|
+
* - Glob wider than the build — every extra id is navigated to, finds nothing,
|
|
12
|
+
* and burns the full timeout. A repo that still has Storybook's starter
|
|
13
|
+
* `./stories/` examples while building only `../src/**` spends ~150s per run
|
|
14
|
+
* failing to capture components that were never built.
|
|
15
|
+
*
|
|
16
|
+
* - Glob narrower than the build — real components are never captured and are
|
|
17
|
+
* silently absent from the index, while the run reports success. This is the
|
|
18
|
+
* dangerous direction, and it is invisible without this check.
|
|
19
|
+
*
|
|
20
|
+
* The index is the authoritative record of what exists: Storybook wrote it from
|
|
21
|
+
* the same config it built from. Preferring it removes the guesswork.
|
|
22
|
+
*
|
|
23
|
+
* Which file holds it depends on the Storybook version, and reading only the
|
|
24
|
+
* modern name is the third way to end up indexing nothing. Storybook 7 and
|
|
25
|
+
* later write `index.json`. Storybook 6 never writes that name; it writes
|
|
26
|
+
* `stories.json`, and only when `features: { buildStoriesJson: true }` is set.
|
|
27
|
+
* A 6.x build without that flag has no manifest at all — which is worth saying
|
|
28
|
+
* out loud rather than treating as "capture against a dev server".
|
|
29
|
+
*/
|
|
30
|
+
/** Manifest filenames, newest name first — both live at the build root. */
|
|
31
|
+
export const STORY_INDEX_FILENAMES = ['index.json', 'stories.json'];
|
|
3
32
|
/**
|
|
4
33
|
* Load the built story index, or null when it cannot be read.
|
|
5
34
|
*
|
|
6
35
|
* Returning null rather than throwing is deliberate: capture against a running
|
|
7
36
|
* dev server has no static directory to read, and that is a supported mode
|
|
8
|
-
* rather than an error.
|
|
37
|
+
* rather than an error. Callers that do have a static directory report the
|
|
38
|
+
* absence themselves — see `describeMissingStoryIndex`.
|
|
9
39
|
*/
|
|
10
40
|
export async function loadBuiltStoryIndex(staticDir) {
|
|
11
41
|
if (!staticDir)
|
|
12
42
|
return null;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
43
|
+
for (const filename of STORY_INDEX_FILENAMES) {
|
|
44
|
+
let raw;
|
|
45
|
+
try {
|
|
46
|
+
raw = await readFile(path.join(staticDir, filename), 'utf8');
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const index = parseStoryIndex(raw);
|
|
52
|
+
if (index)
|
|
53
|
+
return { ...index, source: filename };
|
|
18
54
|
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Explain a build that carries no story manifest.
|
|
59
|
+
*
|
|
60
|
+
* The failure this guards against is silent: no manifest means no reconciliation,
|
|
61
|
+
* so a run that captured a fraction of the library — or none of it — looks exactly
|
|
62
|
+
* like a run that captured all of it.
|
|
63
|
+
*/
|
|
64
|
+
export function describeMissingStoryIndex(staticDir) {
|
|
65
|
+
return (`${staticDir} contains neither ${STORY_INDEX_FILENAMES.join(' nor ')}, so there is no record ` +
|
|
66
|
+
`of what Storybook built to check the capture against. Storybook 6.x only writes stories.json ` +
|
|
67
|
+
`when \`features: { buildStoriesJson: true }\` is set in .storybook/main.js; add it and rebuild ` +
|
|
68
|
+
`to have missing stories reported instead of passing unnoticed.`);
|
|
19
69
|
}
|
|
20
70
|
/**
|
|
21
|
-
* Parse an `index.json` payload, or null when it is
|
|
71
|
+
* Parse an `index.json` or `stories.json` payload, or null when it is neither.
|
|
22
72
|
*
|
|
23
73
|
* Split out from the disk read because the same payload is also fetched over
|
|
24
74
|
* HTTP to confirm the server being captured is serving this build.
|
|
75
|
+
*
|
|
76
|
+
* The two envelopes differ in more than the key they hang entries off. v4
|
|
77
|
+
* (`index.json`) tags docs entries with `type: 'docs'`; v3 (`stories.json`) has
|
|
78
|
+
* no `type` at all and marks the same entries `parameters.docsOnly`. Both are
|
|
79
|
+
* skipped here, because a docs page has no story to capture and would otherwise
|
|
80
|
+
* be reported as a story that discovery missed.
|
|
25
81
|
*/
|
|
26
82
|
export function parseStoryIndex(raw) {
|
|
27
83
|
let parsed;
|
|
@@ -32,18 +88,23 @@ export function parseStoryIndex(raw) {
|
|
|
32
88
|
return null;
|
|
33
89
|
}
|
|
34
90
|
const entries = parsed?.entries ?? parsed?.stories;
|
|
35
|
-
if (!entries)
|
|
91
|
+
if (!entries || typeof entries !== 'object')
|
|
36
92
|
return null;
|
|
37
93
|
const ids = new Set();
|
|
38
94
|
for (const [id, entry] of Object.entries(entries)) {
|
|
39
|
-
|
|
40
|
-
if (entry && typeof entry === 'object' && entry.type === 'docs') {
|
|
95
|
+
if (isDocsEntry(entry))
|
|
41
96
|
continue;
|
|
42
|
-
}
|
|
43
97
|
ids.add(id);
|
|
44
98
|
}
|
|
45
99
|
return { ids };
|
|
46
100
|
}
|
|
101
|
+
/** Docs pages are indexed alongside stories but have nothing to capture. */
|
|
102
|
+
function isDocsEntry(entry) {
|
|
103
|
+
if (!entry || typeof entry !== 'object')
|
|
104
|
+
return false;
|
|
105
|
+
const { type, parameters } = entry;
|
|
106
|
+
return type === 'docs' || parameters?.docsOnly === true;
|
|
107
|
+
}
|
|
47
108
|
/**
|
|
48
109
|
* Intersect discovered stories with what the build contains.
|
|
49
110
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-story-index.js","sourceRoot":"","sources":["../../src/core/built-story-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"built-story-index.js","sourceRoot":"","sources":["../../src/core/built-story-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Choosing what a story screenshot should frame.
|
|
3
|
+
*
|
|
4
|
+
* A component story renders a 50px button inside a 1280×720 window; the design
|
|
5
|
+
* it is compared against is just the button. 'root' mode crops to the story's
|
|
6
|
+
* root element so both images describe the same rectangle of UI. The rules are
|
|
7
|
+
* pure and live here so they can be unit-tested without a browser.
|
|
8
|
+
*/
|
|
9
|
+
import type { CaptureViewport } from '../types/index.js';
|
|
10
|
+
export interface Box {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}
|
|
16
|
+
export interface BoxCandidate {
|
|
17
|
+
/** `[data-scry-root]` elements are explicit markers; the storybook-root child is Storybook's own wrapper. */
|
|
18
|
+
kind: 'data-scry-root' | 'storybook-root-child';
|
|
19
|
+
/** Index among elements of that kind, in document order — used to find it again in the page. */
|
|
20
|
+
index: number;
|
|
21
|
+
box: Box;
|
|
22
|
+
}
|
|
23
|
+
export interface CaptureChoice {
|
|
24
|
+
kind: BoxCandidate['kind'];
|
|
25
|
+
index: number;
|
|
26
|
+
box: Box;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Pick the element to screenshot, or null for the whole viewport.
|
|
30
|
+
*
|
|
31
|
+
* 1. The innermost `[data-scry-root]` — the marker with the smallest area. A
|
|
32
|
+
* global decorator may mark the phone frame and a component story may mark
|
|
33
|
+
* its own wrapper; the component wins.
|
|
34
|
+
* 2. Otherwise `#storybook-root`'s first child, but only when it is actually
|
|
35
|
+
* smaller than the viewport in at least one dimension — a full-bleed layout
|
|
36
|
+
* gains nothing from a crop and would only lose fixed-position chrome.
|
|
37
|
+
* 3. Otherwise null: capture the viewport.
|
|
38
|
+
*/
|
|
39
|
+
export declare function chooseCaptureBox(candidates: BoxCandidate[], viewport: CaptureViewport): CaptureChoice | null;
|
|
40
|
+
/** Image size for a captured box at a device scale factor. */
|
|
41
|
+
export declare function imageSizeFor(box: {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
}, dpr: number): {
|
|
45
|
+
width: number;
|
|
46
|
+
height: number;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=capture-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-target.d.ts","sourceRoot":"","sources":["../../src/core/capture-target.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,6GAA6G;IAC7G,IAAI,EAAE,gBAAgB,GAAG,sBAAsB,CAAC;IAChD,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;CACV;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa,GAAG,IAAI,CAW5G;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAEnH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const EPSILON = 0.5;
|
|
2
|
+
function nonEmpty(b) {
|
|
3
|
+
return b.width > EPSILON && b.height > EPSILON;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Pick the element to screenshot, or null for the whole viewport.
|
|
7
|
+
*
|
|
8
|
+
* 1. The innermost `[data-scry-root]` — the marker with the smallest area. A
|
|
9
|
+
* global decorator may mark the phone frame and a component story may mark
|
|
10
|
+
* its own wrapper; the component wins.
|
|
11
|
+
* 2. Otherwise `#storybook-root`'s first child, but only when it is actually
|
|
12
|
+
* smaller than the viewport in at least one dimension — a full-bleed layout
|
|
13
|
+
* gains nothing from a crop and would only lose fixed-position chrome.
|
|
14
|
+
* 3. Otherwise null: capture the viewport.
|
|
15
|
+
*/
|
|
16
|
+
export function chooseCaptureBox(candidates, viewport) {
|
|
17
|
+
const markers = candidates.filter((c) => c.kind === 'data-scry-root' && nonEmpty(c.box));
|
|
18
|
+
if (markers.length > 0) {
|
|
19
|
+
const innermost = markers.reduce((best, c) => (c.box.width * c.box.height < best.box.width * best.box.height ? c : best));
|
|
20
|
+
return { kind: innermost.kind, index: innermost.index, box: innermost.box };
|
|
21
|
+
}
|
|
22
|
+
const child = candidates.find((c) => c.kind === 'storybook-root-child' && nonEmpty(c.box));
|
|
23
|
+
if (child && (child.box.width < viewport.width - EPSILON || child.box.height < viewport.height - EPSILON)) {
|
|
24
|
+
return { kind: child.kind, index: child.index, box: child.box };
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
/** Image size for a captured box at a device scale factor. */
|
|
29
|
+
export function imageSizeFor(box, dpr) {
|
|
30
|
+
return { width: Math.round(box.width * dpr), height: Math.round(box.height * dpr) };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=capture-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-target.js","sourceRoot":"","sources":["../../src/core/capture-target.ts"],"names":[],"mappings":"AA+BA,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB,SAAS,QAAQ,CAAC,CAAM;IACtB,OAAO,CAAC,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA0B,EAAE,QAAyB;IACpF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1H,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;QAC1G,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,GAAsC,EAAE,GAAW;IAC9E,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;AACtF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../src/core/static-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAahC,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,aAc9B,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAa5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,aAAiC,GAC9C,OAAO,CAAC,YAAY,CAAC,CAuDvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
6
|
import * as net from 'node:net';
|
|
7
|
-
import { parseStoryIndex } from './built-story-index.js';
|
|
7
|
+
import { parseStoryIndex, STORY_INDEX_FILENAMES, } from './built-story-index.js';
|
|
8
8
|
/**
|
|
9
9
|
* Loopback only. The build is served for this run, not for the network, and a
|
|
10
10
|
* capture that reaches the LAN is a capture someone else's proxy can answer.
|
|
@@ -123,36 +123,53 @@ export async function startStaticServer(staticDir, verbose, buildCommand = httpS
|
|
|
123
123
|
* to describe the same build, not merely a compatible one.
|
|
124
124
|
*/
|
|
125
125
|
export async function verifyServedBuild(url, staticDir, built, captureIds) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
// Ask for the manifest the build itself carries first: a Storybook 6 build has
|
|
127
|
+
// no index.json to serve, and demanding one would refuse to capture a build
|
|
128
|
+
// that is perfectly capturable.
|
|
129
|
+
const filenames = built.source
|
|
130
|
+
? [built.source, ...STORY_INDEX_FILENAMES.filter((name) => name !== built.source)]
|
|
131
|
+
: [...STORY_INDEX_FILENAMES];
|
|
132
|
+
let served = null;
|
|
133
|
+
let indexUrl = `${url}/${filenames[0]}`;
|
|
134
|
+
const failures = [];
|
|
135
|
+
for (const filename of filenames) {
|
|
136
|
+
const candidateUrl = `${url}/${filename}`;
|
|
137
|
+
let body;
|
|
138
|
+
try {
|
|
139
|
+
const response = await fetch(candidateUrl);
|
|
140
|
+
if (!response.ok)
|
|
141
|
+
throw new Error(`HTTP ${response.status}`);
|
|
142
|
+
body = await response.text();
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
failures.push(`${filename}: ${error instanceof Error ? error.message : String(error)}`);
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const parsed = parseStoryIndex(body);
|
|
149
|
+
if (!parsed) {
|
|
150
|
+
failures.push(`${filename} is not a Storybook story index`);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
served = parsed;
|
|
154
|
+
indexUrl = candidateUrl;
|
|
155
|
+
break;
|
|
138
156
|
}
|
|
139
|
-
const served = parseStoryIndex(body);
|
|
140
157
|
if (!served) {
|
|
141
|
-
throw new Error(`Refusing to capture:
|
|
142
|
-
`
|
|
158
|
+
throw new Error(`Refusing to capture: could not read the story index at ${url} — ${failures.join('; ')}. ` +
|
|
159
|
+
`Something other than the build in ${staticDir} is answering on that port.`);
|
|
143
160
|
}
|
|
144
161
|
const missing = captureIds.filter((id) => !served.ids.has(id));
|
|
145
162
|
if (missing.length > 0) {
|
|
146
163
|
throw new Error(`Refusing to capture: the server at ${url} is not serving the build in ${staticDir}. ` +
|
|
147
164
|
`${missing.length} of ${captureIds.length} stories to capture are absent from its ` +
|
|
148
|
-
|
|
165
|
+
`${indexUrl} (${sample(missing)}). ` +
|
|
149
166
|
`A proxy, a container port mapping or another Storybook is answering instead.`);
|
|
150
167
|
}
|
|
151
168
|
const absent = [...built.ids].filter((id) => !served.ids.has(id));
|
|
152
169
|
const extra = [...served.ids].filter((id) => !built.ids.has(id));
|
|
153
170
|
if (absent.length > 0 || extra.length > 0) {
|
|
154
171
|
throw new Error(`Refusing to capture: the server at ${url} answers with a different build than ${staticDir}. ` +
|
|
155
|
-
`Its
|
|
172
|
+
`Its ${indexUrl} is missing ${absent.length} story(ies) (${sample(absent)}) and carries ` +
|
|
156
173
|
`${extra.length} it should not (${sample(extra)}). ` +
|
|
157
174
|
`A proxy, a container port mapping or another Storybook is answering instead.`);
|
|
158
175
|
}
|