@chromatic-com/playwright 0.13.1 → 0.13.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 (24) 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 +72 -9
  4. package/dist/index.mjs +72 -9
  5. package/dist/storybook-config/main.mjs +1 -12
  6. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/README.md +7 -59
  7. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.asm.js +2 -0
  8. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.cjs +1 -0
  9. package/embedded/node_modules/@storybook/builder-webpack5/node_modules/es-module-lexer/dist/lexer.js +2 -0
  10. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/lexer.js +13 -23
  11. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/package.json +1 -1
  12. package/embedded/node_modules/{webpack → @storybook/builder-webpack5}/node_modules/es-module-lexer/types/lexer.d.ts +1 -18
  13. package/embedded/node_modules/es-module-lexer/README.md +59 -7
  14. package/embedded/node_modules/es-module-lexer/dist/lexer.asm.js +2 -2
  15. package/embedded/node_modules/es-module-lexer/dist/lexer.cjs +1 -1
  16. package/embedded/node_modules/es-module-lexer/dist/lexer.js +2 -2
  17. package/embedded/node_modules/es-module-lexer/lexer.js +23 -13
  18. package/embedded/node_modules/es-module-lexer/package.json +1 -1
  19. package/embedded/node_modules/es-module-lexer/types/lexer.d.ts +18 -1
  20. package/package.json +1 -1
  21. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.asm.js +0 -2
  22. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.cjs +0 -1
  23. package/embedded/node_modules/webpack/node_modules/es-module-lexer/dist/lexer.js +0 -2
  24. /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
