@storybook/addon-vitest 10.1.0-alpha.1 → 10.1.0-alpha.11

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/preset.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_8w58nre1r1b from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_8w58nre1r1b from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_8w58nre1r1b from "node:module";
1
+ import CJS_COMPAT_NODE_URL_zfiyucf8tb from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_zfiyucf8tb from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_zfiyucf8tb from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_8w58nre1r1b.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_8w58nre1r1b.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_8w58nre1r1b.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_zfiyucf8tb.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_zfiyucf8tb.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_zfiyucf8tb.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,11 +12,11 @@ var require = CJS_COMPAT_NODE_MODULE_8w58nre1r1b.createRequire(import.meta.url);
12
12
  import {
13
13
  log,
14
14
  noop
15
- } from "./_node-chunks/chunk-4EEN4T72.js";
15
+ } from "./_node-chunks/chunk-2WX72TIY.js";
16
16
  import {
17
17
  execaNode,
18
18
  importMetaResolve
19
- } from "./_node-chunks/chunk-SIWL37RV.js";
19
+ } from "./_node-chunks/chunk-BEGZGAUW.js";
20
20
  import {
21
21
  ADDON_ID,
22
22
  COVERAGE_DIRECTORY,
@@ -25,17 +25,16 @@ import {
25
25
  STORYBOOK_ADDON_TEST_CHANNEL,
26
26
  TEST_PROVIDER_STORE_CHANNEL_EVENT_NAME,
27
27
  storeOptions
28
- } from "./_node-chunks/chunk-5D5GEQQR.js";
28
+ } from "./_node-chunks/chunk-TCQNKRGF.js";
29
29
  import {
30
30
  require_picocolors
31
- } from "./_node-chunks/chunk-RWZYDWYZ.js";
31
+ } from "./_node-chunks/chunk-XN666246.js";
32
32
  import {
33
33
  normalize
34
- } from "./_node-chunks/chunk-JLLEOCT6.js";
34
+ } from "./_node-chunks/chunk-L7WYCUSW.js";
35
35
  import {
36
- __name,
37
36
  __toESM
38
- } from "./_node-chunks/chunk-XYGEMTYA.js";
37
+ } from "./_node-chunks/chunk-FCFZB5YS.js";
39
38
 
40
39
  // src/preset.ts
41
40
  import { mkdir } from "node:fs/promises";
@@ -53,172 +52,103 @@ import { cleanPaths, oneWayHash, sanitizeError, telemetry } from "storybook/inte
53
52
 
54
53
  // ../../node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
55
54
  function isPlainObject(value) {
56
- if (!value || typeof value !== "object") {
57
- return false;
58
- }
59
- const proto = Object.getPrototypeOf(value);
60
- const hasObjectPrototype = proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null;
61
- if (!hasObjectPrototype) {
62
- return false;
63
- }
64
- return Object.prototype.toString.call(value) === "[object Object]";
55
+ if (!value || typeof value != "object")
56
+ return !1;
57
+ let proto = Object.getPrototypeOf(value);
58
+ return proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null ? Object.prototype.toString.call(value) === "[object Object]" : !1;
65
59
  }
66
- __name(isPlainObject, "isPlainObject");
67
60
 
68
61
  // ../../node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs
69
62
  function getSymbols(object) {
70
63
  return Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));
71
64
  }
72
- __name(getSymbols, "getSymbols");
73
65
 
74
66
  // ../../node_modules/es-toolkit/dist/compat/_internal/getTag.mjs
75
67
  function getTag(value) {
76
- if (value == null) {
77
- return value === void 0 ? "[object Undefined]" : "[object Null]";
78
- }
79
- return Object.prototype.toString.call(value);
68
+ return value == null ? value === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(value);
80
69
  }
81
- __name(getTag, "getTag");
82
70
 
83
71
  // ../../node_modules/es-toolkit/dist/compat/_internal/tags.mjs
