@chromatic-com/cypress 0.12.1 → 0.12.2-0473a2c-20260422103524

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 (26) hide show
  1. package/dist/bin/archive-storybook.js +22 -190
  2. package/dist/bin/build-archive-storybook.js +22 -190
  3. package/dist/index.js +69 -9
  4. package/dist/index.mjs +69 -9
  5. package/dist/storybook-config/main.mjs +1 -12
  6. package/dist/support.js +48 -39
  7. package/dist/support.mjs +48 -39
  8. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/README.md +7 -59
  9. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.asm.js +2 -0
  10. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.cjs +1 -0
  11. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.js +2 -0
  12. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/lexer.js +13 -23
  13. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/package.json +1 -1
  14. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/types/lexer.d.ts +1 -18
  15. package/embedded/node_modules/es-module-lexer/README.md +59 -7
  16. package/embedded/node_modules/es-module-lexer/dist/lexer.asm.js +2 -2
  17. package/embedded/node_modules/es-module-lexer/dist/lexer.cjs +1 -1
  18. package/embedded/node_modules/es-module-lexer/dist/lexer.js +2 -2
  19. package/embedded/node_modules/es-module-lexer/lexer.js +23 -13
  20. package/embedded/node_modules/es-module-lexer/package.json +1 -1
  21. package/embedded/node_modules/es-module-lexer/types/lexer.d.ts +18 -1
  22. package/package.json +1 -1
  23. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.asm.js +0 -2
  24. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.cjs +0 -1
  25. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.js +0 -2
  26. /package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/LICENSE +0 -0
@@ -4,8 +4,9 @@
4
4
  var child_process = require('child_process');
5
5
  var path = require('path');
6
6
  var fs = require('fs');
7
- var promises = require('fs/promises');
7
+ var module$1 = require('module');
8
8
 
9
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
11
12
  var path__default = /*#__PURE__*/_interopDefault(path);
@@ -45,11 +46,6 @@ function archivesDir(defaultOutputDir) {
45
46
  }
46
47
  __name(archivesDir, "archivesDir");
47
48
  __name2(archivesDir, "archivesDir");