@@ -3399,6 +3399,7 @@ var _ResourceArchiver = (_a = class {
3399
3399
  __publicField(this, "assetDomains");
3400
3400
  __publicField(this, "firstUrl");
3401
3401
  __publicField(this, "httpCredentials");
3402
+ __publicField(this, "pendingRequests", /* @__PURE__ */ new Set());
3402
3403
  __publicField(this, "authRequired", /* @__PURE__ */ __name2(async ({ requestId, request }) => {
3403
3404
  await this.clientSend(request, "Fetch.continueWithAuth", {
3404
3405
  requestId,
@@ -3409,6 +3410,7 @@ var _ResourceArchiver = (_a = class {
3409
3410
  });
3410
3411
  }, "authRequired"));
3411
3412
  __publicField(this, "requestPaused", /* @__PURE__ */ __name2(async ({ requestId, request, responseStatusCode, responseStatusText, responseErrorReason, responseHeaders }) => {
3413
+ this.pendingRequests.delete(requestId);
3412
3414
  if (!request.method.match(/get/i)) {
3413
3415
  await this.clientSend(request, "Fetch.continueRequest", {
3414
3416
  requestId
@@ -3442,6 +3444,7 @@ var _ResourceArchiver = (_a = class {
3442
3444
  }, requestUrl, isRequestFromAllowedDomain);
3443
3445
  return;
3444
3446
  }
3447
+ this.pendingRequests.add(requestId);
3445
3448
  await this.clientSend(request, "Fetch.continueRequest", {
3446
3449
  requestId,
3447
3450
  interceptResponse: true
@@ -3462,6 +3465,10 @@ var _ResourceArchiver = (_a = class {
3462
3465
  this.client.off?.("Fetch.requestPaused", this.requestPaused);
3463
3466
  this.client.off?.("Fetch.authRequired", this.authRequired);
3464
3467
  await this.client.send("Fetch.disable");
3468
+ this.pendingRequests.clear();
3469
+ }
3470
+ getPendingRequestsCount() {
3471
+ return this.pendingRequests.size;
3465
3472
  }
3466
3473
  async clientSend(request, method, params) {
3467
3474
  try {
@@ -3862,14 +3869,25 @@ __name2(storiesFileName, "storiesFileName");
3862
3869
  function createStories(title, domSnapshots, chromaticStorybookParams) {
3863
3870
  return {
3864
3871
  title,
3865
- stories: Object.keys(domSnapshots).map((name) => ({
3872
+ stories: Object.entries(domSnapshots).map(([name, { viewport }]) => ({
3866
3873
  name,
3867
3874
  parameters: {
3868
3875
  server: {
3869
3876
  id: snapshotId(title, name)
3870
3877
  },
3871
3878
  chromatic: {
3872
- ...chromaticStorybookParams
3879
+ ...chromaticStorybookParams,
3880
+ modes: buildStoryModesConfig([
3881
+ viewport
3882
+ ])
3883
+ },
3884
+ viewport: {
3885
+ viewports: buildStoryViewportsConfig([
3886
+ viewport
3887
+ ]),
3888
+ defaultViewport: viewportToString(findDefaultViewport([
3889
+ viewport
3890
+ ]))
3873
3891
  }
3874
3892
  }
3875
3893
  }))
@@ -3877,8 +3895,48 @@ function createStories(title, domSnapshots, chromaticStorybookParams) {
3877
3895
  }
3878
3896
  __name(createStories, "createStories");
3879
3897
  __name2(createStories, "createStories");
3898
+ function buildStoryModesConfig(viewports) {
3899
+ return viewports.reduce((modes, viewport) => {
3900
+ const viewportName = viewportToString(viewport);
3901
+ modes[viewportName] = {
3902
+ viewport: viewportName
3903
+ };
3904
+ return modes;
3905
+ }, {});
3906
+ }
3907
+ __name(buildStoryModesConfig, "buildStoryModesConfig");
3908
+ __name2(buildStoryModesConfig, "buildStoryModesConfig");
3909
+ function buildStoryViewportsConfig(viewports) {
3910
+ return viewports.reduce((viewportsConfig, viewport) => {
3911
+ const viewportName = viewportToString(viewport);
3912
+ viewportsConfig[viewportName] = {
3913
+ name: viewportName,
3914
+ styles: {
3915
+ width: `${viewport.width}px`,
3916
+ height: `${viewport.height}px`
3917
+ }
3918
+ };
3919
+ return viewportsConfig;
3920
+ }, {});
3921
+ }
3922
+ __name(buildStoryViewportsConfig, "buildStoryViewportsConfig");
3923
+ __name2(buildStoryViewportsConfig, "buildStoryViewportsConfig");
3924
+ function findDefaultViewport(viewports) {
3925
+ const compareFn = /* @__PURE__ */ __name2((vp1, vp2) => {
3926
+ if (vp1.width < vp2.width) {
3927
+ return 1;
3928
+ }
3929
+ if (vp1.width > vp2.width) {
3930
+ return -1;
3931
+ }
3932
+ return 0;
3933
+ }, "compareFn");
3934
+ return viewports.sort(compareFn)[0];
3935
+ }
3936
+ __name(findDefaultViewport, "findDefaultViewport");
3937
+ __name2(findDefaultViewport, "findDefaultViewport");
3880
3938
  async function writeTestResult(e2eTestInfo, domSnapshots, archive, chromaticStorybookParams) {
3881
- const { titlePath, outputDir, pageUrl, viewport } = e2eTestInfo;
3939
+ const { titlePath, outputDir, pageUrl } = e2eTestInfo;
3882
3940
  const titlePathWithoutFileExtensions = titlePath.map((pathPart) => (
3883
3941
  // make sure we remove file extensions, even if the file name doesn't have .spec or .test or.cy
3884
3942
  // possible extensions:
@@ -3903,7 +3961,7 @@ async function writeTestResult(e2eTestInfo, domSnapshots, archive, chromaticStor
3903
3961
  }
3904
3962
  await outputFile(path2.join(archiveDir, fileSystemPath), response.body);
3905
3963
  }));
3906
- await Promise.all(await Object.entries(domSnapshots).map(async ([name, domSnapshot]) => {
3964
+ await Promise.all(Object.entries(domSnapshots).map(async ([name, { snapshot: domSnapshot, viewport }]) => {
3907
3965
  const snapshot = new DOMSnapshot(domSnapshot);
3908
3966
  const mappedSnapshot = await snapshot.mapAssetPaths(sourceMap);
3909
3967
  const snapshotFile = snapshotFileName(snapshotId(title, name), viewport);
@@ -4033,15 +4091,21 @@ async function takeSnapshot(page, nameOrTestInfo, maybeTestInfo) {
4033
4091
  new Promise((resolve) => {
4034
4092
  doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {
4035
4093
  resolve(domSnapshot);
4036
- });
4094
+ });
4037
4095
  });
4038
- }
4096
+ }
4039
4097
  `);
4040
4098
  const bufferedSnapshot = Buffer.from(JSON.stringify(domSnapshot));
4041
4099
  if (!chromaticSnapshots.has(testId)) {
4042
4100
  chromaticSnapshots.set(testId, /* @__PURE__ */ new Map());
4043
4101
  }
4044
- chromaticSnapshots.get(testId).set(name, bufferedSnapshot);
4102
+ chromaticSnapshots.get(testId).set(name, {
4103
+ snapshot: bufferedSnapshot,
4104
+ viewport: page.viewportSize() || {
4105
+ width: 1280,
4106
+ height: 720
4107
+ }
4108
+ });
4045
4109
  }
4046
4110
  __name(takeSnapshot, "takeSnapshot");
4047
4111
 
@@ -4126,8 +4190,7 @@ var performChromaticSnapshot = /* @__PURE__ */ __name(async ({ page, delay, diff
4126
4190
  await writeTestResult({
4127
4191
  ...testInfo,
4128
4192
  outputDir,
4129
- pageUrl: page.url(),
4130
- viewport: page.viewportSize()
4193
+ pageUrl: page.url()
4131
4194
  }, Object.fromEntries(snapshots), resourceArchive, chromaticStorybookParams);
4132
4195
  trackComplete();
4133
4196
  } finally {