84
- var regexpTag = "[object RegExp]";
85
- var stringTag = "[object String]";
86
- var numberTag = "[object Number]";
87
- var booleanTag = "[object Boolean]";
88
- var argumentsTag = "[object Arguments]";
89
- var symbolTag = "[object Symbol]";
90
- var dateTag = "[object Date]";
91
- var mapTag = "[object Map]";
92
- var setTag = "[object Set]";
93
- var arrayTag = "[object Array]";
94
- var functionTag = "[object Function]";
95
- var arrayBufferTag = "[object ArrayBuffer]";
96
- var objectTag = "[object Object]";
97
- var errorTag = "[object Error]";
98
- var dataViewTag = "[object DataView]";
99
- var uint8ArrayTag = "[object Uint8Array]";
100
- var uint8ClampedArrayTag = "[object Uint8ClampedArray]";
101
- var uint16ArrayTag = "[object Uint16Array]";
102
- var uint32ArrayTag = "[object Uint32Array]";
103
- var bigUint64ArrayTag = "[object BigUint64Array]";
104
- var int8ArrayTag = "[object Int8Array]";
105
- var int16ArrayTag = "[object Int16Array]";
106
- var int32ArrayTag = "[object Int32Array]";
107
- var bigInt64ArrayTag = "[object BigInt64Array]";
108
- var float32ArrayTag = "[object Float32Array]";
109
- var float64ArrayTag = "[object Float64Array]";
72
+ var regexpTag = "[object RegExp]", stringTag = "[object String]", numberTag = "[object Number]", booleanTag = "[object Boolean]", argumentsTag = "[object Arguments]", symbolTag = "[object Symbol]", dateTag = "[object Date]", mapTag = "[object Map]", setTag = "[object Set]", arrayTag = "[object Array]", functionTag = "[object Function]", arrayBufferTag = "[object ArrayBuffer]", objectTag = "[object Object]", errorTag = "[object Error]", dataViewTag = "[object DataView]", uint8ArrayTag = "[object Uint8Array]", uint8ClampedArrayTag = "[object Uint8ClampedArray]", uint16ArrayTag = "[object Uint16Array]", uint32ArrayTag = "[object Uint32Array]", bigUint64ArrayTag = "[object BigUint64Array]", int8ArrayTag = "[object Int8Array]", int16ArrayTag = "[object Int16Array]", int32ArrayTag = "[object Int32Array]", bigInt64ArrayTag = "[object BigInt64Array]", float32ArrayTag = "[object Float32Array]", float64ArrayTag = "[object Float64Array]";
110
73
 
111
74
  // ../../node_modules/es-toolkit/dist/compat/util/eq.mjs
112
75
  function eq(value, other) {
113
76
  return value === other || Number.isNaN(value) && Number.isNaN(other);
114
77
  }
115
- __name(eq, "eq");
116
78
 
117
79
  // ../../node_modules/es-toolkit/dist/predicate/isEqualWith.mjs
118
80
  function isEqualWith(a, b, areValuesEqual) {
119
81
  return isEqualWithImpl(a, b, void 0, void 0, void 0, void 0, areValuesEqual);
120
82
  }
121
- __name(isEqualWith, "isEqualWith");
122
83
  function isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {
123
- const result = areValuesEqual(a, b, property, aParent, bParent, stack);
124
- if (result !== void 0) {
84
+ let result = areValuesEqual(a, b, property, aParent, bParent, stack);
85
+ if (result !== void 0)
125
86
  return result;
126
- }
127
- if (typeof a === typeof b) {
87
+ if (typeof a == typeof b)
128
88
  switch (typeof a) {
129
89
  case "bigint":
130
90
  case "string":
131
91
  case "boolean":
132
92
  case "symbol":
133
- case "undefined": {
93
+ case "undefined":
134
94
  return a === b;
135
- }
136
- case "number": {
95
+ case "number":
137
96
  return a === b || Object.is(a, b);
138
- }
139
- case "function": {
97
+ case "function":
140
98
  return a === b;
141
- }
142
- case "object": {
99
+ case "object":
143
100
  return areObjectsEqual(a, b, stack, areValuesEqual);
144
- }
145
101
  }
146
- }
147
102
  return areObjectsEqual(a, b, stack, areValuesEqual);
148
103
  }