48
- function assetsDir(defaultOutputDir) {
49
- return path__default.default.resolve(archivesDir(defaultOutputDir), "archive");
50
- }
51
- __name(assetsDir, "assetsDir");
52
- __name2(assetsDir, "assetsDir");
53
49
  function checkArchivesDirExists(defaultOutputDir) {
54
50
  const dir = archivesDir(defaultOutputDir);
55
51
  if (!fs.existsSync(dir)) {
@@ -60,203 +56,39 @@ Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARC
60
56
  }
61
57
  __name(checkArchivesDirExists, "checkArchivesDirExists");
62
58
  __name2(checkArchivesDirExists, "checkArchivesDirExists");
63
- function ensureDir(directory) {
64
- if (!fs.existsSync(directory)) {
65
- fs.mkdirSync(directory, {
66
- recursive: true
67
- });
68
- }
69
- }
70
- __name(ensureDir, "ensureDir");
71
- __name2(ensureDir, "ensureDir");
72
- async function outputFile(filePath, data) {
73
- ensureDir(path__default.default.dirname(filePath));
74
- return promises.writeFile(filePath, data, {
75
- mode: 511
76
- });
77
- }
78
- __name(outputFile, "outputFile");
79
- __name2(outputFile, "outputFile");
80
- async function outputJSONFile(filePath, data) {
81
- return outputFile(filePath, JSON.stringify(data));
82
- }
83
- __name(outputJSONFile, "outputJSONFile");
84
- __name2(outputJSONFile, "outputJSONFile");
85
- async function readJSONFile(filePath) {
86
- const data = await promises.readFile(filePath);
87
- return JSON.parse(data.toString());
88
- }
89
- __name(readJSONFile, "readJSONFile");
90
- __name2(readJSONFile, "readJSONFile");
91
- function viewportToString(viewport) {
92
- return `w${viewport.width}h${viewport.height}`;
93
- }
94
- __name(viewportToString, "viewportToString");
95
- __name2(viewportToString, "viewportToString");
96
- function parseViewport(viewportString) {
97
- const matcher = viewportString.match(/w(\d+)h(\d+)/);
98
- return {
99
- width: Number(matcher[1]),
100
- height: Number(matcher[2])
101
- };
102
- }
103
- __name(parseViewport, "parseViewport");
104
- __name2(parseViewport, "parseViewport");
105
- var SNAPSHOT_FILE_EXT = "snapshot.json";
106
- function snapshotIdFromFileName(fileName) {
107
- const fileParts = fileName.split(".");
108
- return fileParts.slice(0, fileParts.length - 3).join(".");
109
- }
110
- __name(snapshotIdFromFileName, "snapshotIdFromFileName");
111
- __name2(snapshotIdFromFileName, "snapshotIdFromFileName");
112
- function viewportFromFileName(fileName) {
113
- const fileParts = fileName.split(".");
114
- const viewportStr = fileParts[fileParts.length - 3];
115
- return parseViewport(viewportStr);
116
- }
117
- __name(viewportFromFileName, "viewportFromFileName");
118
- __name2(viewportFromFileName, "viewportFromFileName");
119
- async function listSnapshotFiles(snapshotsDir) {
120
- const files = await promises.readdir(snapshotsDir);
121
- return files.filter((file) => file.endsWith(`.${SNAPSHOT_FILE_EXT}`));
122
- }
123
- __name(listSnapshotFiles, "listSnapshotFiles");
124
- __name2(listSnapshotFiles, "listSnapshotFiles");
125
- var STORIES_FILE_EXT = "stories.json";
126
- function addViewportsToStories(storiesFileJson, viewportsStoriesLookup) {
127
- const { stories } = storiesFileJson;
128
- const storiesWithViewports = stories.map((story) => {
129
- const storyId = story.parameters.server.id;
130
- const viewports = viewportsStoriesLookup[storyId];
131
- return {
132
- ...story,
133
- parameters: {
134
- ...story.parameters,
135
- chromatic: {
136
- ...story.parameters.chromatic,
137
- modes: buildStoryModesConfig(viewports)
138
- },
139
- viewport: {
140
- viewports: buildStoryViewportsConfig(viewports),
141
- defaultViewport: viewportToString(findDefaultViewport(viewports))
142
- }
143
- }
144
- };
145
- });
146
- return {
147
- ...storiesFileJson,
148
- stories: storiesWithViewports
149
- };
150
- }
151
- __name(addViewportsToStories, "addViewportsToStories");
152
- __name2(addViewportsToStories, "addViewportsToStories");
153
- async function listStoriesFiles(storiesDir) {
154
- const files = await promises.readdir(storiesDir);
155
- return files.filter((file) => file.endsWith(`.${STORIES_FILE_EXT}`));
156
- }
157
- __name(listStoriesFiles, "listStoriesFiles");
158
- __name2(listStoriesFiles, "listStoriesFiles");
159
- function buildStoryModesConfig(viewports) {
160
- return viewports.reduce((modes, viewport) => {
161
- const viewportName = viewportToString(viewport);
162
- modes[viewportName] = {
163
- viewport: viewportName
164
- };
165
- return modes;
166
- }, {});
167
- }
168
- __name(buildStoryModesConfig, "buildStoryModesConfig");
169
- __name2(buildStoryModesConfig, "buildStoryModesConfig");
170
- function buildStoryViewportsConfig(viewports) {
171
- return viewports.reduce((viewportsConfig, viewport) => {
172
- const viewportName = viewportToString(viewport);
173
- viewportsConfig[viewportName] = {
174
- name: viewportName,
175
- styles: {
176
- width: `${viewport.width}px`,
177
- height: `${viewport.height}px`
178
- }
179
- };
180
- return viewportsConfig;
181
- }, {});
182
- }
183
- __name(buildStoryViewportsConfig, "buildStoryViewportsConfig");
184
- __name2(buildStoryViewportsConfig, "buildStoryViewportsConfig");
185
- function findDefaultViewport(viewports) {
186
- const compareFn = /* @__PURE__ */ __name2((vp1, vp2) => {
187
- if (vp1.width < vp2.width) {
188
- return 1;
189
- }
190
- if (vp1.width > vp2.width) {
191
- return -1;
192
- }
193
- return 0;
194
- }, "compareFn");
195
- return viewports.sort(compareFn)[0];
196
- }
197
- __name(findDefaultViewport, "findDefaultViewport");
198
- __name2(findDefaultViewport, "findDefaultViewport");
199
- async function addViewportsToStoriesFiles(defaultOutputDir) {
200
- const snapshotsDir = assetsDir(defaultOutputDir);
201
- const snapshotFileNames = await listSnapshotFiles(snapshotsDir);
202
- const viewportsLookup = buildSnapshotViewportsLookup(snapshotFileNames);
203
- const storiesDir = archivesDir(defaultOutputDir);
204
- const storiesFilePaths = (await listStoriesFiles(storiesDir)).map((storiesFileName) => path__default.default.resolve(storiesDir, storiesFileName));
205
- await Promise.all(storiesFilePaths.map(async (storiesFilePath) => {
206
- const storiesFileJson = await readJSONFile(storiesFilePath);
207
- const storiesWithViewports = addViewportsToStories(storiesFileJson, viewportsLookup);
208
- await outputJSONFile(storiesFilePath, storiesWithViewports);
209
- }));
210
- }
211
- __name(addViewportsToStoriesFiles, "addViewportsToStoriesFiles");
212
- __name2(addViewportsToStoriesFiles, "addViewportsToStoriesFiles");
213
- function buildSnapshotViewportsLookup(snapshotFileNames) {
214
- const lookup = {};
215
- snapshotFileNames.forEach((file) => {
216
- const snapshotId2 = snapshotIdFromFileName(file);
217
- const viewports = lookup[snapshotId2] || [];
218
- viewports.push(viewportFromFileName(file));
219
- lookup[snapshotId2] = viewports;
220
- });
221
- return lookup;
222
- }
223
- __name(buildSnapshotViewportsLookup, "buildSnapshotViewportsLookup");
224
- __name2(buildSnapshotViewportsLookup, "buildSnapshotViewportsLookup");
59
+ var req = __require2.resolve ? __require2 : module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('out.js', document.baseURI).href)));
225
60
  function archiveStorybook(processArgs, configDir2, defaultOutputDir) {
226
61
  checkArchivesDirExists(defaultOutputDir);
227
- addViewportsToStoriesFiles(defaultOutputDir).then(() => {
228
- child_process.execFileSync("node", [
229
- binPath(),
230
- "dev",
231
- ...processArgs,
232
- "-c",
233
- configDir2
234
- ], {
235
- stdio: "inherit"
236
- });
62
+ child_process.execFileSync("node", [
63
+ binPath(),
64
+ "dev",
65
+ ...processArgs,
66
+ "-c",
67
+ configDir2
68
+ ], {
69
+ stdio: "inherit"
237
70
  });
238
71
  }
239
72
  __name(archiveStorybook, "archiveStorybook");
240
73
  __name2(archiveStorybook, "archiveStorybook");
241
74
  function buildArchiveStorybook(processArgs, configDir2, defaultOutputDir) {
242
75
  checkArchivesDirExists(defaultOutputDir);
243
- addViewportsToStoriesFiles(defaultOutputDir).then(() => {
244
- child_process.execFileSync("node", [
245
- binPath(),
246
- "build",
247
- ...processArgs,
248
- "-c",
249
- configDir2
250
- ], {
251
- stdio: "inherit"
252
- });
76
+ child_process.execFileSync("node", [
77
+ binPath(),
78
+ "build",
79
+ ...processArgs,
80
+ "-c",
81
+ configDir2
82
+ ], {
83
+ stdio: "inherit"
253
84
  });
254
85
  }
255
86
  __name(buildArchiveStorybook, "buildArchiveStorybook");
256
87
  __name2(buildArchiveStorybook, "buildArchiveStorybook");
257
88
  function binPath() {
258
- const packageJson = __require2("storybook/package.json");
259
- return path.resolve(path.dirname(__require2.resolve("storybook/package.json")), packageJson.bin);
89
+ const filename = req.resolve("storybook/package.json");
90
+ const packageJson = JSON.parse(fs.readFileSync(filename, "utf8"));
91
+ return path.resolve(path.dirname(filename), packageJson.bin);
260
92
  }
261
93
  __name(binPath, "binPath");
262
94
  __name2(binPath, "binPath");
@@ -4,8 +4,9 @@
4
4
  var child_process = require('child_process');
5
5
  var path = require('path');
6
6
  var fs = require('fs');
7
- var promises = require('fs/promises');
7
+ var module$1 = require('module');
8
8
 
9
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
11
12
  var path__default = /*#__PURE__*/_interopDefault(path);
@@ -45,11 +46,6 @@ function archivesDir(defaultOutputDir) {
45
46
  }
46
47
  __name(archivesDir, "archivesDir");
47
48
  __name2(archivesDir, "archivesDir");
48
- function assetsDir(defaultOutputDir) {
49
- return path__default.default.resolve(archivesDir(defaultOutputDir), "archive");
50
- }
51
- __name(assetsDir, "assetsDir");
52
- __name2(assetsDir, "assetsDir");
53
49
  function checkArchivesDirExists(defaultOutputDir) {
54
50
  const dir = archivesDir(defaultOutputDir);
55
51
  if (!fs.existsSync(dir)) {
@@ -60,203 +56,39 @@ Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARC
60
56
  }
61
57
  __name(checkArchivesDirExists, "checkArchivesDirExists");
62
58
  __name2(checkArchivesDirExists, "checkArchivesDirExists");
63
- function ensureDir(directory) {
64
- if (!fs.existsSync(directory)) {
65
- fs.mkdirSync(directory, {
66
- recursive: true
67
- });
68
- }
69
- }
70
- __name(ensureDir, "ensureDir");
71
- __name2(ensureDir, "ensureDir");
72
- async function outputFile(filePath, data) {
73
- ensureDir(path__default.default.dirname(filePath));
74
- return promises.writeFile(filePath, data, {
75
- mode: 511
76
- });
77
- }
78
- __name(outputFile, "outputFile");
79
- __name2(outputFile, "outputFile");
80
- async function outputJSONFile(filePath, data) {
81
- return outputFile(filePath, JSON.stringify(data));
82
- }
83
- __name(outputJSONFile, "outputJSONFile");
84
- __name2(outputJSONFile, "outputJSONFile");
85
- async function readJSONFile(filePath) {
86
- const data = await promises.readFile(filePath);
87
- return JSON.parse(data.toString());
88
- }
89
- __name(readJSONFile, "readJSONFile");
90
- __name2(readJSONFile, "readJSONFile");
91
- function viewportToString(viewport) {
92
- return `w${viewport.width}h${viewport.height}`;
93
- }
94
- __name(viewportToString, "viewportToString");
95
- __name2(viewportToString, "viewportToString");
96
- function parseViewport(viewportString) {
97
- const matcher = viewportString.match(/w(\d+)h(\d+)/);
98
- return {
99
- width: Number(matcher[1]),
100
- height: Number(matcher[2])
101
- };
102
- }
103
- __name(parseViewport, "parseViewport");
104
- __name2(parseViewport, "parseViewport");
105
- var SNAPSHOT_FILE_EXT = "snapshot.json";
106
- function snapshotIdFromFileName(fileName) {
107
- const fileParts = fileName.split(".");
108
- return fileParts.slice(0, fileParts.length - 3).join(".");
109
- }
110
- __name(snapshotIdFromFileName, "snapshotIdFromFileName");
111
- __name2(snapshotIdFromFileName, "snapshotIdFromFileName");
112
- function viewportFromFileName(fileName) {
113
- const fileParts = fileName.split(".");
114
- const viewportStr = fileParts[fileParts.length - 3];
115
- return parseViewport(viewportStr);
116
- }
117
- __name(viewportFromFileName, "viewportFromFileName");
118
- __name2(viewportFromFileName, "viewportFromFileName");
119
- async function listSnapshotFiles(snapshotsDir) {
120
- const files = await promises.readdir(snapshotsDir);
121
- return files.filter((file) => file.endsWith(`.${SNAPSHOT_FILE_EXT}`));
122
- }
123
- __name(listSnapshotFiles, "listSnapshotFiles");
124
- __name2(listSnapshotFiles, "listSnapshotFiles");
125
- var STORIES_FILE_EXT = "stories.json";
126
- function addViewportsToStories(storiesFileJson, viewportsStoriesLookup) {
127
- const { stories } = storiesFileJson;
128
- const storiesWithViewports = stories.map((story) => {
129
- const storyId = story.parameters.server.id;
130
- const viewports = viewportsStoriesLookup[storyId];
131
- return {
132
- ...story,
133
- parameters: {
134
- ...story.parameters,
135
- chromatic: {
136
- ...story.parameters.chromatic,
137
- modes: buildStoryModesConfig(viewports)
138
- },
139
- viewport: {
140
- viewports: buildStoryViewportsConfig(viewports),
141
- defaultViewport: viewportToString(findDefaultViewport(viewports))
142
- }
143
- }
144
- };
145
- });
146
- return {
147
- ...storiesFileJson,
148
- stories: storiesWithViewports
149
- };
150
- }
151
- __name(addViewportsToStories, "addViewportsToStories");
152
- __name2(addViewportsToStories, "addViewportsToStories");
153
- async function listStoriesFiles(storiesDir) {
154
- const files = await promises.readdir(storiesDir);
155
- return files.filter((file) => file.endsWith(`.${STORIES_FILE_EXT}`));
156
- }
157
- __name(listStoriesFiles, "listStoriesFiles");
158
- __name2(listStoriesFiles, "listStoriesFiles");
159
- function buildStoryModesConfig(viewports) {
160
- return viewports.reduce((modes, viewport) => {
161
- const viewportName = viewportToString(viewport);
162
- modes[viewportName] = {
163
- viewport: viewportName
164
- };
165
- return modes;
166
- }, {});
167
- }
168
- __name(buildStoryModesConfig, "buildStoryModesConfig");
169
- __name2(buildStoryModesConfig, "buildStoryModesConfig");
170
- function buildStoryViewportsConfig(viewports) {
171
- return viewports.reduce((viewportsConfig, viewport) => {
172
- const viewportName = viewportToString(viewport);
173
- viewportsConfig[viewportName] = {
174
- name: viewportName,
175
- styles: {
176
- width: `${viewport.width}px`,
177
- height: `${viewport.height}px`
178
- }
179
- };
180
- return viewportsConfig;
181
- }, {});
182
- }
183
- __name(buildStoryViewportsConfig, "buildStoryViewportsConfig");
184
- __name2(buildStoryViewportsConfig, "buildStoryViewportsConfig");
185
- function findDefaultViewport(viewports) {
186
- const compareFn = /* @__PURE__ */ __name2((vp1, vp2) => {
187
- if (vp1.width < vp2.width) {
188
- return 1;
189
- }
190
- if (vp1.width > vp2.width) {
191
- return -1;
192
- }
193
- return 0;
194
- }, "compareFn");
195
- return viewports.sort(compareFn)[0];
196
- }
197
- __name(findDefaultViewport, "findDefaultViewport");
198
- __name2(findDefaultViewport, "findDefaultViewport");
199
- async function addViewportsToStoriesFiles(defaultOutputDir) {
200
- const snapshotsDir = assetsDir(defaultOutputDir);
201
- const snapshotFileNames = await listSnapshotFiles(snapshotsDir);
202
- const viewportsLookup = buildSnapshotViewportsLookup(snapshotFileNames);
203
- const storiesDir = archivesDir(defaultOutputDir);
204
- const storiesFilePaths = (await listStoriesFiles(storiesDir)).map((storiesFileName) => path__default.default.resolve(storiesDir, storiesFileName));
205
- await Promise.all(storiesFilePaths.map(async (storiesFilePath) => {
206
- const storiesFileJson = await readJSONFile(storiesFilePath);
207
- const storiesWithViewports = addViewportsToStories(storiesFileJson, viewportsLookup);
208
- await outputJSONFile(storiesFilePath, storiesWithViewports);
209
- }));
210
- }
211
- __name(addViewportsToStoriesFiles, "addViewportsToStoriesFiles");
212
- __name2(addViewportsToStoriesFiles, "addViewportsToStoriesFiles");
213
- function buildSnapshotViewportsLookup(snapshotFileNames) {
214
- const lookup = {};
215
- snapshotFileNames.forEach((file) => {
216
- const snapshotId2 = snapshotIdFromFileName(file);
217
- const viewports = lookup[snapshotId2] || [];
218
- viewports.push(viewportFromFileName(file));
219
- lookup[snapshotId2] = viewports;
220
- });
221
- return lookup;
222
- }
223
- __name(buildSnapshotViewportsLookup, "buildSnapshotViewportsLookup");
224
- __name2(buildSnapshotViewportsLookup, "buildSnapshotViewportsLookup");
59
+ var req = __require2.resolve ? __require2 : module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('out.js', document.baseURI).href)));
225
60
  function archiveStorybook(processArgs, configDir2, defaultOutputDir) {
226
61
  checkArchivesDirExists(defaultOutputDir);
227
- addViewportsToStoriesFiles(defaultOutputDir).then(() => {
228
- child_process.execFileSync("node", [
229
- binPath(),
230
- "dev",
231
- ...processArgs,
232
- "-c",
233
- configDir2
234
- ], {
235
- stdio: "inherit"
236
- });
62
+ child_process.execFileSync("node", [
63
+ binPath(),
64
+ "dev",
65
+ ...processArgs,
66
+ "-c",
67
+ configDir2
68
+ ], {
69
+ stdio: "inherit"
237
70
  });
238
71
  }
239
72
  __name(archiveStorybook, "archiveStorybook");
240
73
  __name2(archiveStorybook, "archiveStorybook");
241
74
  function buildArchiveStorybook(processArgs, configDir2, defaultOutputDir) {
242
75
  checkArchivesDirExists(defaultOutputDir);
243
- addViewportsToStoriesFiles(defaultOutputDir).then(() => {
244
- child_process.execFileSync("node", [
245
- binPath(),
246
- "build",
247
- ...processArgs,
248
- "-c",
249
- configDir2
250
- ], {
251
- stdio: "inherit"
252
- });
76
+ child_process.execFileSync("node", [
77
+ binPath(),
78
+ "build",
79
+ ...processArgs,
80
+ "-c",
81
+ configDir2
82
+ ], {
83
+ stdio: "inherit"
253
84
  });
254
85
  }
255
86
  __name(buildArchiveStorybook, "buildArchiveStorybook");
256
87
  __name2(buildArchiveStorybook, "buildArchiveStorybook");
257
88
  function binPath() {
258
- const packageJson = __require2("storybook/package.json");
259
- return path.resolve(path.dirname(__require2.resolve("storybook/package.json")), packageJson.bin);
89
+ const filename = req.resolve("storybook/package.json");
90
+ const packageJson = JSON.parse(fs.readFileSync(filename, "utf8"));
91
+ return path.resolve(path.dirname(filename), packageJson.bin);
260
92
  }
261
93
  __name(binPath, "binPath");
262
94
  __name2(binPath, "binPath");
package/dist/index.js CHANGED
@@ -3389,6 +3389,7 @@ var _ResourceArchiver = (_a = class {
3389
3389
  __publicField(this, "assetDomains");
3390
3390
  __publicField(this, "firstUrl");
3391
3391
  __publicField(this, "httpCredentials");
3392
+ __publicField(this, "pendingRequests", /* @__PURE__ */ new Set());
3392
3393
  __publicField(this, "authRequired", /* @__PURE__ */ __name2(async ({ requestId, request }) => {
3393
3394
  await this.clientSend(request, "Fetch.continueWithAuth", {
3394
3395
  requestId,
@@ -3399,6 +3400,7 @@ var _ResourceArchiver = (_a = class {
3399
3400
  });
3400
3401
  }, "authRequired"));
3401
3402
  __publicField(this, "requestPaused", /* @__PURE__ */ __name2(async ({ requestId, request, responseStatusCode, responseStatusText, responseErrorReason, responseHeaders }) => {
3403
+ this.pendingRequests.delete(requestId);
3402
3404
  if (!request.method.match(/get/i)) {
3403
3405
  await this.clientSend(request, "Fetch.continueRequest", {
3404
3406
  requestId
@@ -3432,6 +3434,7 @@ var _ResourceArchiver = (_a = class {
3432
3434
  }, requestUrl, isRequestFromAllowedDomain);
3433
3435
  return;
3434
3436
  }
3437
+ this.pendingRequests.add(requestId);
3435
3438
  await this.clientSend(request, "Fetch.continueRequest", {
3436
3439
  requestId,
3437
3440
  interceptResponse: true
@@ -3452,6 +3455,10 @@ var _ResourceArchiver = (_a = class {
3452
3455
  this.client.off?.("Fetch.requestPaused", this.requestPaused);
3453
3456
  this.client.off?.("Fetch.authRequired", this.authRequired);
3454
3457
  await this.client.send("Fetch.disable");
3458
+ this.pendingRequests.clear();
3459
+ }
3460
+ getPendingRequestsCount() {
3461
+ return this.pendingRequests.size;
3455
3462
  }
3456
3463
  async clientSend(request, method, params) {
3457
3464
  try {
@@ -3852,14 +3859,25 @@ __name2(storiesFileName, "storiesFileName");
3852
3859
  function createStories(title, domSnapshots, chromaticStorybookParams) {
3853
3860
  return {
3854
3861
  title,
3855
- stories: Object.keys(domSnapshots).map((name) => ({
3862
+ stories: Object.entries(domSnapshots).map(([name, { viewport }]) => ({
3856
3863
  name,
3857
3864
  parameters: {
3858
3865
  server: {
3859
3866
  id: snapshotId(title, name)
3860
3867
  },
3861
3868
  chromatic: {
3862
- ...chromaticStorybookParams
3869
+ ...chromaticStorybookParams,
3870
+ modes: buildStoryModesConfig([
3871
+ viewport
3872
+ ])
3873
+ },
3874
+ viewport: {
3875
+ viewports: buildStoryViewportsConfig([
3876
+ viewport
3877
+ ]),
3878
+ defaultViewport: viewportToString(findDefaultViewport([
3879
+ viewport
3880
+ ]))
3863
3881
  }
3864
3882
  }
3865
3883
  }))
@@ -3867,8 +3885,48 @@ function createStories(title, domSnapshots, chromaticStorybookParams) {
3867
3885
  }
3868
3886
  __name(createStories, "createStories");
3869
3887
  __name2(createStories, "createStories");
3888
+ function buildStoryModesConfig(viewports) {
3889
+ return viewports.reduce((modes, viewport) => {
3890
+ const viewportName = viewportToString(viewport);
3891
+ modes[viewportName] = {
3892
+ viewport: viewportName
3893
+ };
3894
+ return modes;
3895
+ }, {});
3896
+ }
3897
+ __name(buildStoryModesConfig, "buildStoryModesConfig");
3898
+ __name2(buildStoryModesConfig, "buildStoryModesConfig");
3899
+ function buildStoryViewportsConfig(viewports) {
3900
+ return viewports.reduce((viewportsConfig, viewport) => {
3901
+ const viewportName = viewportToString(viewport);
3902
+ viewportsConfig[viewportName] = {
3903
+ name: viewportName,
3904
+ styles: {
3905
+ width: `${viewport.width}px`,
3906
+ height: `${viewport.height}px`
3907
+ }
3908
+ };
3909
+ return viewportsConfig;
3910
+ }, {});
3911
+ }
3912
+ __name(buildStoryViewportsConfig, "buildStoryViewportsConfig");
3913
+ __name2(buildStoryViewportsConfig, "buildStoryViewportsConfig");
3914
+ function findDefaultViewport(viewports) {
3915
+ const compareFn = /* @__PURE__ */ __name2((vp1, vp2) => {
3916
+ if (vp1.width < vp2.width) {
3917
+ return 1;
3918
+ }
3919
+ if (vp1.width > vp2.width) {
3920
+ return -1;
3921
+ }
3922
+ return 0;
3923
+ }, "compareFn");
3924
+ return viewports.sort(compareFn)[0];
3925
+ }
3926
+ __name(findDefaultViewport, "findDefaultViewport");
3927
+ __name2(findDefaultViewport, "findDefaultViewport");
3870
3928
  async function writeTestResult(e2eTestInfo, domSnapshots, archive, chromaticStorybookParams) {
3871
- const { titlePath, outputDir, pageUrl, viewport } = e2eTestInfo;
3929
+ const { titlePath, outputDir, pageUrl } = e2eTestInfo;
3872
3930
  const titlePathWithoutFileExtensions = titlePath.map((pathPart) => (
3873
3931
  // make sure we remove file extensions, even if the file name doesn't have .spec or .test or.cy
3874
3932
  // possible extensions:
@@ -3893,7 +3951,7 @@ async function writeTestResult(e2eTestInfo, domSnapshots, archive, chromaticStor
3893
3951
  }
3894
3952
  await outputFile(path2.join(archiveDir, fileSystemPath), response.body);
3895
3953
  }));
3896
- await Promise.all(await Object.entries(domSnapshots).map(async ([name, domSnapshot]) => {
3954
+ await Promise.all(Object.entries(domSnapshots).map(async ([name, { snapshot: domSnapshot, viewport }]) => {
3897
3955
  const snapshot = new DOMSnapshot(domSnapshot);
3898
3956
  const mappedSnapshot = await snapshot.mapAssetPaths(sourceMap);
3899
3957
  const snapshotFile = snapshotFileName(snapshotId(title, name), viewport);
@@ -3945,19 +4003,21 @@ __name(trackComplete, "trackComplete");
3945
4003
  __name2(trackComplete, "trackComplete");
3946
4004
 
3947
4005
  // src/index.ts
3948
- var writeArchives = /* @__PURE__ */ __name(async ({ testTitlePath, domSnapshots, resourceArchive, chromaticStorybookParams, pageUrl, viewport, outputDir }) => {
4006
+ var writeArchives = /* @__PURE__ */ __name(async ({ testTitlePath, domSnapshots, resourceArchive, chromaticStorybookParams, pageUrl, outputDir }) => {
3949
4007
  const allSnapshots = Object.fromEntries(
3950
4008
  // manual snapshots can be given a name; otherwise, just use the snapshot's place in line as the name
3951
- domSnapshots.map(({ name, snapshot }, index) => [
4009
+ domSnapshots.map(({ name, snapshot, viewport }, index) => [
3952
4010
  name ?? `Snapshot #${index + 1}`,
3953
- Buffer.from(JSON.stringify(snapshot))
4011
+ {
4012
+ snapshot: Buffer.from(JSON.stringify(snapshot)),
4013
+ viewport
4014
+ }
3954
4015
  ])
3955
4016
  );
3956
4017
  await writeTestResult({
3957
4018
  titlePath: testTitlePath,
3958
4019
  outputDir,
3959
- pageUrl,
3960
- viewport
4020
+ pageUrl
3961
4021
  }, allSnapshots, resourceArchive, chromaticStorybookParams);
3962
4022
  }, "writeArchives");
3963
4023
  var resourceArchiver = null;