149
- __name(isEqualWithImpl, "isEqualWithImpl");
150
104
  function areObjectsEqual(a, b, stack, areValuesEqual) {
151
- if (Object.is(a, b)) {
152
- return true;
153
- }
154
- let aTag = getTag(a);
155
- let bTag = getTag(b);
156
- if (aTag === argumentsTag) {
157
- aTag = objectTag;
158
- }
159
- if (bTag === argumentsTag) {
160
- bTag = objectTag;
161
- }
162
- if (aTag !== bTag) {
163
- return false;
164
- }
105
+ if (Object.is(a, b))
106
+ return !0;
107
+ let aTag = getTag(a), bTag = getTag(b);
108
+ if (aTag === argumentsTag && (aTag = objectTag), bTag === argumentsTag && (bTag = objectTag), aTag !== bTag)
109
+ return !1;
165
110
  switch (aTag) {
166
111
  case stringTag:
167
112
  return a.toString() === b.toString();
168
113
  case numberTag: {
169
- const x = a.valueOf();
170
- const y = b.valueOf();
114
+ let x = a.valueOf(), y = b.valueOf();
171
115
  return eq(x, y);
172
116
  }
173
117
  case booleanTag:
174
118
  case dateTag:
175
119
  case symbolTag:
176
120
  return Object.is(a.valueOf(), b.valueOf());
177
- case regexpTag: {
121
+ case regexpTag:
178
122
  return a.source === b.source && a.flags === b.flags;
179
- }
180
- case functionTag: {
123
+ case functionTag:
181
124
  return a === b;
182
- }
183
125
  }
184
126
  stack = stack ?? /* @__PURE__ */ new Map();
185
- const aStack = stack.get(a);
186
- const bStack = stack.get(b);
187
- if (aStack != null && bStack != null) {
127
+ let aStack = stack.get(a), bStack = stack.get(b);
128
+ if (aStack != null && bStack != null)
188
129
  return aStack === b;
189
- }
190
- stack.set(a, b);
191
- stack.set(b, a);
130
+ stack.set(a, b), stack.set(b, a);
192
131
  try {
193
132
  switch (aTag) {
194
133
  case mapTag: {
195
- if (a.size !== b.size) {
196
- return false;
197
- }
198
- for (const [key, value] of a.entries()) {
199
- if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {
200
- return false;
201
- }
202
- }
203
- return true;
134
+ if (a.size !== b.size)
135
+ return !1;
136
+ for (let [key, value] of a.entries())
137
+ if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual))
138
+ return !1;
139
+ return !0;
204
140
  }
205
141
  case setTag: {
206
- if (a.size !== b.size) {
207
- return false;
208
- }
209
- const aValues = Array.from(a.values());
210
- const bValues = Array.from(b.values());
142
+ if (a.size !== b.size)
143
+ return !1;
144
+ let aValues = Array.from(a.values()), bValues = Array.from(b.values());
211
145
  for (let i = 0; i < aValues.length; i++) {
212
- const aValue = aValues[i];
213
- const index = bValues.findIndex((bValue) => {
214
- return isEqualWithImpl(aValue, bValue, void 0, a, b, stack, areValuesEqual);
215
- });
216
- if (index === -1) {
217
- return false;
218
- }
146
+ let aValue = aValues[i], index = bValues.findIndex((bValue) => isEqualWithImpl(aValue, bValue, void 0, a, b, stack, areValuesEqual));
147
+ if (index === -1)
148
+ return !1;
219
149
  bValues.splice(index, 1);
220
150
  }
221
- return true;
151
+ return !0;
222
152
  }
223
153
  case arrayTag:
224
154
  case uint8ArrayTag:
@@ -232,73 +162,47 @@ function areObjectsEqual(a, b, stack, areValuesEqual) {
232
162
  case bigInt64ArrayTag:
233
163
  case float32ArrayTag:
234
164
  case float64ArrayTag: {
235
- if (typeof Buffer !== "undefined" && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {
236
- return false;
237
- }
238
- if (a.length !== b.length) {
239
- return false;
240
- }
241
- for (let i = 0; i < a.length; i++) {
242
- if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {
243
- return false;
244
- }
245
- }
246
- return true;
247
- }
248
- case arrayBufferTag: {
249
- if (a.byteLength !== b.byteLength) {
250
- return false;
251
- }
252
- return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
165
+ if (typeof Buffer < "u" && Buffer.isBuffer(a) !== Buffer.isBuffer(b) || a.length !== b.length)
166
+ return !1;
167
+ for (let i = 0; i < a.length; i++)
168
+ if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual))
169
+ return !1;
170
+ return !0;
253
171
  }
254
- case dataViewTag: {
255
- if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {
256
- return false;
257
- }
258
- return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
259
- }
260
- case errorTag: {
172
+ case arrayBufferTag:
173
+ return a.byteLength !== b.byteLength ? !1 : areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
174
+ case dataViewTag:
175
+ return a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset ? !1 : areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
176
+ case errorTag:
261
177
  return a.name === b.name && a.message === b.message;
262
- }
263
178
  case objectTag: {
264
- const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) || isPlainObject(a) && isPlainObject(b);
265
- if (!areEqualInstances) {
266
- return false;
267
- }
268
- const aKeys = [...Object.keys(a), ...getSymbols(a)];
269
- const bKeys = [...Object.keys(b), ...getSymbols(b)];
270
- if (aKeys.length !== bKeys.length) {
271
- return false;
272
- }
179
+ if (!(areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) || isPlainObject(a) && isPlainObject(b)))
180
+ return !1;
181
+ let aKeys = [...Object.keys(a), ...getSymbols(a)], bKeys = [...Object.keys(b), ...getSymbols(b)];
182
+ if (aKeys.length !== bKeys.length)
183
+ return !1;
273
184
  for (let i = 0; i < aKeys.length; i++) {
274
- const propKey = aKeys[i];
275
- const aProp = a[propKey];
276
- if (!Object.hasOwn(b, propKey)) {
277
- return false;
278
- }
279
- const bProp = b[propKey];
280
- if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {
281
- return false;
282
- }
185
+ let propKey = aKeys[i], aProp = a[propKey];
186
+ if (!Object.hasOwn(b, propKey))
187
+ return !1;
188
+ let bProp = b[propKey];
189
+ if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual))
190
+ return !1;
283
191
  }
284
- return true;
285
- }
286
- default: {
287
- return false;
192
+ return !0;
288
193
  }
194
+ default:
195
+ return !1;
289
196
  }
290
197
  } finally {
291
- stack.delete(a);
292
- stack.delete(b);
198
+ stack.delete(a), stack.delete(b);
293
199
  }
294
200
  }
295
- __name(areObjectsEqual, "areObjectsEqual");
296
201
 
297
202
  // ../../node_modules/es-toolkit/dist/predicate/isEqual.mjs
298
203
  function isEqual(a, b) {
299
204
  return isEqualWith(a, b, noop);
300
205
  }
301
- __name(isEqual, "isEqual");
302
206
 
303
207
  // src/preset.ts
304
208
  var import_picocolors = __toESM(require_picocolors(), 1);
@@ -310,44 +214,26 @@ import {
310
214
  internal_universalStatusStore,
311
215
  internal_universalTestProviderStore
312
216
  } from "storybook/internal/core-server";
313
- var MAX_START_TIME = 3e4;
314
- var vitestModulePath = fileURLToPath(importMetaResolve("@storybook/addon-vitest/vitest"));
315
- var eventQueue = [];
316
- var child;
317
- var ready = false;
318
- var unsubscribeStore;
319
- var unsubscribeStatusStore;
320
- var unsubscribeTestProviderStore;
321
- var forwardUniversalStoreEvent = /* @__PURE__ */ __name((storeEventName) => (event, eventInfo) => {
217
+ var MAX_START_TIME = 3e4, vitestModulePath = fileURLToPath(importMetaResolve("@storybook/addon-vitest/vitest")), eventQueue = [], child, ready = !1, unsubscribeStore, unsubscribeStatusStore, unsubscribeTestProviderStore, forwardUniversalStoreEvent = (storeEventName) => (event, eventInfo) => {
322
218
  child?.send({
323
219
  type: storeEventName,
324
220
  args: [{ event, eventInfo }],
325
221
  from: "server"
326
222
  });
327
- }, "forwardUniversalStoreEvent");
328
- var bootTestRunner = /* @__PURE__ */ __name(async ({
223
+ }, bootTestRunner = async ({
329
224
  channel,
330
225
  store,
331
226
  options
332
227
  }) => {
333
- let stderr = [];
334
- const killChild = /* @__PURE__ */ __name(() => {
335
- unsubscribeStore?.();
336
- unsubscribeStatusStore?.();
337
- unsubscribeTestProviderStore?.();
338
- child?.kill();
339
- child = null;
340
- }, "killChild");
228
+ let stderr = [], killChild = () => {
229
+ unsubscribeStore?.(), unsubscribeStatusStore?.(), unsubscribeTestProviderStore?.(), child?.kill(), child = null;
230
+ };
341
231
  store.subscribe("FATAL_ERROR", killChild);
342
- const exit = /* @__PURE__ */ __name((code = 0) => {
343
- killChild();
344
- eventQueue.length = 0;
345
- process.exit(code);
346
- }, "exit");
347
- process.on("exit", exit);
348
- process.on("SIGINT", () => exit(0));
349
- process.on("SIGTERM", () => exit(0));
350
- const startChildProcess = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => {
232
+ let exit = (code = 0) => {
233
+ killChild(), eventQueue.length = 0, process.exit(code);
234
+ };
235
+ process.on("exit", exit), process.on("SIGINT", () => exit(0)), process.on("SIGTERM", () => exit(0));
236
+ let startChildProcess = () => new Promise((resolve, reject) => {
351
237
  child = execaNode(vitestModulePath, {
352
238
  env: {
353
239
  VITEST: "true",
@@ -356,42 +242,26 @@ var bootTestRunner = /* @__PURE__ */ __name(async ({
356
242
  NODE_ENV: process.env.NODE_ENV ?? "test",
357
243
  STORYBOOK_CONFIG_DIR: normalize(options.configDir)
358
244
  },
359
- extendEnv: true
360
- });
361
- stderr = [];
362
- child.stdout?.on("data", log);
363
- child.stderr?.on("data", (data) => {
364
- if (!data.toString().match(/^\u001B\[33m/)) {
365
- log(data);
366
- stderr.push(data.toString());
367
- }
368
- });
369
- unsubscribeStore = store.subscribe(forwardUniversalStoreEvent(STORE_CHANNEL_EVENT_NAME));
370
- unsubscribeStatusStore = internal_universalStatusStore.subscribe(
245
+ extendEnv: !0
246
+ }), stderr = [], child.stdout?.on("data", log), child.stderr?.on("data", (data) => {
247
+ data.toString().match(/^\u001B\[33m/) || (log(data), stderr.push(data.toString()));
248
+ }), unsubscribeStore = store.subscribe(forwardUniversalStoreEvent(STORE_CHANNEL_EVENT_NAME)), unsubscribeStatusStore = internal_universalStatusStore.subscribe(
371
249
  forwardUniversalStoreEvent(STATUS_STORE_CHANNEL_EVENT_NAME)
372
- );
373
- unsubscribeTestProviderStore = internal_universalTestProviderStore.subscribe(
250
+ ), unsubscribeTestProviderStore = internal_universalTestProviderStore.subscribe(
374
251
  forwardUniversalStoreEvent(TEST_PROVIDER_STORE_CHANNEL_EVENT_NAME)
375
- );
376
- child.on("message", (event) => {
252
+ ), child.on("message", (event) => {
377
253
  if (event.type === "ready") {
378
- while (eventQueue.length) {
379
- const { type, args } = eventQueue.shift();
254
+ for (; eventQueue.length; ) {
255
+ let { type, args } = eventQueue.shift();
380
256
  child?.send({ type, args, from: "server" });
381
257
  }
382
258
  resolve();
383
- } else if (event.type === "uncaught-error") {
384
- store.send({
385
- type: "FATAL_ERROR",
386
- payload: event.payload
387
- });
388
- reject();
389
- } else {
390
- channel.emit(event.type, ...event.args);
391
- }
259
+ } else event.type === "uncaught-error" ? (store.send({
260
+ type: "FATAL_ERROR",
261
+ payload: event.payload
262
+ }), reject()) : channel.emit(event.type, ...event.args);
392
263
  });
393
- }), "startChildProcess");
394
- const timeout = new Promise(
264
+ }), timeout = new Promise(
395
265
  (_, reject) => setTimeout(
396
266
  reject,
397
267
  MAX_START_TIME,
@@ -402,7 +272,7 @@ var bootTestRunner = /* @__PURE__ */ __name(async ({
402
272
  )
403
273
  );
404
274
  await Promise.race([startChildProcess(), timeout]).catch((error) => {
405
- store.send({
275
+ throw store.send({
406
276
  type: "FATAL_ERROR",
407
277
  payload: {
408
278
  message: "Failed to start test runner process",
@@ -413,91 +283,65 @@ var bootTestRunner = /* @__PURE__ */ __name(async ({
413
283
  cause: error.cause
414
284
  }
415
285
  }
416
- });
417
- eventQueue.length = 0;
418
- throw error;
286
+ }), eventQueue.length = 0, error;
419
287
  });
420
- }, "bootTestRunner");
421
- var runTestRunner = /* @__PURE__ */ __name(async ({
288
+ }, runTestRunner = async ({
422
289
  channel,
423
290
  store,
424
291
  initEvent,
425
292
  initArgs,
426
293
  options
427
294
  }) => {
428
- if (!ready && initEvent) {
429
- eventQueue.push({ type: initEvent, args: initArgs });
430
- }
431
- if (!child) {
432
- ready = false;
433
- await bootTestRunner({ channel, store, options });
434
- ready = true;
435
- }
436
- }, "runTestRunner");
295
+ !ready && initEvent && eventQueue.push({ type: initEvent, args: initArgs }), child || (ready = !1, await bootTestRunner({ channel, store, options }), ready = !0);
296
+ };
437
297
 
438
298
  // src/preset.ts
439
- var experimental_serverChannel = /* @__PURE__ */ __name(async (channel, options) => {
440
- const core = await options.presets.apply("core");
441
- const previewPath = loadPreviewOrConfigFile({ configDir: options.configDir });
442
- const previewAnnotations = await options.presets.apply(
299
+ var experimental_serverChannel = async (channel, options) => {
300
+ let core = await options.presets.apply("core"), previewPath = loadPreviewOrConfigFile({ configDir: options.configDir }), previewAnnotations = await options.presets.apply(
443
301
  "previewAnnotations",
444
302
  [],
445
303
  options
446
- );
447
- const resolvedPreviewBuilder = typeof core?.builder === "string" ? core.builder : core?.builder?.name;
448
- const framework = await getFrameworkName(options);
449
- if (!resolvedPreviewBuilder?.includes("vite")) {
450
- if (framework.includes("nextjs")) {
451
- log(dedent`
304
+ ), resolvedPreviewBuilder = typeof core?.builder == "string" ? core.builder : core?.builder?.name, framework = await getFrameworkName(options);
305
+ if (!resolvedPreviewBuilder?.includes("vite"))
306
+ return framework.includes("nextjs") && log(dedent`
452
307
  You're using ${framework}, which is a Webpack-based builder. In order to use Storybook Test, with your project, you need to use '@storybook/nextjs-vite', a high performance Vite-based equivalent.
453
308
 
454
309
  Information on how to upgrade here: ${import_picocolors.default.yellow("https://storybook.js.org/docs/get-started/frameworks/nextjs?ref=upgrade#with-vite")}\n
455
- `);
456
- }
457
- return channel;
458
- }
459
- const fsCache = createFileSystemCache({
310
+ `), channel;
311
+ let fsCache = createFileSystemCache({
460
312
  basePath: resolvePathInStorybookCache(ADDON_ID.replace("/", "-")),
461
313
  ns: "storybook",
462
- ttl: 14 * 24 * 60 * 60 * 1e3
314
+ ttl: 336 * 60 * 60 * 1e3
463
315
  // 14 days
464
- });
465
- const cachedState = await fsCache.get("state", {
316
+ }), cachedState = await fsCache.get("state", {
466
317
  config: storeOptions.initialState.config
467
- });
468
- const selectCachedState = /* @__PURE__ */ __name((s) => ({
318
+ }), selectCachedState = (s) => ({
469
319
  config: s.config
470
- }), "selectCachedState");
471
- const store = experimental_UniversalStore.create({
320
+ }), store = experimental_UniversalStore.create({
472
321
  ...storeOptions,
473
322
  initialState: {
474
323
  ...storeOptions.initialState,
475
324
  previewAnnotations: (previewAnnotations ?? []).concat(previewPath ?? []),
476
325
  ...selectCachedState(cachedState)
477
326
  },
478
- leader: true
327
+ leader: !0
479
328
  });
480
329
  store.onStateChange((state, previousState) => {
481
- if (!isEqual(selectCachedState(state), selectCachedState(previousState))) {
482
- fsCache.set("state", selectCachedState(state));
483
- }
330
+ isEqual(selectCachedState(state), selectCachedState(previousState)) || fsCache.set("state", selectCachedState(state));
484
331
  });
485
- const testProviderStore = experimental_getTestProviderStore(ADDON_ID);
486
- store.subscribe("TRIGGER_RUN", (event, eventInfo) => {
487
- testProviderStore.setState("test-provider-state:running");
488
- store.setState((s) => ({
332
+ let testProviderStore = experimental_getTestProviderStore(ADDON_ID);
333
+ if (store.subscribe("TRIGGER_RUN", (event, eventInfo) => {
334
+ testProviderStore.setState("test-provider-state:running"), store.setState((s) => ({
489
335
  ...s,
490
336
  fatalError: void 0
491
- }));
492
- runTestRunner({
337
+ })), runTestRunner({
493
338
  channel,
494
339
  store,
495
340
  initEvent: STORE_CHANNEL_EVENT_NAME,
496
341
  initArgs: [{ event, eventInfo }],
497
342
  options
498
343
  });
499
- });
500
- store.subscribe("TOGGLE_WATCHING", (event, eventInfo) => {
344
+ }), store.subscribe("TOGGLE_WATCHING", (event, eventInfo) => {
501
345
  store.setState((s) => ({
502
346
  ...s,
503
347
  watching: event.payload.to,
@@ -508,57 +352,33 @@ var experimental_serverChannel = /* @__PURE__ */ __name(async (channel, options)
508
352
  coverageSummary: void 0
509
353
  }
510
354
  }
511
- }));
512
- if (event.payload.to) {
513
- runTestRunner({
514
- channel,
515
- store,
516
- initEvent: STORE_CHANNEL_EVENT_NAME,
517
- initArgs: [{ event, eventInfo }],
518
- options
519
- });
520
- }
521
- });
522
- store.subscribe("FATAL_ERROR", (event) => {
523
- const { message, error } = event.payload;
524
- const name = error.name || "Error";
525
- log(`${name}: ${message}`);
526
- if (error.stack) {
527
- log(error.stack);
528
- }
355
+ })), event.payload.to && runTestRunner({
356
+ channel,
357
+ store,
358
+ initEvent: STORE_CHANNEL_EVENT_NAME,
359
+ initArgs: [{ event, eventInfo }],
360
+ options
361
+ });
362
+ }), store.subscribe("FATAL_ERROR", (event) => {
363
+ let { message, error } = event.payload, name = error.name || "Error";
364
+ log(`${name}: ${message}`), error.stack && log(error.stack);
529
365
  function logErrorWithCauses(err) {
530
- if (!err) {
531
- return;
532
- }
533
- log(`Caused by: ${err.name ?? "Error"}: ${err.message}`);
534
- if (err.stack) {
535
- log(err.stack);
536
- }
537
- if (err.cause) {
538
- logErrorWithCauses(err.cause);
539
- }
366
+ err && (log(`Caused by: ${err.name ?? "Error"}: ${err.message}`), err.stack && log(err.stack), err.cause && logErrorWithCauses(err.cause));
540
367
  }
541
- __name(logErrorWithCauses, "logErrorWithCauses");
542
- if (error.cause) {
543
- logErrorWithCauses(error.cause);
544
- }
545
- store.setState((s) => ({
368
+ error.cause && logErrorWithCauses(error.cause), store.setState((s) => ({
546
369
  ...s,
547
370
  fatalError: {
548
371
  message,
549
372
  error
550
373
  }
551
- }));
552
- testProviderStore.setState("test-provider-state:crashed");
553
- });
554
- testProviderStore.onClearAll(() => {
374
+ })), testProviderStore.setState("test-provider-state:crashed");
375
+ }), testProviderStore.onClearAll(() => {
555
376
  store.setState((s) => ({
556
377
  ...s,
557
378
  currentRun: { ...s.currentRun, coverageSummary: void 0, unhandledErrors: [] }
558
379
  }));
559
- });
560
- if (!core.disableTelemetry) {
561
- const enableCrashReports = core.enableCrashReports || options.enableCrashReports;
380
+ }), !core.disableTelemetry) {
381
+ let enableCrashReports = core.enableCrashReports || options.enableCrashReports;
562
382
  channel.on(STORYBOOK_ADDON_TEST_CHANNEL, (event) => {
563
383
  telemetry("addon-test", {
564
384
  ...event,
@@ -567,50 +387,42 @@ var experimental_serverChannel = /* @__PURE__ */ __name(async (channel, options)
567
387
  storyId: oneWayHash(event.payload.storyId)
568
388
  }
569
389
  });
570
- });
571
- store.subscribe("TOGGLE_WATCHING", async (event) => {
390
+ }), store.subscribe("TOGGLE_WATCHING", async (event) => {
572
391
  await telemetry("addon-test", {
573
392
  watchMode: event.payload.to
574
393
  });
575
- });
576
- store.subscribe("TEST_RUN_COMPLETED", async (event) => {
577
- const { unhandledErrors, startedAt, finishedAt, ...currentRun } = event.payload;
394
+ }), store.subscribe("TEST_RUN_COMPLETED", async (event) => {
395
+ let { unhandledErrors, startedAt, finishedAt, ...currentRun } = event.payload;
578
396
  await telemetry("addon-test", {
579
397
  ...currentRun,
580
398
  duration: (finishedAt ?? 0) - (startedAt ?? 0),
581
399
  unhandledErrorCount: unhandledErrors.length,
582
400
  ...enableCrashReports && unhandledErrors.length > 0 && {
583
401
  unhandledErrors: unhandledErrors.map((error) => {
584
- const { stacks, ...errorWithoutStacks } = error;
402
+ let { stacks, ...errorWithoutStacks } = error;
585
403
  return sanitizeError(errorWithoutStacks);
586
404
  })
587
405
  }
588
406
  });
589
- });
590
- if (enableCrashReports) {
591
- store.subscribe("FATAL_ERROR", async (event) => {
592
- await telemetry("addon-test", {
593
- fatalError: cleanPaths(event.payload.error.message)
594
- });
407
+ }), enableCrashReports && store.subscribe("FATAL_ERROR", async (event) => {
408
+ await telemetry("addon-test", {
409
+ fatalError: cleanPaths(event.payload.error.message)
595
410
  });
596
- }
411
+ });
597
412
  }
598
413
  return channel;
599
- }, "experimental_serverChannel");
600
- var staticDirs = /* @__PURE__ */ __name(async (values = [], options) => {
601
- if (options.configType === "PRODUCTION") {
414
+ }, staticDirs = async (values = [], options) => {
415
+ if (options.configType === "PRODUCTION")
602
416
  return values;
603
- }
604
- const coverageDirectory = resolvePathInStorybookCache(COVERAGE_DIRECTORY);
605
- await mkdir(coverageDirectory, { recursive: true });
606
- return [
417
+ let coverageDirectory = resolvePathInStorybookCache(COVERAGE_DIRECTORY);
418
+ return await mkdir(coverageDirectory, { recursive: !0 }), [
607
419
  {
608
420
  from: coverageDirectory,
609
421
  to: "/coverage"
610
422
  },
611
423
  ...values
612
424
  ];
613
- }, "staticDirs");
425
+ };
614
426
  export {
615
427
  experimental_serverChannel,
616
428
  staticDirs