storybook 10.2.0-alpha.8 → 10.2.0-beta.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.
Files changed (97) hide show
  1. package/dist/_browser-chunks/{Color-E5XDEOX4.js → Color-XESOIGZP.js} +57 -3
  2. package/dist/_browser-chunks/chunk-AFVOZMXQ.js +23 -0
  3. package/dist/_browser-chunks/{chunk-3PJE6VLG.js → chunk-ASKQZAOS.js} +1 -12
  4. package/dist/_browser-chunks/chunk-IYCKG66Y.js +171 -0
  5. package/dist/_browser-chunks/chunk-LCHBOIHN.js +64 -0
  6. package/dist/_browser-chunks/{chunk-IPA5A322.js → chunk-MEXTPDJG.js} +1 -1
  7. package/dist/_browser-chunks/{chunk-54PNNATT.js → chunk-NQJGOFZV.js} +18 -1
  8. package/dist/_browser-chunks/{chunk-VUZYLZ4B.js → chunk-QOXZ7W26.js} +31 -15
  9. package/dist/_browser-chunks/{chunk-LOTN4ZCW.js → chunk-SI6AKD4S.js} +2 -2
  10. package/dist/_browser-chunks/chunk-YK43Z22A.js +263 -0
  11. package/dist/_node-chunks/{builder-manager-2XASU3VS.js → builder-manager-JEJE63VV.js} +15 -12
  12. package/dist/_node-chunks/camelcase-HALRJETF.js +62 -0
  13. package/dist/_node-chunks/{chunk-5GRHJJHD.js → chunk-3SKE4CCB.js} +9 -9
  14. package/dist/_node-chunks/chunk-4UYAC7Y2.js +18 -0
  15. package/dist/_node-chunks/{chunk-S7FIFCTX.js → chunk-6UAQEBJX.js} +10 -10
  16. package/dist/_node-chunks/{chunk-ZKB7MQRR.js → chunk-72K4WVI5.js} +18 -14
  17. package/dist/_node-chunks/{chunk-6TJUL42C.js → chunk-7ZX5CX6B.js} +15 -69
  18. package/dist/_node-chunks/{chunk-LEZENLG7.js → chunk-ADTWC7QJ.js} +7 -7
  19. package/dist/_node-chunks/{chunk-2OC7H5MZ.js → chunk-APUXGW3Y.js} +7 -7
  20. package/dist/_node-chunks/{chunk-5WQXPM6D.js → chunk-AXDM43NU.js} +6 -6
  21. package/dist/_node-chunks/{chunk-LOXLI4XT.js → chunk-B422K4XV.js} +6 -6
  22. package/dist/_node-chunks/{chunk-3K6P75SS.js → chunk-BJOXVTWM.js} +12 -571
  23. package/dist/_node-chunks/{chunk-TTGXODEY.js → chunk-BLGRU6F5.js} +7 -7
  24. package/dist/_node-chunks/{chunk-2KSITKBI.js → chunk-CG47ALAV.js} +7 -7
  25. package/dist/_node-chunks/chunk-FH4FRUMP.js +23 -0
  26. package/dist/_node-chunks/{chunk-DTM4A3DJ.js → chunk-GBZ23FIZ.js} +125 -73
  27. package/dist/_node-chunks/{chunk-IJ34563N.js → chunk-IZ3ATSWZ.js} +5262 -1480
  28. package/dist/_node-chunks/{chunk-JWL5NLJU.js → chunk-IZFEBWVB.js} +6 -6
  29. package/dist/_node-chunks/{chunk-5BRYY6XB.js → chunk-KL5CKFPT.js} +9 -9
  30. package/dist/_node-chunks/{chunk-COGO4JMD.js → chunk-MLXCYULR.js} +7 -7
  31. package/dist/_node-chunks/{chunk-7B4JYHGV.js → chunk-MV2QM7P3.js} +6 -6
  32. package/dist/_node-chunks/chunk-PHX5XNP7.js +144 -0
  33. package/dist/_node-chunks/{chunk-VJFHZL2T.js → chunk-QL6L57W7.js} +533 -144
  34. package/dist/_node-chunks/{chunk-Q6WPGVIW.js → chunk-RPBXVPRB.js} +6 -6
  35. package/dist/_node-chunks/{chunk-DYQ6QR45.js → chunk-UH2GWMFP.js} +260 -162
  36. package/dist/_node-chunks/chunk-WNGL2VRJ.js +126 -0
  37. package/dist/_node-chunks/{chunk-WKC523P7.js → chunk-XAL452XB.js} +36 -14
  38. package/dist/_node-chunks/{chunk-UNHOAAXU.js → chunk-YVXXMWQO.js} +7 -7
  39. package/dist/_node-chunks/chunk-YYDL7JOC.js +61 -0
  40. package/dist/_node-chunks/{chunk-MLYPMYG5.js → chunk-Z7FLE2TR.js} +6 -6
  41. package/dist/_node-chunks/{globby-FWMT4OOQ.js → globby-4D4NBVG7.js} +11 -20
  42. package/dist/_node-chunks/{lib-YCGXIMW5.js → lib-RM2DWHZQ.js} +7 -7
  43. package/dist/_node-chunks/{mdx-N42X6CFJ-CRGM5LTU.js → mdx-N42X6CFJ-RAL72UTP.js} +8 -8
  44. package/dist/_node-chunks/{p-limit-UJIYI4QT.js → p-limit-6PUJQL5X.js} +18 -14
  45. package/dist/babel/index.js +10 -10
  46. package/dist/bin/core.js +12 -12
  47. package/dist/bin/dispatcher.js +11 -11
  48. package/dist/bin/loader.js +9 -9
  49. package/dist/cli/index.d.ts +1504 -424
  50. package/dist/cli/index.js +18 -18
  51. package/dist/common/index.d.ts +1319 -271
  52. package/dist/common/index.js +22 -22
  53. package/dist/components/index.d.ts +4 -1
  54. package/dist/components/index.js +228 -227
  55. package/dist/core-events/index.d.ts +23 -7
  56. package/dist/core-events/index.js +5 -1
  57. package/dist/core-server/index.d.ts +108 -4
  58. package/dist/core-server/index.js +3459 -3086
  59. package/dist/core-server/presets/common-manager.js +208 -160
  60. package/dist/core-server/presets/common-override-preset.js +11 -11
  61. package/dist/core-server/presets/common-preset.js +576 -4536
  62. package/dist/csf/index.d.ts +147 -15
  63. package/dist/csf/index.js +52 -23
  64. package/dist/csf-tools/index.d.ts +19 -1
  65. package/dist/csf-tools/index.js +11 -9
  66. package/dist/docs-tools/index.d.ts +2 -2
  67. package/dist/docs-tools/index.js +4 -5
  68. package/dist/manager/globals-runtime.js +2749 -6907
  69. package/dist/manager/runtime.js +2939 -2295
  70. package/dist/manager-api/index.d.ts +89 -21
  71. package/dist/manager-api/index.js +82 -23
  72. package/dist/mocking-utils/index.js +8 -8
  73. package/dist/node-logger/index.d.ts +1453 -108
  74. package/dist/node-logger/index.js +9 -9
  75. package/dist/preview/runtime.js +784 -5059
  76. package/dist/preview-api/index.d.ts +26 -1
  77. package/dist/preview-api/index.js +11 -8
  78. package/dist/router/index.js +5 -4
  79. package/dist/server-errors.js +11 -11
  80. package/dist/telemetry/index.d.ts +14 -2
  81. package/dist/telemetry/index.js +23 -22
  82. package/dist/theming/index.d.ts +5 -5
  83. package/dist/theming/index.js +21 -2
  84. package/dist/types/index.d.ts +24 -11
  85. package/dist/viewport/index.d.ts +5 -3
  86. package/dist/viewport/index.js +12 -3
  87. package/package.json +27 -26
  88. package/dist/_browser-chunks/chunk-2NDLAB5X.js +0 -363
  89. package/dist/_browser-chunks/chunk-CLSHX4VX.js +0 -4140
  90. package/dist/_browser-chunks/chunk-HPYUT3WS.js +0 -199
  91. package/dist/_browser-chunks/chunk-XCZK5QUJ.js +0 -0
  92. package/dist/_node-chunks/camelcase-KIWRHB2G.js +0 -37
  93. package/dist/_node-chunks/chunk-2ANLCK4Y.js +0 -18
  94. package/dist/_node-chunks/chunk-3TW66YXG.js +0 -70
  95. package/dist/_node-chunks/chunk-UFXCGC4W.js +0 -23
  96. package/dist/_node-chunks/chunk-X4YDIHYE.js +0 -61
  97. package/dist/_node-chunks/dist-GICI6ZHU.js +0 -121
@@ -1,9 +1,10 @@
1
1
  import * as semver from 'semver';
2
2
  import { JsPackageManager as JsPackageManager$1, PackageJson } from 'storybook/internal/common';
3
3
  import { SupportedFramework as SupportedFramework$1, SupportedRenderer, SupportedLanguage, Feature, PackageJson as PackageJson$1, NormalizedProjectAnnotations, ProjectAnnotations, ComposedStoryFn } from 'storybook/internal/types';
4
- import { Buffer } from 'node:buffer';
5
4
  import { ChildProcess } from 'node:child_process';
6
- import { Readable, Writable, Stream } from 'node:stream';
5
+ import { SignalConstants } from 'node:os';
6
+ import { Duplex, Readable, Writable } from 'node:stream';
7
+ import { TransformStream, ReadableStream, WritableStream } from 'node:stream/web';
7
8
 
8
9
  declare function detectPnp(): Promise<boolean>;
9
10
 
@@ -115,487 +116,1562 @@ declare enum ProjectType {
115
116
  WEB_COMPONENTS = "web_components"
116
117
  }
117
118
 
118
- type StdioOption =
119
- | 'pipe'
120
- | 'overlapped'
121
- | 'ipc'
119
+ type Not<Value extends boolean> = Value extends true ? false : true;
120
+
121
+ type And<First extends boolean, Second extends boolean> = First extends true ? Second : false;
122
+
123
+ type Or<First extends boolean, Second extends boolean> = First extends true ? true : Second;
124
+
125
+ type Unless<Condition extends boolean, ThenValue, ElseValue = never> = Condition extends true ? ElseValue : ThenValue;
126
+
127
+ type AndUnless<Condition extends boolean, ThenValue, ElseValue = unknown> = Condition extends true ? ElseValue : ThenValue;
128
+
129
+ // Whether any of T's union element is the same as one of U's union element.
130
+ // `&` does not work here.
131
+ type Intersects<T, U> = true extends (T extends U ? true : false) ? true : false;
132
+
133
+ // `options.std*: Generator`
134
+ // @todo Use `string`, `Uint8Array` or `unknown` for both the argument and the return type, based on whether `encoding: 'buffer'` and `objectMode: true` are used.
135
+ // See https://github.com/sindresorhus/execa/issues/694
136
+ type GeneratorTransform<IsSync extends boolean> = (chunk: unknown) =>
137
+ | Unless<IsSync, AsyncGenerator<unknown, void, void>>
138
+ | Generator<unknown, void, void>;
139
+ type GeneratorFinal<IsSync extends boolean> = () =>
140
+ | Unless<IsSync, AsyncGenerator<unknown, void, void>>
141
+ | Generator<unknown, void, void>;
142
+
143
+ type TransformCommon = {
144
+ /**
145
+ If `true`, allow `transformOptions.transform` and `transformOptions.final` to return any type, not just `string` or `Uint8Array`.
146
+ */
147
+ readonly objectMode?: boolean;
148
+ };
149
+
150
+ /**
151
+ A transform or an array of transforms can be passed to the `stdin`, `stdout`, `stderr` or `stdio` option.
152
+
153
+ A transform is either a generator function or a plain object with the following members.
154
+ */
155
+ type GeneratorTransformFull<IsSync extends boolean> = {
156
+ /**
157
+ Map or filter the input or output of the subprocess.
158
+ */
159
+ readonly transform: GeneratorTransform<IsSync>;
160
+
161
+ /**
162
+ Create additional lines after the last one.
163
+ */
164
+ readonly final?: GeneratorFinal<IsSync>;
165
+
166
+ /**
167
+ If `true`, iterate over arbitrary chunks of `Uint8Array`s instead of line `string`s.
168
+ */
169
+ readonly binary?: boolean;
170
+
171
+ /**
172
+ If `true`, keep newlines in each `line` argument. Also, this allows multiple `yield`s to produces a single line.
173
+ */
174
+ readonly preserveNewlines?: boolean;
175
+ } & TransformCommon;
176
+
177
+ // `options.std*: Duplex`
178
+ type DuplexTransform = {
179
+ readonly transform: Duplex;
180
+ } & TransformCommon;
181
+
182
+ // `options.std*: TransformStream`
183
+ type WebTransform = {
184
+ readonly transform: TransformStream;
185
+ } & TransformCommon;
186
+
187
+ type IsStandardStream<FdNumber extends string> = FdNumber extends keyof StandardStreams ? true : false;
188
+
189
+ type StandardStreams = readonly ['stdin', 'stdout', 'stderr'];
190
+
191
+ // When `options.stdin|stdout|stderr|stdio` is set to one of those values, no stream is created
192
+ type NoStreamStdioOption<FdNumber extends string> =
122
193
  | 'ignore'
123
194
  | 'inherit'
124
- | Stream
195
+ | 'ipc'
125
196
  | number
126
- | undefined;
197
+ | Readable
198
+ | Writable
199
+ | Unless<IsStandardStream<FdNumber>, undefined>
200
+ | readonly [NoStreamStdioOption<FdNumber>];
201
+
202
+ // `options.stdio` when it is not an array
203
+ type SimpleStdioOption<
204
+ IsSync extends boolean,
205
+ IsExtra extends boolean,
206
+ IsArray extends boolean,
207
+ > =
208
+ | undefined
209
+ | 'pipe'
210
+ | Unless<And<And<Not<IsSync>, IsArray>, IsExtra>, 'inherit'>
211
+ | Unless<IsArray, 'ignore'>
212
+ | Unless<IsSync, 'overlapped'>;
213
+
214
+ // Values available in both `options.stdin|stdio` and `options.stdout|stderr|stdio`
215
+ type CommonStdioOption<
216
+ IsSync extends boolean,
217
+ IsExtra extends boolean,
218
+ IsArray extends boolean,
219
+ > =
220
+ | SimpleStdioOption<IsSync, IsExtra, IsArray>
221
+ | URL
222
+ | {readonly file: string; readonly append?: boolean}
223
+ | GeneratorTransform<IsSync>
224
+ | GeneratorTransformFull<IsSync>
225
+ | Unless<And<Not<IsSync>, IsArray>, 3 | 4 | 5 | 6 | 7 | 8 | 9>
226
+ | Unless<Or<IsSync, IsArray>, 'ipc'>
227
+ | Unless<IsSync, DuplexTransform | WebTransform | TransformStream>;
228
+
229
+ // Synchronous iterables excluding strings, Uint8Arrays and Arrays
230
+ type IterableObject<IsArray extends boolean> = Iterable<unknown>
231
+ & object
232
+ & {readonly BYTES_PER_ELEMENT?: never}
233
+ & AndUnless<IsArray, {readonly lastIndexOf?: never}>;
234
+
235
+ // `process.stdin|stdout|stderr` are `Duplex` with a `fd` property.
236
+ // This ensures they can only be passed to `stdin`/`stdout`/`stderr`, based on their direction.
237
+ type ProcessStdinFd = {readonly fd?: 0};
238
+ type ProcessStdoutStderrFd = {readonly fd?: 1 | 2};
239
+
240
+ // Values available only in `options.stdin|stdio`
241
+ type InputStdioOption<
242
+ IsSync extends boolean = boolean,
243
+ IsExtra extends boolean = boolean,
244
+ IsArray extends boolean = boolean,
245
+ > =
246
+ | 0
247
+ | Unless<And<IsSync, IsExtra>, Uint8Array | IterableObject<IsArray>>
248
+ | Unless<And<IsSync, IsArray>, Readable & ProcessStdinFd>
249
+ | Unless<IsSync, (AsyncIterable<unknown> & ProcessStdinFd) | ReadableStream>;
250
+
251
+ // Values available only in `options.stdout|stderr|stdio`
252
+ type OutputStdioOption<
253
+ IsSync extends boolean,
254
+ IsArray extends boolean,
255
+ > =
256
+ | 1
257
+ | 2
258
+ | Unless<And<IsSync, IsArray>, Writable & ProcessStdoutStderrFd>
259
+ | Unless<IsSync, WritableStream>;
260
+
261
+ // `options.stdin` array items
262
+ type StdinSingleOption<
263
+ IsSync extends boolean,
264
+ IsExtra extends boolean,
265
+ IsArray extends boolean,
266
+ > =
267
+ | CommonStdioOption<IsSync, IsExtra, IsArray>
268
+ | InputStdioOption<IsSync, IsExtra, IsArray>;
269
+
270
+ // `options.stdin`
271
+ type StdinOptionCommon<
272
+ IsSync extends boolean = boolean,
273
+ IsExtra extends boolean = boolean,
274
+ > =
275
+ | StdinSingleOption<IsSync, IsExtra, false>
276
+ | ReadonlyArray<StdinSingleOption<IsSync, IsExtra, true>>;
277
+
278
+ // `options.stdout|stderr` array items
279
+ type StdoutStderrSingleOption<
280
+ IsSync extends boolean,
281
+ IsExtra extends boolean,
282
+ IsArray extends boolean,
283
+ > =
284
+ | CommonStdioOption<IsSync, IsExtra, IsArray>
285
+ | OutputStdioOption<IsSync, IsArray>;
286
+
287
+ // `options.stdout|stderr`
288
+ type StdoutStderrOptionCommon<
289
+ IsSync extends boolean = boolean,
290
+ IsExtra extends boolean = boolean,
291
+ > =
292
+ | StdoutStderrSingleOption<IsSync, IsExtra, false>
293
+ | ReadonlyArray<StdoutStderrSingleOption<IsSync, IsExtra, true>>;
294
+
295
+ // `options.stdio[3+]`
296
+ type StdioExtraOptionCommon<IsSync extends boolean> =
297
+ | StdinOptionCommon<IsSync, true>
298
+ | StdoutStderrOptionCommon<IsSync, true>;
299
+
300
+ // `options.stdin|stdout|stderr|stdio` array items
301
+ type StdioSingleOption<
302
+ IsSync extends boolean = boolean,
303
+ IsExtra extends boolean = boolean,
304
+ IsArray extends boolean = boolean,
305
+ > =
306
+ | StdinSingleOption<IsSync, IsExtra, IsArray>
307
+ | StdoutStderrSingleOption<IsSync, IsExtra, IsArray>;
308
+
309
+ // Get `options.stdin|stdout|stderr|stdio` items if it is an array, else keep as is
310
+ type StdioSingleOptionItems<StdioOptionType> = StdioOptionType extends readonly StdioSingleOption[]
311
+ ? StdioOptionType[number]
312
+ : StdioOptionType;
313
+
314
+ // `options.stdin|stdout|stderr|stdio`
315
+ type StdioOptionCommon<IsSync extends boolean = boolean> =
316
+ | StdinOptionCommon<IsSync>
317
+ | StdoutStderrOptionCommon<IsSync>;
318
+
319
+ // `options.stdio` when it is an array
320
+ type StdioOptionsArray<IsSync extends boolean = boolean> = readonly [
321
+ StdinOptionCommon<IsSync, false>,
322
+ StdoutStderrOptionCommon<IsSync, false>,
323
+ StdoutStderrOptionCommon<IsSync, false>,
324
+ ...ReadonlyArray<StdioExtraOptionCommon<IsSync>>,
325
+ ];
326
+
327
+ // `options.stdio`
328
+ type StdioOptionsProperty<IsSync extends boolean = boolean> =
329
+ | SimpleStdioOption<IsSync, false, false>
330
+ | StdioOptionsArray<IsSync>;
331
+
332
+ // Message when the `serialization` option is `'advanced'`
333
+ type AdvancedMessage =
334
+ | string
335
+ | number
336
+ | boolean
337
+ | null
338
+ | object;
127
339
 
128
- type EncodingOption =
129
- | 'utf8'
130
- // eslint-disable-next-line unicorn/text-encoding-identifier-case
131
- | 'utf-8'
132
- | 'utf16le'
133
- | 'utf-16le'
134
- | 'ucs2'
135
- | 'ucs-2'
136
- | 'latin1'
137
- | 'binary'
138
- | 'ascii'
340
+ // Message when the `serialization` option is `'json'`
341
+ type JsonMessage =
342
+ | string
343
+ | number
344
+ | boolean
345
+ | null
346
+ | readonly JsonMessage[]
347
+ | {readonly [key: string | number]: JsonMessage};
348
+
349
+ /**
350
+ Type of messages exchanged between a process and its subprocess using `sendMessage()`, `getOneMessage()` and `getEachMessage()`.
351
+
352
+ This requires the `ipc` option to be `true`. The type of `message` depends on the `serialization` option.
353
+ */
354
+ type Message<
355
+ Serialization extends Options['serialization'] = Options['serialization'],
356
+ > = Serialization extends 'json' ? JsonMessage : AdvancedMessage;
357
+
358
+ /**
359
+ Options to `sendMessage()` and `subprocess.sendMessage()`
360
+ */
361
+ type SendMessageOptions = {
362
+ /**
363
+ Throw when the other process is not receiving or listening to messages.
364
+
365
+ @default false
366
+ */
367
+ readonly strict?: boolean;
368
+ };
369
+
370
+ /**
371
+ Options to `getOneMessage()` and `subprocess.getOneMessage()`
372
+ */
373
+ type GetOneMessageOptions<
374
+ Serialization extends Options['serialization'],
375
+ > = {
376
+ /**
377
+ Ignore any `message` that returns `false`.
378
+ */
379
+ readonly filter?: (message: Message<Serialization>) => boolean;
380
+
381
+ /**
382
+ Keep the subprocess alive while `getOneMessage()` is waiting.
383
+
384
+ @default true
385
+ */
386
+ readonly reference?: boolean;
387
+ };
388
+
389
+ /**
390
+ Options to `getEachMessage()` and `subprocess.getEachMessage()`
391
+ */
392
+ type GetEachMessageOptions = {
393
+ /**
394
+ Keep the subprocess alive while `getEachMessage()` is waiting.
395
+
396
+ @default true
397
+ */
398
+ readonly reference?: boolean;
399
+ };
400
+
401
+ // IPC methods in the subprocess
402
+ type IpcMethods<
403
+ IpcEnabled extends boolean,
404
+ Serialization extends Options['serialization'],
405
+ > = IpcEnabled extends true
406
+ ? {
407
+ /**
408
+ Send a `message` to the subprocess.
409
+
410
+ This requires the `ipc` option to be `true`. The type of `message` depends on the `serialization` option.
411
+ */
412
+ sendMessage(message: Message<Serialization>, sendMessageOptions?: SendMessageOptions): Promise<void>;
413
+
414
+ /**
415
+ Receive a single `message` from the subprocess.
416
+
417
+ This requires the `ipc` option to be `true`. The type of `message` depends on the `serialization` option.
418
+ */
419
+ getOneMessage(getOneMessageOptions?: GetOneMessageOptions<Serialization>): Promise<Message<Serialization>>;
420
+
421
+ /**
422
+ Iterate over each `message` from the subprocess.
423
+
424
+ This requires the `ipc` option to be `true`. The type of `message` depends on the `serialization` option.
425
+ */
426
+ getEachMessage(getEachMessageOptions?: GetEachMessageOptions): AsyncIterableIterator<Message<Serialization>>;
427
+ }
428
+ // Those methods only work if the `ipc` option is `true`.
429
+ // At runtime, they are actually defined, in order to provide with a nice error message.
430
+ // At type check time, they are typed as `undefined` to prevent calling them.
431
+ : {
432
+ sendMessage: undefined;
433
+ getOneMessage: undefined;
434
+ getEachMessage: undefined;
435
+ };
436
+
437
+ // Whether IPC is enabled, based on the `ipc`, `ipcInput` and `gracefulCancel` options
438
+ type HasIpc<OptionsType extends Options> = HasIpcOption<
439
+ OptionsType['ipc'],
440
+ 'ipcInput' extends keyof OptionsType ? OptionsType['ipcInput'] : undefined,
441
+ 'gracefulCancel' extends keyof OptionsType ? OptionsType['gracefulCancel'] : undefined
442
+ >;
443
+
444
+ type HasIpcOption<
445
+ IpcOption extends Options['ipc'],
446
+ IpcInputOption extends Options['ipcInput'],
447
+ GracefulCancelOption extends Options['gracefulCancel'],
448
+ > = IpcOption extends true
449
+ ? true
450
+ : IpcOption extends false
451
+ ? false
452
+ : IpcInputOption extends undefined
453
+ ? GracefulCancelOption extends true
454
+ ? true
455
+ : false
456
+ : true;
457
+
458
+ type FileDescriptorOption = `fd${number}`;
459
+
460
+ // `from` option of `subprocess.readable|duplex|iterable|pipe()`
461
+ // Also used by fd-specific options
462
+ type FromOption = 'stdout' | 'stderr' | 'all' | FileDescriptorOption;
463
+
464
+ // `to` option of `subprocess.writable|duplex|pipe()`
465
+ type ToOption = 'stdin' | FileDescriptorOption;
466
+
467
+ // Options which can be fd-specific like `{verbose: {stdout: 'none', stderr: 'full'}}`
468
+ type FdGenericOption<OptionType> = OptionType | GenericOptionObject<OptionType>;
469
+
470
+ type GenericOptionObject<OptionType> = {
471
+ readonly [FdName in GenericFromOption]?: OptionType
472
+ };
473
+
474
+ type GenericFromOption = FromOption | 'ipc';
475
+
476
+ // Retrieve fd-specific option's value
477
+ type FdSpecificOption<
478
+ GenericOption extends FdGenericOption<unknown>,
479
+ FdNumber extends string,
480
+ > = GenericOption extends GenericOptionObject<unknown>
481
+ ? FdSpecificObjectOption<GenericOption, FdNumber>
482
+ : GenericOption;
483
+
484
+ type FdSpecificObjectOption<
485
+ GenericOption extends GenericOptionObject<unknown>,
486
+ FdNumber extends string,
487
+ > = keyof GenericOption extends GenericFromOption
488
+ ? FdNumberToFromOption<FdNumber, keyof GenericOption> extends never
489
+ ? undefined
490
+ : GenericOption[FdNumberToFromOption<FdNumber, keyof GenericOption>]
491
+ : GenericOption;
492
+
493
+ type FdNumberToFromOption<
494
+ FdNumber extends string,
495
+ GenericOptionKeys extends GenericFromOption,
496
+ > = FdNumber extends '1'
497
+ ? 'stdout' extends GenericOptionKeys
498
+ ? 'stdout'
499
+ : 'fd1' extends GenericOptionKeys
500
+ ? 'fd1'
501
+ : 'all' extends GenericOptionKeys
502
+ ? 'all'
503
+ : never
504
+ : FdNumber extends '2'
505
+ ? 'stderr' extends GenericOptionKeys
506
+ ? 'stderr'
507
+ : 'fd2' extends GenericOptionKeys
508
+ ? 'fd2'
509
+ : 'all' extends GenericOptionKeys
510
+ ? 'all'
511
+ : never
512
+ : `fd${FdNumber}` extends GenericOptionKeys
513
+ ? `fd${FdNumber}`
514
+ : 'ipc' extends GenericOptionKeys
515
+ ? 'ipc'
516
+ : never;
517
+
518
+ // `result.*` defined only on failure, i.e. on `error.*`
519
+ type ErrorProperties =
520
+ | 'name'
521
+ | 'message'
522
+ | 'stack'
523
+ | 'cause'
524
+ | 'shortMessage'
525
+ | 'originalMessage'
526
+ | 'code';
527
+
528
+ // `options.stdio`, normalized as an array
529
+ type StdioOptionNormalizedArray<OptionsType extends CommonOptions> = StdioOptionNormalized<OptionsType['stdio']>;
530
+
531
+ type StdioOptionNormalized<StdioOption extends CommonOptions['stdio']> = StdioOption extends StdioOptionsArray
532
+ ? StdioOption
533
+ : StdioOption extends StdinOptionCommon
534
+ ? StdioOption extends StdoutStderrOptionCommon
535
+ ? readonly [StdioOption, StdioOption, StdioOption]
536
+ : DefaultStdioOption
537
+ : DefaultStdioOption;
538
+
539
+ // `options.stdio` default value
540
+ type DefaultStdioOption = readonly ['pipe', 'pipe', 'pipe'];
541
+
542
+ // `options.stdin|stdout|stderr|stdio` for a given file descriptor
543
+ type FdStdioOption<
544
+ FdNumber extends string,
545
+ OptionsType extends CommonOptions,
546
+ > = FdStdioOptionProperty<FdNumber, OptionsType>;
547
+
548
+ type FdStdioOptionProperty<
549
+ FdNumber extends string,
550
+ OptionsType extends CommonOptions,
551
+ > = string extends FdNumber ? StdioOptionCommon
552
+ : FdNumber extends keyof StandardStreams
553
+ ? StandardStreams[FdNumber] extends keyof OptionsType
554
+ ? OptionsType[StandardStreams[FdNumber]] extends undefined
555
+ ? FdStdioArrayOption<FdNumber, OptionsType>
556
+ : OptionsType[StandardStreams[FdNumber]]
557
+ : FdStdioArrayOption<FdNumber, OptionsType>
558
+ : FdStdioArrayOption<FdNumber, OptionsType>;
559
+
560
+ // `options.stdio[FdNumber]`, excluding `options.stdin|stdout|stderr`
561
+ type FdStdioArrayOption<
562
+ FdNumber extends string,
563
+ OptionsType extends CommonOptions,
564
+ > = FdStdioArrayOptionProperty<FdNumber, StdioOptionNormalizedArray<OptionsType>>;
565
+
566
+ type FdStdioArrayOptionProperty<
567
+ FdNumber extends string,
568
+ StdioOptionsType,
569
+ > = string extends FdNumber
570
+ ? StdioOptionCommon | undefined
571
+ : StdioOptionsType extends StdioOptionsArray
572
+ ? FdNumber extends keyof StdioOptionsType
573
+ ? StdioOptionsType[FdNumber]
574
+ : StdioOptionNormalizedArray<CommonOptions> extends StdioOptionsType
575
+ ? StdioOptionsType[number]
576
+ : undefined
577
+ : undefined;
578
+
579
+ // Whether a file descriptor is in object mode
580
+ // I.e. whether `result.stdout|stderr|stdio|all` is an array of `unknown` due to `objectMode: true`
581
+ type IsObjectFd<
582
+ FdNumber extends string,
583
+ OptionsType extends CommonOptions,
584
+ > = IsObjectStdioOption<FdStdioOption<FdNumber, OptionsType>>;
585
+
586
+ type IsObjectStdioOption<StdioOptionType> = IsObjectStdioSingleOption<StdioSingleOptionItems<StdioOptionType>>;
587
+
588
+ type IsObjectStdioSingleOption<StdioSingleOptionType> = StdioSingleOptionType extends TransformCommon
589
+ ? BooleanObjectMode<StdioSingleOptionType['objectMode']>
590
+ : StdioSingleOptionType extends DuplexTransform
591
+ ? StdioSingleOptionType['transform']['readableObjectMode']
592
+ : false;
593
+
594
+ type BooleanObjectMode<ObjectModeOption extends boolean | undefined> = ObjectModeOption extends true ? true : false;
595
+
596
+ // Whether `result.stdio[FdNumber]` is an input stream
597
+ type IsInputFd<
598
+ FdNumber extends string,
599
+ OptionsType extends CommonOptions,
600
+ > = FdNumber extends '0'
601
+ ? true
602
+ : Intersects<StdioSingleOptionItems<FdStdioArrayOption<FdNumber, OptionsType>>, InputStdioOption>;
603
+
604
+ // Whether `result.stdin|stdout|stderr|all|stdio[*]` is `undefined`
605
+ type IgnoresResultOutput<
606
+ FdNumber extends string,
607
+ OptionsType extends CommonOptions,
608
+ > = FdSpecificOption<OptionsType['buffer'], FdNumber> extends false
609
+ ? true
610
+ : IsInputFd<FdNumber, OptionsType> extends true
611
+ ? true
612
+ : IgnoresSubprocessOutput<FdNumber, OptionsType>;
613
+
614
+ // Whether `subprocess.stdout|stderr|all` is `undefined|null`
615
+ type IgnoresSubprocessOutput<
616
+ FdNumber extends string,
617
+ OptionsType extends CommonOptions,
618
+ > = IgnoresOutput<FdNumber, FdStdioOption<FdNumber, OptionsType>>;
619
+
620
+ type IgnoresOutput<
621
+ FdNumber extends string,
622
+ StdioOptionType,
623
+ > = StdioOptionType extends NoStreamStdioOption<FdNumber> ? true : false;
624
+
625
+ type DefaultEncodingOption = 'utf8';
626
+ type TextEncodingOption =
627
+ | DefaultEncodingOption
628
+ | 'utf16le';
629
+
630
+ type BufferEncodingOption = 'buffer';
631
+ type BinaryEncodingOption =
632
+ | BufferEncodingOption
139
633
  | 'hex'
140
634
  | 'base64'
141
635
  | 'base64url'
142
- | 'buffer'
143
- | null
144
- | undefined;
145
- type DefaultEncodingOption = 'utf8';
636
+ | 'latin1'
637
+ | 'ascii';
638
+
639
+ // `options.encoding`
640
+ type EncodingOption =
641
+ | TextEncodingOption
642
+ | BinaryEncodingOption
643
+ | undefined;
146
644
 
147
- type CommonOptions<EncodingType extends EncodingOption = DefaultEncodingOption> = {
645
+ // `result.stdout|stderr|stdio`
646
+ type ResultStdioNotAll<
647
+ FdNumber extends string,
648
+ OptionsType extends CommonOptions,
649
+ > = ResultStdio<FdNumber, FdNumber, FdNumber, OptionsType>;
650
+
651
+ // `result.stdout|stderr|stdio|all`
652
+ type ResultStdio<
653
+ MainFdNumber extends string,
654
+ ObjectFdNumber extends string,
655
+ LinesFdNumber extends string,
656
+ OptionsType extends CommonOptions,
657
+ > = ResultStdioProperty<
658
+ ObjectFdNumber,
659
+ LinesFdNumber,
660
+ IgnoresResultOutput<MainFdNumber, OptionsType>,
661
+ OptionsType
662
+ >;
663
+
664
+ type ResultStdioProperty<
665
+ ObjectFdNumber extends string,
666
+ LinesFdNumber extends string,
667
+ StreamOutputIgnored,
668
+ OptionsType extends CommonOptions,
669
+ > = StreamOutputIgnored extends true
670
+ ? undefined
671
+ : ResultStdioItem<
672
+ IsObjectFd<ObjectFdNumber, OptionsType>,
673
+ FdSpecificOption<OptionsType['lines'], LinesFdNumber>,
674
+ OptionsType['encoding']
675
+ >;
676
+
677
+ type ResultStdioItem<
678
+ IsObjectResult,
679
+ LinesOption extends boolean | undefined,
680
+ Encoding extends CommonOptions['encoding'],
681
+ > = IsObjectResult extends true ? unknown[]
682
+ : Encoding extends BufferEncodingOption
683
+ ? Uint8Array
684
+ : LinesOption extends true
685
+ ? Encoding extends BinaryEncodingOption
686
+ ? string
687
+ : string[]
688
+ : string;
689
+
690
+ // `result.all`
691
+ type ResultAll<OptionsType extends CommonOptions> =
692
+ ResultAllProperty<OptionsType['all'], OptionsType>;
693
+
694
+ type ResultAllProperty<
695
+ AllOption extends CommonOptions['all'],
696
+ OptionsType extends CommonOptions,
697
+ > = AllOption extends true
698
+ ? ResultStdio<
699
+ AllMainFd<OptionsType>,
700
+ AllObjectFd<OptionsType>,
701
+ AllLinesFd<OptionsType>,
702
+ OptionsType
703
+ >
704
+ : undefined;
705
+
706
+ type AllMainFd<OptionsType extends CommonOptions> =
707
+ IgnoresResultOutput<'1', OptionsType> extends true ? '2' : '1';
708
+
709
+ type AllObjectFd<OptionsType extends CommonOptions> =
710
+ IsObjectFd<'1', OptionsType> extends true ? '1' : '2';
711
+
712
+ type AllLinesFd<OptionsType extends CommonOptions> =
713
+ FdSpecificOption<OptionsType['lines'], '1'> extends true ? '1' : '2';
714
+
715
+ // `result.stdio`
716
+ type ResultStdioArray<OptionsType extends CommonOptions> =
717
+ MapResultStdio<StdioOptionNormalizedArray<OptionsType>, OptionsType>;
718
+
719
+ type MapResultStdio<
720
+ StdioOptionsArrayType,
721
+ OptionsType extends CommonOptions,
722
+ > = {
723
+ -readonly [FdNumber in keyof StdioOptionsArrayType]: ResultStdioNotAll<
724
+ FdNumber extends string ? FdNumber : string,
725
+ OptionsType
726
+ >
727
+ };
728
+
729
+ // `result.ipcOutput`
730
+ // This is empty unless the `ipc` option is `true`.
731
+ // Also, this is empty if the `buffer` option is `false`.
732
+ type ResultIpcOutput<
733
+ IsSync,
734
+ OptionsType extends CommonOptions,
735
+ > = IsSync extends true
736
+ ? []
737
+ : ResultIpcAsync<
738
+ FdSpecificOption<OptionsType['buffer'], 'ipc'>,
739
+ HasIpc<StricterOptions<OptionsType, Options>>,
740
+ OptionsType['serialization']
741
+ >;
742
+
743
+ type ResultIpcAsync<
744
+ BufferOption extends boolean | undefined,
745
+ IpcEnabled extends boolean,
746
+ SerializationOption extends CommonOptions['serialization'],
747
+ > = BufferOption extends false
748
+ ? []
749
+ : IpcEnabled extends true
750
+ ? Array<Message<SerializationOption>>
751
+ : [];
752
+
753
+ declare abstract class CommonResult<
754
+ IsSync extends boolean,
755
+ OptionsType extends CommonOptions,
756
+ > {
148
757
  /**
149
- Kill the spawned process when the parent process exits unless either:
150
- - the spawned process is [`detached`](https://nodejs.org/api/child_process.html#child_process_options_detached)
151
- - the parent process is terminated abruptly, for example, with `SIGKILL` as opposed to `SIGTERM` or a normal exit
758
+ The output of the subprocess on [`stdout`](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)).
152
759
 
153
- @default true
760
+ This is `undefined` if the `stdout` option is set to only `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
761
+
762
+ This is an array if the `lines` option is `true`, or if the `stdout` option is a transform in object mode.
154
763
  */
155
- readonly cleanup?: boolean;
764
+ stdout: ResultStdioNotAll<'1', OptionsType>;
156
765
 
157
766
  /**
158
- Prefer locally installed binaries when looking for a binary to execute.
767
+ The output of the subprocess on [`stderr`](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)).
159
768
 
160
- If you `$ npm install foo`, you can then `execa('foo')`.
769
+ This is `undefined` if the `stderr` option is set to only `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
161
770
 
162
- @default `true` with `$`, `false` otherwise
771
+ This is an array if the `lines` option is `true`, or if the `stderr` option is a transform in object mode.
163
772
  */
164
- readonly preferLocal?: boolean;
773
+ stderr: ResultStdioNotAll<'2', OptionsType>;
165
774
 
166
775
  /**
167
- Preferred path to find locally installed binaries in (use with `preferLocal`).
776
+ The output of the subprocess with `result.stdout` and `result.stderr` interleaved.
168
777
 
169
- @default process.cwd()
778
+ This requires the `all` option to be `true`.
779
+
780
+ This is `undefined` if both `stdout` and `stderr` options are set to only `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
781
+
782
+ This is an array if the `lines` option is `true`, or if either the `stdout` or `stderr` option is a transform in object mode.
170
783
  */
171
- readonly localDir?: string | URL;
784
+ all: ResultAll<OptionsType>;
172
785
 
173
786
  /**
174
- Path to the Node.js executable to use in child processes.
787
+ The output of the subprocess on `stdin`, `stdout`, `stderr` and other file descriptors.
175
788
 
176
- This can be either an absolute path or a path relative to the `cwd` option.
789
+ Items are `undefined` when their corresponding `stdio` option is set to only `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
177
790
 
178
- Requires `preferLocal` to be `true`.
791
+ Items are arrays when their corresponding `stdio` option is a transform in object mode.
792
+ */
793
+ stdio: ResultStdioArray<OptionsType>;
179
794
 
180
- For example, this can be used together with [`get-node`](https://github.com/ehmicky/get-node) to run a specific Node.js version in a child process.
795
+ /**
796
+ All the messages sent by the subprocess to the current process.
181
797
 
182
- @default process.execPath
798
+ This is empty unless the `ipc` option is `true`. Also, this is empty if the `buffer` option is `false`.
183
799
  */
184
- readonly execPath?: string;
800
+ ipcOutput: ResultIpcOutput<IsSync, OptionsType>;
185
801
 
186
802
  /**
187
- Buffer the output from the spawned process. When set to `false`, you must read the output of `stdout` and `stderr` (or `all` if the `all` option is `true`). Otherwise the returned promise will not be resolved/rejected.
803
+ Results of the other subprocesses that were piped into this subprocess.
188
804
 
189
- If the spawned process fails, `error.stdout`, `error.stderr`, and `error.all` will contain the buffered data.
805
+ This array is initially empty and is populated each time the `subprocess.pipe()` method resolves.
806
+ */
807
+ pipedFrom: Unless<IsSync, Result$1[], []>;
190
808
 
191
- @default true
809
+ /**
810
+ The file and arguments that were run.
192
811
  */
193
- readonly buffer?: boolean;
812
+ command: string;
194
813
 
195
814
  /**
196
- Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
815
+ Same as `command` but escaped.
816
+ */
817
+ escapedCommand: string;
197
818
 
198
- @default `inherit` with `$`, `pipe` otherwise
819
+ /**
820
+ The current directory in which the command was run.
821
+ */
822
+ cwd: string;
823
+
824
+ /**
825
+ Duration of the subprocess, in milliseconds.
199
826
  */
200
- readonly stdin?: StdioOption;
827
+ durationMs: number;
201
828
 
202
829
  /**
203
- Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
830
+ Whether the subprocess failed to run.
204
831
 
205
- @default 'pipe'
832
+ When this is `true`, the result is an `ExecaError` instance with additional error-related properties.
206
833
  */
207
- readonly stdout?: StdioOption;
834
+ failed: boolean;
208
835
 
209
836
  /**
210
- Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
837
+ Whether the subprocess timed out due to the `timeout` option.
838
+ */
839
+ timedOut: boolean;
211
840
 
212
- @default 'pipe'
841
+ /**
842
+ Whether the subprocess was canceled using the `cancelSignal` option.
213
843
  */
214
- readonly stderr?: StdioOption;
844
+ isCanceled: boolean;
215
845
 
216
846
  /**
217
- Setting this to `false` resolves the promise with the error instead of rejecting it.
847
+ Whether the subprocess was canceled using both the `cancelSignal` and the `gracefulCancel` options.
848
+ */
849
+ isGracefullyCanceled: boolean;
218
850
 
219
- @default true
851
+ /**
852
+ Whether the subprocess failed because its output was larger than the `maxBuffer` option.
220
853
  */
221
- readonly reject?: boolean;
854
+ isMaxBuffer: boolean;
855
+
856
+ /**
857
+ Whether the subprocess was terminated by a signal (like `SIGTERM`) sent by either:
858
+ - The current process.
859
+ - Another process. This case is [not supported on Windows](https://nodejs.org/api/process.html#signal-events).
860
+ */
861
+ isTerminated: boolean;
862
+
863
+ /**
864
+ Whether the subprocess was terminated by the `SIGKILL` signal sent by the `forceKillAfterDelay` option.
865
+ */
866
+ isForcefullyTerminated: boolean;
222
867
 
223
868
  /**
224
- Add an `.all` property on the promise and the resolved value. The property contains the output of the process with `stdout` and `stderr` interleaved.
869
+ The numeric [exit code](https://en.wikipedia.org/wiki/Exit_status) of the subprocess that was run.
870
+
871
+ This is `undefined` when the subprocess could not be spawned or was terminated by a signal.
872
+ */
873
+ exitCode?: number;
874
+
875
+ /**
876
+ The name of the signal (like `SIGTERM`) that terminated the subprocess, sent by either:
877
+ - The current process.
878
+ - Another process. This case is [not supported on Windows](https://nodejs.org/api/process.html#signal-events).
879
+
880
+ If a signal terminated the subprocess, this property is defined and included in the error message. Otherwise it is `undefined`.
881
+ */
882
+ signal?: keyof SignalConstants;
883
+
884
+ /**
885
+ A human-friendly description of the signal that was used to terminate the subprocess.
886
+
887
+ If a signal terminated the subprocess, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen.
888
+ */
889
+ signalDescription?: string;
890
+
891
+ /**
892
+ Error message when the subprocess failed to run.
893
+ */
894
+ message?: string;
895
+
896
+ /**
897
+ This is the same as `error.message` except it does not include the subprocess output.
898
+ */
899
+ shortMessage?: string;
900
+
901
+ /**
902
+ Original error message. This is the same as `error.message` excluding the subprocess output and some additional information added by Execa.
903
+
904
+ This exists only in specific instances, such as during a timeout.
905
+ */
906
+ originalMessage?: string;
907
+
908
+ /**
909
+ Underlying error, if there is one. For example, this is set by `subprocess.kill(error)`.
910
+
911
+ This is usually an `Error` instance.
912
+ */
913
+ cause?: unknown;
914
+
915
+ /**
916
+ Node.js-specific [error code](https://nodejs.org/api/errors.html#errorcode), when available.
917
+ */
918
+ code?: string;
919
+
920
+ // We cannot `extend Error` because `message` must be optional. So we copy its types here.
921
+ readonly name?: Error['name'];
922
+ stack?: Error['stack'];
923
+ }
924
+
925
+ type SuccessResult$1<
926
+ IsSync extends boolean = boolean,
927
+ OptionsType extends CommonOptions = CommonOptions,
928
+ > = InstanceType<typeof CommonResult<IsSync, OptionsType>> & OmitErrorIfReject<OptionsType['reject']>;
929
+
930
+ type OmitErrorIfReject<RejectOption extends CommonOptions['reject']> = {
931
+ [ErrorProperty in ErrorProperties]: RejectOption extends false ? unknown : never
932
+ };
933
+
934
+ /**
935
+ Result of a subprocess successful execution.
936
+
937
+ When the subprocess fails, it is rejected with an `ExecaError` instead.
938
+ */
939
+ type Result$1<OptionsType extends Options = Options> = SuccessResult$1<false, OptionsType>;
940
+
941
+ /**
942
+ Result of a subprocess successful execution.
943
+
944
+ When the subprocess fails, it is rejected with an `ExecaError` instead.
945
+ */
946
+ type SyncResult<OptionsType extends SyncOptions = SyncOptions> = SuccessResult$1<true, OptionsType>;
947
+
948
+ type VerboseOption = FdGenericOption<
949
+ | 'none'
950
+ | 'short'
951
+ | 'full'
952
+ | VerboseFunction
953
+ >;
954
+
955
+ type VerboseFunction = (verboseLine: string, verboseObject: MinimalVerboseObject) => string | void;
956
+
957
+ type GenericVerboseObject = {
958
+ /**
959
+ Event type. This can be:
960
+ - `'command'`: subprocess start
961
+ - `'output'`: `stdout`/`stderr` output
962
+ - `'ipc'`: IPC output
963
+ - `'error'`: subprocess failure
964
+ - `'duration'`: subprocess success or failure
965
+ */
966
+ type: 'command' | 'output' | 'ipc' | 'error' | 'duration';
967
+
968
+ /**
969
+ Depending on `verboseObject.type`, this is:
970
+ - `'command'`: the `result.escapedCommand`
971
+ - `'output'`: one line from `result.stdout` or `result.stderr`
972
+ - `'ipc'`: one IPC message from `result.ipcOutput`
973
+ - `'error'`: the `error.shortMessage`
974
+ - `'duration'`: the `result.durationMs`
975
+ */
976
+ message: string;
977
+
978
+ /**
979
+ The file and arguments that were run. This is the same as `result.escapedCommand`.
980
+ */
981
+ escapedCommand: string;
982
+
983
+ /**
984
+ Serial number identifying the subprocess within the current process. It is incremented from `'0'`.
985
+
986
+ This is helpful when multiple subprocesses are running at the same time.
987
+
988
+ This is similar to a [PID](https://en.wikipedia.org/wiki/Process_identifier) except it has no maximum limit, which means it never repeats. Also, it is usually shorter.
989
+ */
990
+ commandId: string;
991
+
992
+ /**
993
+ Event date/time.
994
+ */
995
+ timestamp: Date;
996
+
997
+ /**
998
+ Whether another subprocess is piped into this subprocess. This is `false` when `result.pipedFrom` is empty.
999
+ */
1000
+ piped: boolean;
1001
+ };
1002
+
1003
+ type MinimalVerboseObject = GenericVerboseObject & {
1004
+ // We cannot use the `CommonOptions` type because it would make this type recursive
1005
+ options: object;
1006
+ result?: never;
1007
+ };
1008
+
1009
+ type CommonOptions<IsSync extends boolean = boolean> = {
1010
+ /**
1011
+ Prefer locally installed binaries when looking for a binary to execute.
1012
+
1013
+ @default `true` with `$`, `false` otherwise
1014
+ */
1015
+ readonly preferLocal?: boolean;
1016
+
1017
+ /**
1018
+ Preferred path to find locally installed binaries, when using the `preferLocal` option.
1019
+
1020
+ @default `cwd` option
1021
+ */
1022
+ readonly localDir?: string | URL;
1023
+
1024
+ /**
1025
+ If `true`, runs with Node.js. The first argument must be a Node.js file.
1026
+
1027
+ The subprocess inherits the current Node.js [CLI flags](https://nodejs.org/api/cli.html#options) and version. This can be overridden using the `nodeOptions` and `nodePath` options.
1028
+
1029
+ @default `true` with `execaNode()`, `false` otherwise
1030
+ */
1031
+ readonly node?: boolean;
1032
+
1033
+ /**
1034
+ List of [CLI flags](https://nodejs.org/api/cli.html#cli_options) passed to the Node.js executable.
1035
+
1036
+ Requires the `node` option to be `true`.
1037
+
1038
+ @default [`process.execArgv`](https://nodejs.org/api/process.html#process_process_execargv) (current Node.js CLI flags)
1039
+ */
1040
+ readonly nodeOptions?: readonly string[];
1041
+
1042
+ /**
1043
+ Path to the Node.js executable.
1044
+
1045
+ Requires the `node` option to be `true`.
1046
+
1047
+ @default [`process.execPath`](https://nodejs.org/api/process.html#process_process_execpath) (current Node.js executable)
1048
+ */
1049
+ readonly nodePath?: string | URL;
1050
+
1051
+ /**
1052
+ If `true`, runs the command inside of a [shell](https://en.wikipedia.org/wiki/Shell_(computing)).
1053
+
1054
+ Uses [`/bin/sh`](https://en.wikipedia.org/wiki/Unix_shell) on UNIX and [`cmd.exe`](https://en.wikipedia.org/wiki/Cmd.exe) on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows.
1055
+
1056
+ We recommend against using this option.
225
1057
 
226
1058
  @default false
227
1059
  */
228
- readonly all?: boolean;
1060
+ readonly shell?: boolean | string | URL;
229
1061
 
230
1062
  /**
231
- Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output.
1063
+ Current [working directory](https://en.wikipedia.org/wiki/Working_directory) of the subprocess.
232
1064
 
233
- @default true
1065
+ This is also used to resolve the `nodePath` option when it is a relative path.
1066
+
1067
+ @default process.cwd()
234
1068
  */
235
- readonly stripFinalNewline?: boolean;
1069
+ readonly cwd?: string | URL;
236
1070
 
237
1071
  /**
238
- Set to `false` if you don't want to extend the environment variables when providing the `env` property.
1072
+ [Environment variables](https://en.wikipedia.org/wiki/Environment_variable).
1073
+
1074
+ Unless the `extendEnv` option is `false`, the subprocess also uses the current process' environment variables ([`process.env`](https://nodejs.org/api/process.html#processenv)).
1075
+
1076
+ @default [process.env](https://nodejs.org/api/process.html#processenv)
1077
+ */
1078
+ readonly env?: Readonly<Partial<Record<string, string>>>;
1079
+
1080
+ /**
1081
+ If `true`, the subprocess uses both the `env` option and the current process' environment variables ([`process.env`](https://nodejs.org/api/process.html#processenv)).
1082
+ If `false`, only the `env` option is used, not `process.env`.
239
1083
 
240
1084
  @default true
241
1085
  */
242
1086
  readonly extendEnv?: boolean;
243
1087
 
244
1088
  /**
245
- Current working directory of the child process.
1089
+ Write some input to the subprocess' [`stdin`](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)).
246
1090
 
247
- @default process.cwd()
1091
+ See also the `inputFile` and `stdin` options.
248
1092
  */
249
- readonly cwd?: string | URL;
1093
+ readonly input?: string | Uint8Array | Readable;
250
1094
 
251
1095
  /**
252
- Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this.
1096
+ Use a file as input to the subprocess' [`stdin`](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)).
253
1097
 
254
- @default process.env
1098
+ See also the `input` and `stdin` options.
255
1099
  */
256
- readonly env?: NodeJS.ProcessEnv;
1100
+ readonly inputFile?: string | URL;
257
1101
 
258
1102
  /**
259
- Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified.
1103
+ How to setup the subprocess' [standard input](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)). This can be `'pipe'`, `'overlapped'`, `'ignore`, `'inherit'`, a file descriptor integer, a Node.js `Readable` stream, a web `ReadableStream`, a `{ file: 'path' }` object, a file URL, an `Iterable`, an `AsyncIterable`, an `Uint8Array`, a generator function, a `Duplex` or a web `TransformStream`.
1104
+
1105
+ This can be an array of values such as `['inherit', 'pipe']` or `[fileUrl, 'pipe']`.
1106
+
1107
+ @default `'inherit'` with `$`, `'pipe'` otherwise
260
1108
  */
261
- readonly argv0?: string;
1109
+ readonly stdin?: StdinOptionCommon<IsSync>;
262
1110
 
263
1111
  /**
264
- Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration.
1112
+ How to setup the subprocess' [standard output](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)). This can be `'pipe'`, `'overlapped'`, `'ignore`, `'inherit'`, a file descriptor integer, a Node.js `Writable` stream, a web `WritableStream`, a `{ file: 'path' }` object, a file URL, a generator function, a `Duplex` or a web `TransformStream`.
1113
+
1114
+ This can be an array of values such as `['inherit', 'pipe']` or `[fileUrl, 'pipe']`.
265
1115
 
266
1116
  @default 'pipe'
267
1117
  */
268
- readonly stdio?: 'pipe' | 'overlapped' | 'ignore' | 'inherit' | readonly StdioOption[];
1118
+ readonly stdout?: StdoutStderrOptionCommon<IsSync>;
269
1119
 
270
1120
  /**
271
- Specify the kind of serialization used for sending messages between processes when using the `stdio: 'ipc'` option or `execaNode()`:
272
- - `json`: Uses `JSON.stringify()` and `JSON.parse()`.
273
- - `advanced`: Uses [`v8.serialize()`](https://nodejs.org/api/v8.html#v8_v8_serialize_value)
1121
+ How to setup the subprocess' [standard error](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)). This can be `'pipe'`, `'overlapped'`, `'ignore`, `'inherit'`, a file descriptor integer, a Node.js `Writable` stream, a web `WritableStream`, a `{ file: 'path' }` object, a file URL, a generator function, a `Duplex` or a web `TransformStream`.
274
1122
 
275
- [More info.](https://nodejs.org/api/child_process.html#child_process_advanced_serialization)
1123
+ This can be an array of values such as `['inherit', 'pipe']` or `[fileUrl, 'pipe']`.
276
1124
 
277
- @default 'json'
1125
+ @default 'pipe'
278
1126
  */
279
- readonly serialization?: 'json' | 'advanced';
1127
+ readonly stderr?: StdoutStderrOptionCommon<IsSync>;
280
1128
 
281
1129
  /**
282
- Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached).
1130
+ Like the `stdin`, `stdout` and `stderr` options but for all [file descriptors](https://en.wikipedia.org/wiki/File_descriptor) at once. For example, `{stdio: ['ignore', 'pipe', 'pipe']}` is the same as `{stdin: 'ignore', stdout: 'pipe', stderr: 'pipe'}`.
283
1131
 
284
- @default false
1132
+ A single string can be used as a shortcut.
1133
+
1134
+ The array can have more than 3 items, to create additional file descriptors beyond `stdin`/`stdout`/`stderr`.
1135
+
1136
+ @default 'pipe'
285
1137
  */
286
- readonly detached?: boolean;
1138
+ readonly stdio?: StdioOptionsProperty<IsSync>;
287
1139
 
288
1140
  /**
289
- Sets the user identity of the process.
1141
+ Add a `subprocess.all` stream and a `result.all` property. They contain the combined/interleaved output of the subprocess' `stdout` and `stderr`.
1142
+
1143
+ @default false
290
1144
  */
291
- readonly uid?: number;
1145
+ readonly all?: boolean;
292
1146
 
293
1147
  /**
294
- Sets the group identity of the process.
1148
+ If the subprocess outputs text, specifies its character encoding, either [`'utf8'`](https://en.wikipedia.org/wiki/UTF-8) or [`'utf16le'`](https://en.wikipedia.org/wiki/UTF-16).
1149
+
1150
+ If it outputs binary data instead, this should be either:
1151
+ - `'buffer'`: returns the binary output as an `Uint8Array`.
1152
+ - [`'hex'`](https://en.wikipedia.org/wiki/Hexadecimal), [`'base64'`](https://en.wikipedia.org/wiki/Base64), [`'base64url'`](https://en.wikipedia.org/wiki/Base64#URL_applications), [`'latin1'`](https://nodejs.org/api/buffer.html#buffers-and-character-encodings) or [`'ascii'`](https://nodejs.org/api/buffer.html#buffers-and-character-encodings): encodes the binary output as a string.
1153
+
1154
+ The output is available with `result.stdout`, `result.stderr` and `result.stdio`.
1155
+
1156
+ @default 'utf8'
295
1157
  */
296
- readonly gid?: number;
1158
+ readonly encoding?: EncodingOption;
297
1159
 
298
1160
  /**
299
- If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows.
1161
+ Set `result.stdout`, `result.stderr`, `result.all` and `result.stdio` as arrays of strings, splitting the subprocess' output into lines.
1162
+
1163
+ This cannot be used if the `encoding` option is binary.
300
1164
 
301
- We recommend against using this option since it is:
302
- - not cross-platform, encouraging shell-specific syntax.
303
- - slower, because of the additional shell interpretation.
304
- - unsafe, potentially allowing command injection.
1165
+ By default, this applies to both `stdout` and `stderr`, but different values can also be passed.
305
1166
 
306
1167
  @default false
307
1168
  */
308
- readonly shell?: boolean | string;
1169
+ readonly lines?: FdGenericOption<boolean>;
309
1170
 
310
1171
  /**
311
- Specify the character encoding used to decode the `stdout` and `stderr` output. If set to `'buffer'` or `null`, then `stdout` and `stderr` will be a `Buffer` instead of a string.
1172
+ Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output.
312
1173
 
313
- @default 'utf8'
1174
+ If the `lines` option is true, this applies to each output line instead.
1175
+
1176
+ By default, this applies to both `stdout` and `stderr`, but different values can also be passed.
1177
+
1178
+ @default true
314
1179
  */
315
- readonly encoding?: EncodingType;
1180
+ readonly stripFinalNewline?: FdGenericOption<boolean>;
316
1181
 
317
1182
  /**
318
- If `timeout` is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than `timeout` milliseconds.
1183
+ Largest amount of data allowed on `stdout`, `stderr` and `stdio`.
319
1184
 
320
- @default 0
1185
+ By default, this applies to both `stdout` and `stderr`, but different values can also be passed.
1186
+
1187
+ When reached, `error.isMaxBuffer` becomes `true`.
1188
+
1189
+ @default 100_000_000
321
1190
  */
322
- readonly timeout?: number;
1191
+ readonly maxBuffer?: FdGenericOption<number>;
323
1192
 
324
1193
  /**
325
- Largest amount of data in bytes allowed on `stdout` or `stderr`. Default: 100 MB.
1194
+ When `buffer` is `false`, the `result.stdout`, `result.stderr`, `result.all` and `result.stdio` properties are not set.
326
1195
 
327
- @default 100_000_000
1196
+ By default, this applies to both `stdout` and `stderr`, but different values can also be passed.
1197
+
1198
+ @default true
328
1199
  */
329
- readonly maxBuffer?: number;
1200
+ readonly buffer?: FdGenericOption<boolean>;
330
1201
 
331
1202
  /**
332
- Signal value to be used when the spawned process will be killed.
1203
+ Enables exchanging messages with the subprocess using `subprocess.sendMessage(message)`, `subprocess.getOneMessage()` and `subprocess.getEachMessage()`.
333
1204
 
334
- @default 'SIGTERM'
1205
+ The subprocess must be a Node.js file.
1206
+
1207
+ @default `true` if the `node`, `ipcInput` or `gracefulCancel` option is set, `false` otherwise
1208
+ */
1209
+ readonly ipc?: Unless<IsSync, boolean>;
1210
+
1211
+ /**
1212
+ Specify the kind of serialization used for sending messages between subprocesses when using the `ipc` option.
1213
+
1214
+ @default 'advanced'
1215
+ */
1216
+ readonly serialization?: Unless<IsSync, 'json' | 'advanced'>;
1217
+
1218
+ /**
1219
+ Sends an IPC message when the subprocess starts.
1220
+
1221
+ The subprocess must be a Node.js file. The value's type depends on the `serialization` option.
1222
+ */
1223
+ readonly ipcInput?: Unless<IsSync, Message>;
1224
+
1225
+ /**
1226
+ If `verbose` is `'short'`, prints the command on [`stderr`](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)): its file, arguments, duration and (if it failed) error message.
1227
+
1228
+ If `verbose` is `'full'` or a function, the command's [`stdout`](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)), `stderr` and IPC messages are also printed.
1229
+
1230
+ A function can be passed to customize logging.
1231
+
1232
+ By default, this applies to both `stdout` and `stderr`, but different values can also be passed.
1233
+
1234
+ @default 'none'
1235
+ */
1236
+ readonly verbose?: VerboseOption;
1237
+
1238
+ /**
1239
+ Setting this to `false` resolves the result's promise with the error instead of rejecting it.
1240
+
1241
+ @default true
1242
+ */
1243
+ readonly reject?: boolean;
1244
+
1245
+ /**
1246
+ If `timeout` is greater than `0`, the subprocess will be terminated if it runs for longer than that amount of milliseconds.
1247
+
1248
+ On timeout, `error.timedOut` becomes `true`.
1249
+
1250
+ @default 0
335
1251
  */
336
- readonly killSignal?: string | number;
1252
+ readonly timeout?: number;
337
1253
 
338
1254
  /**
339
- You can abort the spawned process using [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).
1255
+ When the `cancelSignal` is [aborted](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort), terminate the subprocess using a `SIGTERM` signal.
340
1256
 
341
- When `AbortController.abort()` is called, [`.isCanceled`](https://github.com/sindresorhus/execa#iscanceled) becomes `true`.
1257
+ When aborted, `error.isCanceled` becomes `true`.
342
1258
 
343
1259
  @example
344
1260
  ```
345
- import {execa} from 'execa';
1261
+ import {execaNode} from 'execa';
346
1262
 
347
- const abortController = new AbortController();
348
- const subprocess = execa('node', [], {signal: abortController.signal});
1263
+ const controller = new AbortController();
1264
+ const cancelSignal = controller.signal;
349
1265
 
350
1266
  setTimeout(() => {
351
- abortController.abort();
352
- }, 1000);
1267
+ controller.abort();
1268
+ }, 5000);
353
1269
 
354
1270
  try {
355
- await subprocess;
1271
+ await execaNode({cancelSignal})`build.js`;
356
1272
  } catch (error) {
357
- console.log(subprocess.killed); // true
358
- console.log(error.isCanceled); // true
1273
+ if (error.isCanceled) {
1274
+ console.error('Canceled by cancelSignal.');
1275
+ }
1276
+
1277
+ throw error;
359
1278
  }
360
1279
  ```
361
1280
  */
362
- readonly signal?: AbortSignal;
1281
+ readonly cancelSignal?: Unless<IsSync, AbortSignal>;
363
1282
 
364
1283
  /**
365
- If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`.
1284
+ When the `cancelSignal` option is [aborted](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort), do not send any `SIGTERM`. Instead, abort the [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) returned by `getCancelSignal()`. The subprocess should use it to terminate gracefully.
1285
+
1286
+ The subprocess must be a Node.js file.
1287
+
1288
+ When aborted, `error.isGracefullyCanceled` becomes `true`.
366
1289
 
367
1290
  @default false
368
1291
  */
369
- readonly windowsVerbatimArguments?: boolean;
1292
+ readonly gracefulCancel?: Unless<IsSync, boolean>;
370
1293
 
371
1294
  /**
372
- On Windows, do not create a new console window. Please note this also prevents `CTRL-C` [from working](https://github.com/nodejs/node/issues/29837) on Windows.
1295
+ If the subprocess is terminated but does not exit, forcefully exit it by sending [`SIGKILL`](https://en.wikipedia.org/wiki/Signal_(IPC)#SIGKILL).
373
1296
 
374
- @default true
1297
+ When this happens, `error.isForcefullyTerminated` becomes `true`.
1298
+
1299
+ @default 5000
375
1300
  */
376
- readonly windowsHide?: boolean;
1301
+ readonly forceKillAfterDelay?: Unless<IsSync, number | boolean>;
377
1302
 
378
1303
  /**
379
- Print each command on `stderr` before executing it.
1304
+ Default [signal](https://en.wikipedia.org/wiki/Signal_(IPC)) used to terminate the subprocess.
1305
+
1306
+ This can be either a name (like `'SIGTERM'`) or a number (like `9`).
1307
+
1308
+ @default 'SIGTERM'
1309
+ */
1310
+ readonly killSignal?: keyof SignalConstants | number;
380
1311
 
381
- This can also be enabled by setting the `NODE_DEBUG=execa` environment variable in the current process.
1312
+ /**
1313
+ Run the subprocess independently from the current process.
382
1314
 
383
1315
  @default false
384
1316
  */
385
- readonly verbose?: boolean;
386
- };
1317
+ readonly detached?: Unless<IsSync, boolean>;
1318
+
1319
+ /**
1320
+ Kill the subprocess when the current process exits.
387
1321
 
388
- type StdoutStderrAll = string | Buffer | undefined;
1322
+ @default true
1323
+ */
1324
+ readonly cleanup?: Unless<IsSync, boolean>;
389
1325
 
390
- type ExecaReturnBase<StdoutStderrType extends StdoutStderrAll> = {
391
1326
  /**
392
- The file and arguments that were run, for logging purposes.
1327
+ Sets the [user identifier](https://en.wikipedia.org/wiki/User_identifier) of the subprocess.
393
1328
 
394
- This is not escaped and should not be executed directly as a process, including using `execa()` or `execaCommand()`.
1329
+ @default current user identifier
395
1330
  */
396
- command: string;
1331
+ readonly uid?: number;
397
1332
 
398
1333
  /**
399
- Same as `command` but escaped.
1334
+ Sets the [group identifier](https://en.wikipedia.org/wiki/Group_identifier) of the subprocess.
400
1335
 
401
- This is meant to be copy and pasted into a shell, for debugging purposes.
402
- Since the escaping is fairly basic, this should not be executed directly as a process, including using `execa()` or `execaCommand()`.
1336
+ @default current group identifier
403
1337
  */
404
- escapedCommand: string;
1338
+ readonly gid?: number;
405
1339
 
406
1340
  /**
407
- The numeric exit code of the process that was run.
1341
+ Value of [`argv[0]`](https://nodejs.org/api/process.html#processargv0) sent to the subprocess.
1342
+
1343
+ @default file being executed
408
1344
  */
409
- exitCode: number;
1345
+ readonly argv0?: string;
410
1346
 
411
1347
  /**
412
- The output of the process on stdout.
1348
+ On Windows, do not create a new console window.
1349
+
1350
+ @default true
413
1351
  */
414
- stdout: StdoutStderrType;
1352
+ readonly windowsHide?: boolean;
415
1353
 
416
1354
  /**
417
- The output of the process on stderr.
1355
+ If `false`, escapes the command arguments on Windows.
1356
+
1357
+ @default `true` if the `shell` option is `true`, `false` otherwise
418
1358
  */
419
- stderr: StdoutStderrType;
1359
+ readonly windowsVerbatimArguments?: boolean;
1360
+ };
420
1361
 
1362
+ /**
1363
+ Subprocess options.
1364
+
1365
+ Some options are related to the subprocess output: `verbose`, `lines`, `stripFinalNewline`, `buffer`, `maxBuffer`. By default, those options apply to all file descriptors (`stdout`, `stderr`, etc.). A plain object can be passed instead to apply them to only `stdout`, `stderr`, `all` (both stdout and stderr), `ipc`, `fd3`, etc.
1366
+
1367
+ @example
1368
+
1369
+ ```
1370
+ // Same value for stdout and stderr
1371
+ await execa({verbose: 'full'})`npm run build`;
1372
+
1373
+ // Different values for stdout and stderr
1374
+ await execa({verbose: {stdout: 'none', stderr: 'full'}})`npm run build`;
1375
+ ```
1376
+ */
1377
+ type Options = CommonOptions<false>;
1378
+
1379
+ /**
1380
+ Subprocess options, with synchronous methods.
1381
+
1382
+ Some options are related to the subprocess output: `verbose`, `lines`, `stripFinalNewline`, `buffer`, `maxBuffer`. By default, those options apply to all file descriptors (`stdout`, `stderr`, etc.). A plain object can be passed instead to apply them to only `stdout`, `stderr`, `all` (both stdout and stderr), `ipc`, `fd3`, etc.
1383
+
1384
+ @example
1385
+
1386
+ ```
1387
+ // Same value for stdout and stderr
1388
+ execaSync({verbose: 'full'})`npm run build`;
1389
+
1390
+ // Different values for stdout and stderr
1391
+ execaSync({verbose: {stdout: 'none', stderr: 'full'}})`npm run build`;
1392
+ ```
1393
+ */
1394
+ type SyncOptions = CommonOptions<true>;
1395
+
1396
+ type StricterOptions<
1397
+ WideOptions extends CommonOptions,
1398
+ StrictOptions extends CommonOptions,
1399
+ > = WideOptions extends StrictOptions ? WideOptions : StrictOptions;
1400
+
1401
+ type TemplateExpressionItem =
1402
+ | string
1403
+ | number
1404
+ | Result$1
1405
+ | SyncResult;
1406
+
1407
+ /**
1408
+ Value allowed inside `${...}` when using the template string syntax.
1409
+ */
1410
+ type TemplateExpression = TemplateExpressionItem | readonly TemplateExpressionItem[];
1411
+
1412
+ // `subprocess.pipe()` options
1413
+ type PipeOptions = {
421
1414
  /**
422
- Whether the process failed to run.
1415
+ Which stream to pipe from the source subprocess. A [file descriptor](https://en.wikipedia.org/wiki/File_descriptor) like `"fd3"` can also be passed.
1416
+
1417
+ `"all"` pipes both `stdout` and `stderr`. This requires the `all` option to be `true`.
423
1418
  */
424
- failed: boolean;
1419
+ readonly from?: FromOption;
425
1420
 
426
1421
  /**
427
- Whether the process timed out.
1422
+ Which stream to pipe to the destination subprocess. A [file descriptor](https://en.wikipedia.org/wiki/File_descriptor) like `"fd3"` can also be passed.
428
1423
  */
429
- timedOut: boolean;
1424
+ readonly to?: ToOption;
430
1425
 
431
1426
  /**
432
- Whether the process was killed.
1427
+ Unpipe the subprocess when the signal aborts.
433
1428
  */
434
- killed: boolean;
1429
+ readonly unpipeSignal?: AbortSignal;
1430
+ };
435
1431
 
1432
+ // `subprocess.pipe()`
1433
+ type PipableSubprocess = {
436
1434
  /**
437
- The name of the signal that was used to terminate the process. For example, `SIGFPE`.
1435
+ [Pipe](https://nodejs.org/api/stream.html#readablepipedestination-options) the subprocess' `stdout` to a second Execa subprocess' `stdin`. This resolves with that second subprocess' result. If either subprocess is rejected, this is rejected with that subprocess' error instead.
438
1436
 
439
- If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`.
1437
+ This follows the same syntax as `execa(file, arguments?, options?)` except both regular options and pipe-specific options can be specified.
440
1438
  */
441
- signal?: string;
1439
+ pipe<OptionsType extends Options & PipeOptions = {}>(
1440
+ file: string | URL,
1441
+ arguments?: readonly string[],
1442
+ options?: OptionsType,
1443
+ ): Promise<Result$1<OptionsType>> & PipableSubprocess;
1444
+ pipe<OptionsType extends Options & PipeOptions = {}>(
1445
+ file: string | URL,
1446
+ options?: OptionsType,
1447
+ ): Promise<Result$1<OptionsType>> & PipableSubprocess;
442
1448
 
443
1449
  /**
444
- A human-friendly description of the signal that was used to terminate the process. For example, `Floating point arithmetic error`.
445
-
446
- If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen.
1450
+ Like `subprocess.pipe(file, arguments?, options?)` but using a `command` template string instead. This follows the same syntax as `$`.
447
1451
  */
448
- signalDescription?: string;
1452
+ pipe(templates: TemplateStringsArray, ...expressions: readonly TemplateExpression[]):
1453
+ Promise<Result$1<{}>> & PipableSubprocess;
1454
+ pipe<OptionsType extends Options & PipeOptions = {}>(options: OptionsType):
1455
+ (templates: TemplateStringsArray, ...expressions: readonly TemplateExpression[])
1456
+ => Promise<Result$1<OptionsType>> & PipableSubprocess;
449
1457
 
450
1458
  /**
451
- The `cwd` of the command if provided in the command options. Otherwise it is `process.cwd()`.
1459
+ Like `subprocess.pipe(file, arguments?, options?)` but using the return value of another `execa()` call instead.
452
1460
  */
453
- cwd: string;
1461
+ pipe<Destination extends ResultPromise>(destination: Destination, options?: PipeOptions):
1462
+ Promise<Awaited<Destination>> & PipableSubprocess;
454
1463
  };
455
1464
 
456
- type ExecaSyncReturnValue<StdoutStderrType extends StdoutStderrAll = string> = {
457
- } & ExecaReturnBase<StdoutStderrType>;
1465
+ // `subprocess.readable|duplex|iterable()` options
1466
+ type ReadableOptions = {
1467
+ /**
1468
+ Which stream to read from the subprocess. A [file descriptor](https://en.wikipedia.org/wiki/File_descriptor) like `"fd3"` can also be passed.
1469
+
1470
+ `"all"` reads both `stdout` and `stderr`. This requires the `all` option to be `true`.
1471
+
1472
+ @default 'stdout'
1473
+ */
1474
+ readonly from?: FromOption;
458
1475
 
459
- /**
460
- Result of a child process execution. On success this is a plain object. On failure this is also an `Error` instance.
461
-
462
- The child process fails when:
463
- - its exit code is not `0`
464
- - it was killed with a signal
465
- - timing out
466
- - being canceled
467
- - there's not enough memory or there are already too many child processes
468
- */
469
- type ExecaReturnValue<StdoutStderrType extends StdoutStderrAll = string> = {
470
1476
  /**
471
- The output of the process with `stdout` and `stderr` interleaved.
1477
+ If `false`, iterates over lines. Each line is a string.
1478
+
1479
+ If `true`, iterates over arbitrary chunks of data. Each line is an [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) (with `subprocess.iterable()`) or a [`Buffer`](https://nodejs.org/api/buffer.html#class-buffer) (with `subprocess.readable()`/`subprocess.duplex()`).
1480
+
1481
+ This is always `true` when the `encoding` option is binary.
472
1482
 
473
- This is `undefined` if either:
474
- - the `all` option is `false` (default value)
475
- - `execaSync()` was used
1483
+ @default `false` with `subprocess.iterable()`, `true` otherwise
476
1484
  */
477
- all?: StdoutStderrType;
1485
+ readonly binary?: boolean;
478
1486
 
479
1487
  /**
480
- Whether the process was canceled.
1488
+ If both this option and the `binary` option is `false`, [newlines](https://en.wikipedia.org/wiki/Newline) are stripped from each line.
481
1489
 
482
- You can cancel the spawned process using the [`signal`](https://github.com/sindresorhus/execa#signal-1) option.
1490
+ @default `false` with `subprocess.iterable()`, `true` otherwise
483
1491
  */
484
- isCanceled: boolean;
485
- } & ExecaSyncReturnValue<StdoutStderrType>;
1492
+ readonly preserveNewlines?: boolean;
1493
+ };
486
1494
 
487
- type ExecaSyncError<StdoutStderrType extends StdoutStderrAll = string> = {
1495
+ // `subprocess.writable|duplex()` options
1496
+ type WritableOptions = {
488
1497
  /**
489
- Error message when the child process failed to run. In addition to the underlying error message, it also contains some information related to why the child process errored.
1498
+ Which stream to write to the subprocess. A [file descriptor](https://en.wikipedia.org/wiki/File_descriptor) like `"fd3"` can also be passed.
490
1499
 
491
- The child process stderr then stdout are appended to the end, separated with newlines and not interleaved.
1500
+ @default 'stdin'
492
1501
  */
493
- message: string;
1502
+ readonly to?: ToOption;
1503
+ };
494
1504
 
1505
+ // `subprocess.duplex()` options
1506
+ type DuplexOptions = ReadableOptions & WritableOptions;
1507
+
1508
+ // `subprocess.iterable()` return value
1509
+ type SubprocessAsyncIterable<
1510
+ BinaryOption extends boolean | undefined,
1511
+ EncodingOption extends Options['encoding'],
1512
+ > = AsyncIterableIterator<
1513
+ EncodingOption extends BinaryEncodingOption
1514
+ ? Uint8Array
1515
+ : BinaryOption extends true
1516
+ ? Uint8Array
1517
+ : string
1518
+ >;
1519
+
1520
+ // `subprocess.stdin|stdout|stderr|stdio`
1521
+ type SubprocessStdioStream<
1522
+ FdNumber extends string,
1523
+ OptionsType extends Options,
1524
+ > = SubprocessStream<FdNumber, IgnoresSubprocessOutput<FdNumber, OptionsType>, OptionsType>;
1525
+
1526
+ type SubprocessStream<
1527
+ FdNumber extends string,
1528
+ StreamResultIgnored,
1529
+ OptionsType extends Options,
1530
+ > = StreamResultIgnored extends true
1531
+ ? null
1532
+ : InputOutputStream<IsInputFd<FdNumber, OptionsType>>;
1533
+
1534
+ type InputOutputStream<IsInput extends boolean> = IsInput extends true
1535
+ ? Writable
1536
+ : Readable;
1537
+
1538
+ // `subprocess.stdio`
1539
+ type SubprocessStdioArray<OptionsType extends Options> = MapStdioStreams<StdioOptionNormalizedArray<OptionsType>, OptionsType>;
1540
+
1541
+ // We cannot use mapped types because it must be compatible with Node.js `ChildProcess["stdio"]` which uses a tuple with exactly 5 items
1542
+ type MapStdioStreams<
1543
+ StdioOptionsArrayType,
1544
+ OptionsType extends Options,
1545
+ > = [
1546
+ SubprocessStdioStream<'0', OptionsType>,
1547
+ SubprocessStdioStream<'1', OptionsType>,
1548
+ SubprocessStdioStream<'2', OptionsType>,
1549
+ '3' extends keyof StdioOptionsArrayType ? SubprocessStdioStream<'3', OptionsType> : never,
1550
+ '4' extends keyof StdioOptionsArrayType ? SubprocessStdioStream<'4', OptionsType> : never,
1551
+ ];
1552
+
1553
+ // `subprocess.all`
1554
+ type SubprocessAll<OptionsType extends Options> = AllStream<AllIgnored<OptionsType['all'], OptionsType>>;
1555
+
1556
+ type AllStream<IsIgnored> = IsIgnored extends true ? undefined : Readable;
1557
+
1558
+ type AllIgnored<
1559
+ AllOption,
1560
+ OptionsType extends Options,
1561
+ > = AllOption extends true
1562
+ ? IgnoresSubprocessOutput<'1', OptionsType> extends true
1563
+ ? IgnoresSubprocessOutput<'2', OptionsType>
1564
+ : false
1565
+ : true;
1566
+
1567
+ type ExecaCustomSubprocess<OptionsType extends Options> = {
495
1568
  /**
496
- This is the same as the `message` property except it does not include the child process stdout/stderr.
1569
+ Process identifier ([PID](https://en.wikipedia.org/wiki/Process_identifier)).
1570
+
1571
+ This is `undefined` if the subprocess failed to spawn.
497
1572
  */
498
- shortMessage: string;
1573
+ pid?: number;
499
1574
 
500
1575
  /**
501
- Original error message. This is the same as the `message` property except it includes neither the child process stdout/stderr nor some additional information added by Execa.
1576
+ The subprocess [`stdin`](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)) as a stream.
502
1577
 
503
- This is `undefined` unless the child process exited due to an `error` event or a timeout.
1578
+ This is `null` if the `stdin` option is set to `'inherit'`, `'ignore'`, `Readable` or `integer`.
504
1579
  */
505
- originalMessage?: string;
506
- } & Error & ExecaReturnBase<StdoutStderrType>;
1580
+ stdin: SubprocessStdioStream<'0', OptionsType>;
507
1581
 
508
- type ExecaError<StdoutStderrType extends StdoutStderrAll = string> = {
509
1582
  /**
510
- The output of the process with `stdout` and `stderr` interleaved.
1583
+ The subprocess [`stdout`](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)) as a stream.
511
1584
 
512
- This is `undefined` if either:
513
- - the `all` option is `false` (default value)
514
- - `execaSync()` was used
1585
+ This is `null` if the `stdout` option is set to `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
515
1586
  */
516
- all?: StdoutStderrType;
1587
+ stdout: SubprocessStdioStream<'1', OptionsType>;
517
1588
 
518
1589
  /**
519
- Whether the process was canceled.
1590
+ The subprocess [`stderr`](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)) as a stream.
1591
+
1592
+ This is `null` if the `stderr` option is set to `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
520
1593
  */
521
- isCanceled: boolean;
522
- } & ExecaSyncError<StdoutStderrType>;
1594
+ stderr: SubprocessStdioStream<'2', OptionsType>;
523
1595
 
524
- type KillOptions = {
525
1596
  /**
526
- Milliseconds to wait for the child process to terminate before sending `SIGKILL`.
1597
+ Stream combining/interleaving `subprocess.stdout` and `subprocess.stderr`.
527
1598
 
528
- Can be disabled with `false`.
1599
+ This requires the `all` option to be `true`.
529
1600
 
530
- @default 5000
1601
+ This is `undefined` if `stdout` and `stderr` options are set to `'inherit'`, `'ignore'`, `Writable` or `integer`, or if the `buffer` option is `false`.
531
1602
  */
532
- forceKillAfterTimeout?: number | false;
533
- };
1603
+ all: SubprocessAll<OptionsType>;
534
1604
 
535
- type ExecaChildPromise<StdoutStderrType extends StdoutStderrAll> = {
536
1605
  /**
537
- Stream combining/interleaving [`stdout`](https://nodejs.org/api/child_process.html#child_process_subprocess_stdout) and [`stderr`](https://nodejs.org/api/child_process.html#child_process_subprocess_stderr).
1606
+ The subprocess `stdin`, `stdout`, `stderr` and other files descriptors as an array of streams.
538
1607
 
539
- This is `undefined` if either:
540
- - the `all` option is `false` (the default value)
541
- - both `stdout` and `stderr` options are set to [`'inherit'`, `'ipc'`, `Stream` or `integer`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio)
1608
+ Each array item is `null` if the corresponding `stdin`, `stdout`, `stderr` or `stdio` option is set to `'inherit'`, `'ignore'`, `Stream` or `integer`, or if the `buffer` option is `false`.
542
1609
  */
543
- all?: Readable;
544
-
545
- catch<ResultType = never>(
546
- onRejected?: (reason: ExecaError<StdoutStderrType>) => ResultType | PromiseLike<ResultType>
547
- ): Promise<ExecaReturnValue<StdoutStderrType> | ResultType>;
1610
+ stdio: SubprocessStdioArray<OptionsType>;
548
1611
 
549
1612
  /**
550
- Same as the original [`child_process#kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal), except if `signal` is `SIGTERM` (the default value) and the child process is not terminated after 5 seconds, force it by sending `SIGKILL`. Note that this graceful termination does not work on Windows, because Windows [doesn't support signals](https://nodejs.org/api/process.html#process_signal_events) (`SIGKILL` and `SIGTERM` has the same effect of force-killing the process immediately.) If you want to achieve graceful termination on Windows, you have to use other means, such as [`taskkill`](https://github.com/sindresorhus/taskkill).
1613
+ Sends a [signal](https://nodejs.org/api/os.html#signal-constants) to the subprocess. The default signal is the `killSignal` option. `killSignal` defaults to `SIGTERM`, which terminates the subprocess.
1614
+
1615
+ This returns `false` when the signal could not be sent, for example when the subprocess has already exited.
1616
+
1617
+ When an error is passed as argument, it is set to the subprocess' `error.cause`. The subprocess is then terminated with the default signal. This does not emit the [`error` event](https://nodejs.org/api/child_process.html#event-error).
1618
+
1619
+ [More info.](https://nodejs.org/api/child_process.html#subprocesskillsignal)
551
1620
  */
552
- kill(signal?: string, options?: KillOptions): void;
1621
+ kill(signal?: keyof SignalConstants | number, error?: Error): boolean;
1622
+ kill(error?: Error): boolean;
553
1623
 
554
1624
  /**
555
- Similar to [`childProcess.kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal). This used to be preferred when cancelling the child process execution as the error is more descriptive and [`childProcessResult.isCanceled`](#iscanceled) is set to `true`. But now this is deprecated and you should either use `.kill()` or the `signal` option when creating the child process.
1625
+ Subprocesses are [async iterables](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator). They iterate over each output line.
556
1626
  */
557
- cancel(): void;
1627
+ [Symbol.asyncIterator](): SubprocessAsyncIterable<undefined, OptionsType['encoding']>;
558
1628
 
559
1629
  /**
560
- [Pipe](https://nodejs.org/api/stream.html#readablepipedestination-options) the child process's `stdout` to `target`, which can be:
561
- - Another `execa()` return value
562
- - A writable stream
563
- - A file path string
564
-
565
- If the `target` is another `execa()` return value, it is returned. Otherwise, the original `execa()` return value is returned. This allows chaining `pipeStdout()` then `await`ing the final result.
566
-
567
- The `stdout` option] must be kept as `pipe`, its default value.
1630
+ Same as `subprocess[Symbol.asyncIterator]` except options can be provided.
568
1631
  */
569
- pipeStdout?<Target extends ExecaChildPromise<StdoutStderrAll>>(target: Target): Target;
570
- pipeStdout?(target: Writable | string): ExecaChildProcess<StdoutStderrType>;
1632
+ iterable<IterableOptions extends ReadableOptions = {}>(readableOptions?: IterableOptions): SubprocessAsyncIterable<IterableOptions['binary'], OptionsType['encoding']>;
571
1633
 
572
1634
  /**
573
- Like `pipeStdout()` but piping the child process's `stderr` instead.
574
-
575
- The `stderr` option must be kept as `pipe`, its default value.
1635
+ Converts the subprocess to a readable stream.
576
1636
  */
577
- pipeStderr?<Target extends ExecaChildPromise<StdoutStderrAll>>(target: Target): Target;
578
- pipeStderr?(target: Writable | string): ExecaChildProcess<StdoutStderrType>;
1637
+ readable(readableOptions?: ReadableOptions): Readable;
579
1638
 
580
1639
  /**
581
- Combines both `pipeStdout()` and `pipeStderr()`.
1640
+ Converts the subprocess to a writable stream.
1641
+ */
1642
+ writable(writableOptions?: WritableOptions): Writable;
582
1643
 
583
- Either the `stdout` option or the `stderr` option must be kept as `pipe`, their default value. Also, the `all` option must be set to `true`.
1644
+ /**
1645
+ Converts the subprocess to a duplex stream.
584
1646
  */
585
- pipeAll?<Target extends ExecaChildPromise<StdoutStderrAll>>(target: Target): Target;
586
- pipeAll?(target: Writable | string): ExecaChildProcess<StdoutStderrType>;
587
- };
1647
+ duplex(duplexOptions?: DuplexOptions): Duplex;
1648
+ }
1649
+ & IpcMethods<HasIpc<OptionsType>, OptionsType['serialization']>
1650
+ & PipableSubprocess;
588
1651
 
589
- type ExecaChildProcess<StdoutStderrType extends StdoutStderrAll = string> = ChildProcess &
590
- ExecaChildPromise<StdoutStderrType> &
591
- Promise<ExecaReturnValue<StdoutStderrType>>;
1652
+ /**
1653
+ [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess) with additional methods and properties.
1654
+ */
1655
+ type Subprocess<OptionsType extends Options = Options> =
1656
+ & Omit<ChildProcess, keyof ExecaCustomSubprocess<OptionsType>>
1657
+ & ExecaCustomSubprocess<OptionsType>;
1658
+
1659
+ /**
1660
+ The return value of all asynchronous methods is both:
1661
+ - the subprocess.
1662
+ - a `Promise` either resolving with its successful `result`, or rejecting with its `error`.
1663
+ */
1664
+ type ResultPromise<OptionsType extends Options = Options> =
1665
+ & Subprocess<OptionsType>
1666
+ & Promise<Result$1<OptionsType>>;
592
1667
 
593
- type ExecuteCommandOptions = CommonOptions<'utf8'> & {
1668
+ type ExecuteCommandOptions = Omit<Options, 'cancelSignal'> & {
594
1669
  command: string;
595
1670
  args?: string[];
596
1671
  cwd?: string;
597
1672
  ignoreError?: boolean;
598
- env?: Record<string, any>;
1673
+ env?: Record<string, string>;
1674
+ signal?: AbortSignal;
599
1675
  };
600
1676
 
601
1677
  type PackageJsonWithDepsAndDevDeps = PackageJson$1 & Required<Pick<PackageJson$1, 'dependencies' | 'devDependencies'>>;
@@ -619,6 +1695,10 @@ declare enum PackageManagerName {
619
1695
  PNPM = "pnpm",
620
1696
  BUN = "bun"
621
1697
  }
1698
+ declare const indentSymbol: unique symbol;
1699
+ type PackageJsonWithIndent = PackageJsonWithDepsAndDevDeps & {
1700
+ [indentSymbol]?: any;
1701
+ };
622
1702
  interface JsPackageManagerOptions {
623
1703
  cwd?: string;
624
1704
  configDir?: string;
@@ -648,7 +1728,7 @@ declare abstract class JsPackageManager {
648
1728
  /** Cache for installed version results to avoid repeated file system calls. */
649
1729
  static readonly installedVersionCache: Map<string, string | null>;
650
1730
  /** Cache for package.json files to avoid repeated file system calls. */
651
- static readonly packageJsonCache: Map<string, PackageJsonWithDepsAndDevDeps>;
1731
+ static readonly packageJsonCache: Map<string, PackageJsonWithIndent>;
652
1732
  constructor(options?: JsPackageManagerOptions);
653
1733
  /** Runs arbitrary package scripts (as a string for display). */
654
1734
  abstract getRunCommand(command: string): string;
@@ -664,7 +1744,7 @@ declare abstract class JsPackageManager {
664
1744
  force?: boolean;
665
1745
  }): Promise<void>;
666
1746
  /** Read the `package.json` file available in the provided directory */
667
- static getPackageJson(packageJsonPath: string): PackageJsonWithDepsAndDevDeps;
1747
+ static getPackageJson(packageJsonPath: string): PackageJsonWithIndent;
668
1748
  writePackageJson(packageJson: PackageJson$1, directory?: string): void;
669
1749
  getAllDependencies(): Record<string, string>;
670
1750
  isDependencyInstalled(dependency: string): boolean;
@@ -694,7 +1774,7 @@ declare abstract class JsPackageManager {
694
1774
  type: 'dependencies' | 'devDependencies';
695
1775
  writeOutputToFile?: boolean;
696
1776
  packageJsonInfo?: PackageJsonInfo;
697
- }, dependencies: string[]): Promise<void | ExecaChildProcess>;
1777
+ }, dependencies: string[]): Promise<void | ResultPromise>;
698
1778
  /**
699
1779
  * Removing dependencies from the package.json file, which is found first starting from the
700
1780
  * instance root. The method does not run a package manager install like `npm install`.
@@ -773,8 +1853,8 @@ declare abstract class JsPackageManager {
773
1853
  addPackageResolutions(versions: Record<string, string>): void;
774
1854
  protected abstract runInstall(options?: {
775
1855
  force?: boolean;
776
- }): ExecaChildProcess;
777
- protected abstract runAddDeps(dependencies: string[], installAsDevDependencies: boolean, writeOutputToFile?: boolean): ExecaChildProcess;
1856
+ }): ResultPromise;
1857
+ protected abstract runAddDeps(dependencies: string[], installAsDevDependencies: boolean, writeOutputToFile?: boolean): ResultPromise;
778
1858
  protected abstract getResolutions(packageJson: PackageJson$1, versions: Record<string, string>): Record<string, any>;
779
1859
  /**
780
1860
  * Get the latest or all versions of the input package available on npmjs.com
@@ -784,10 +1864,10 @@ declare abstract class JsPackageManager {
784
1864
  */
785
1865
  protected abstract runGetVersions<T extends boolean>(packageName: string, fetchAllVersions: T): Promise<T extends true ? string[] : string>;
786
1866
  abstract getRegistryURL(): Promise<string | undefined>;
787
- abstract runInternalCommand(command: string, args: string[], cwd?: string, stdio?: 'inherit' | 'pipe' | 'ignore'): ExecaChildProcess;
1867
+ abstract runInternalCommand(command: string, args: string[], cwd?: string, stdio?: 'inherit' | 'pipe' | 'ignore'): ResultPromise;
788
1868
  abstract runPackageCommand(options: Omit<ExecuteCommandOptions, 'command'> & {
789
1869
  args: string[];
790
- }): ExecaChildProcess;
1870
+ }): ResultPromise;
791
1871
  abstract findInstallations(pattern?: string[]): Promise<InstallationMetadata | undefined>;
792
1872
  abstract findInstallations(pattern?: string[], options?: {
793
1873
  depth: number;
@@ -1761,398 +2841,398 @@ declare const userSettingSchema: ZodObject<{
1761
2841
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1762
2842
  mutedAt: ZodOptional<ZodNumber>;
1763
2843
  }, "strict", ZodTypeAny, {
1764
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2844
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1765
2845
  mutedAt?: number | undefined;
1766
2846
  }, {
1767
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2847
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1768
2848
  mutedAt?: number | undefined;
1769
2849
  }>>;
1770
2850
  autodocs: ZodOptional<ZodObject<{
1771
2851
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1772
2852
  mutedAt: ZodOptional<ZodNumber>;
1773
2853
  }, "strict", ZodTypeAny, {
1774
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2854
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1775
2855
  mutedAt?: number | undefined;
1776
2856
  }, {
1777
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2857
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1778
2858
  mutedAt?: number | undefined;
1779
2859
  }>>;
1780
2860
  ciTests: ZodOptional<ZodObject<{
1781
2861
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1782
2862
  mutedAt: ZodOptional<ZodNumber>;
1783
2863
  }, "strict", ZodTypeAny, {
1784
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2864
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1785
2865
  mutedAt?: number | undefined;
1786
2866
  }, {
1787
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2867
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1788
2868
  mutedAt?: number | undefined;
1789
2869
  }>>;
1790
2870
  controls: ZodOptional<ZodObject<{
1791
2871
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1792
2872
  mutedAt: ZodOptional<ZodNumber>;
1793
2873
  }, "strict", ZodTypeAny, {
1794
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2874
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1795
2875
  mutedAt?: number | undefined;
1796
2876
  }, {
1797
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2877
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1798
2878
  mutedAt?: number | undefined;
1799
2879
  }>>;
1800
2880
  coverage: ZodOptional<ZodObject<{
1801
2881
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1802
2882
  mutedAt: ZodOptional<ZodNumber>;
1803
2883
  }, "strict", ZodTypeAny, {
1804
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2884
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1805
2885
  mutedAt?: number | undefined;
1806
2886
  }, {
1807
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2887
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1808
2888
  mutedAt?: number | undefined;
1809
2889
  }>>;
1810
2890
  guidedTour: ZodOptional<ZodObject<{
1811
2891
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1812
2892
  mutedAt: ZodOptional<ZodNumber>;
1813
2893
  }, "strict", ZodTypeAny, {
1814
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2894
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1815
2895
  mutedAt?: number | undefined;
1816
2896
  }, {
1817
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2897
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1818
2898
  mutedAt?: number | undefined;
1819
2899
  }>>;
1820
2900
  installA11y: ZodOptional<ZodObject<{
1821
2901
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1822
2902
  mutedAt: ZodOptional<ZodNumber>;
1823
2903
  }, "strict", ZodTypeAny, {
1824
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2904
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1825
2905
  mutedAt?: number | undefined;
1826
2906
  }, {
1827
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2907
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1828
2908
  mutedAt?: number | undefined;
1829
2909
  }>>;
1830
2910
  installChromatic: ZodOptional<ZodObject<{
1831
2911
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1832
2912
  mutedAt: ZodOptional<ZodNumber>;
1833
2913
  }, "strict", ZodTypeAny, {
1834
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2914
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1835
2915
  mutedAt?: number | undefined;
1836
2916
  }, {
1837
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2917
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1838
2918
  mutedAt?: number | undefined;
1839
2919
  }>>;
1840
2920
  installDocs: ZodOptional<ZodObject<{
1841
2921
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1842
2922
  mutedAt: ZodOptional<ZodNumber>;
1843
2923
  }, "strict", ZodTypeAny, {
1844
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2924
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1845
2925
  mutedAt?: number | undefined;
1846
2926
  }, {
1847
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2927
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1848
2928
  mutedAt?: number | undefined;
1849
2929
  }>>;
1850
2930
  installVitest: ZodOptional<ZodObject<{
1851
2931
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1852
2932
  mutedAt: ZodOptional<ZodNumber>;
1853
2933
  }, "strict", ZodTypeAny, {
1854
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2934
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1855
2935
  mutedAt?: number | undefined;
1856
2936
  }, {
1857
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2937
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1858
2938
  mutedAt?: number | undefined;
1859
2939
  }>>;
1860
2940
  mdxDocs: ZodOptional<ZodObject<{
1861
2941
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1862
2942
  mutedAt: ZodOptional<ZodNumber>;
1863
2943
  }, "strict", ZodTypeAny, {
1864
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2944
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1865
2945
  mutedAt?: number | undefined;
1866
2946
  }, {
1867
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2947
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1868
2948
  mutedAt?: number | undefined;
1869
2949
  }>>;
1870
2950
  moreComponents: ZodOptional<ZodObject<{
1871
2951
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1872
2952
  mutedAt: ZodOptional<ZodNumber>;
1873
2953
  }, "strict", ZodTypeAny, {
1874
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2954
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1875
2955
  mutedAt?: number | undefined;
1876
2956
  }, {
1877
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2957
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1878
2958
  mutedAt?: number | undefined;
1879
2959
  }>>;
1880
2960
  moreStories: ZodOptional<ZodObject<{
1881
2961
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1882
2962
  mutedAt: ZodOptional<ZodNumber>;
1883
2963
  }, "strict", ZodTypeAny, {
1884
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2964
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1885
2965
  mutedAt?: number | undefined;
1886
2966
  }, {
1887
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2967
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1888
2968
  mutedAt?: number | undefined;
1889
2969
  }>>;
1890
2970
  onboardingSurvey: ZodOptional<ZodObject<{
1891
2971
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1892
2972
  mutedAt: ZodOptional<ZodNumber>;
1893
2973
  }, "strict", ZodTypeAny, {
1894
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2974
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1895
2975
  mutedAt?: number | undefined;
1896
2976
  }, {
1897
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2977
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1898
2978
  mutedAt?: number | undefined;
1899
2979
  }>>;
1900
2980
  organizeStories: ZodOptional<ZodObject<{
1901
2981
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1902
2982
  mutedAt: ZodOptional<ZodNumber>;
1903
2983
  }, "strict", ZodTypeAny, {
1904
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2984
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1905
2985
  mutedAt?: number | undefined;
1906
2986
  }, {
1907
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2987
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1908
2988
  mutedAt?: number | undefined;
1909
2989
  }>>;
1910
2990
  publishStorybook: ZodOptional<ZodObject<{
1911
2991
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1912
2992
  mutedAt: ZodOptional<ZodNumber>;
1913
2993
  }, "strict", ZodTypeAny, {
1914
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2994
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1915
2995
  mutedAt?: number | undefined;
1916
2996
  }, {
1917
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
2997
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1918
2998
  mutedAt?: number | undefined;
1919
2999
  }>>;
1920
3000
  renderComponent: ZodOptional<ZodObject<{
1921
3001
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1922
3002
  mutedAt: ZodOptional<ZodNumber>;
1923
3003
  }, "strict", ZodTypeAny, {
1924
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3004
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1925
3005
  mutedAt?: number | undefined;
1926
3006
  }, {
1927
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3007
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1928
3008
  mutedAt?: number | undefined;
1929
3009
  }>>;
1930
3010
  runTests: ZodOptional<ZodObject<{
1931
3011
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1932
3012
  mutedAt: ZodOptional<ZodNumber>;
1933
3013
  }, "strict", ZodTypeAny, {
1934
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3014
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1935
3015
  mutedAt?: number | undefined;
1936
3016
  }, {
1937
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3017
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1938
3018
  mutedAt?: number | undefined;
1939
3019
  }>>;
1940
3020
  viewports: ZodOptional<ZodObject<{
1941
3021
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1942
3022
  mutedAt: ZodOptional<ZodNumber>;
1943
3023
  }, "strict", ZodTypeAny, {
1944
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3024
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1945
3025
  mutedAt?: number | undefined;
1946
3026
  }, {
1947
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3027
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1948
3028
  mutedAt?: number | undefined;
1949
3029
  }>>;
1950
3030
  visualTests: ZodOptional<ZodObject<{
1951
3031
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1952
3032
  mutedAt: ZodOptional<ZodNumber>;
1953
3033
  }, "strict", ZodTypeAny, {
1954
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3034
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1955
3035
  mutedAt?: number | undefined;
1956
3036
  }, {
1957
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3037
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1958
3038
  mutedAt?: number | undefined;
1959
3039
  }>>;
1960
3040
  whatsNewStorybook10: ZodOptional<ZodObject<{
1961
3041
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1962
3042
  mutedAt: ZodOptional<ZodNumber>;
1963
3043
  }, "strict", ZodTypeAny, {
1964
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3044
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1965
3045
  mutedAt?: number | undefined;
1966
3046
  }, {
1967
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3047
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1968
3048
  mutedAt?: number | undefined;
1969
3049
  }>>;
1970
3050
  writeInteractions: ZodOptional<ZodObject<{
1971
3051
  status: ZodOptional<ZodEnum<["open", "accepted", "done", "skipped"]>>;
1972
3052
  mutedAt: ZodOptional<ZodNumber>;
1973
3053
  }, "strict", ZodTypeAny, {
1974
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3054
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1975
3055
  mutedAt?: number | undefined;
1976
3056
  }, {
1977
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3057
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1978
3058
  mutedAt?: number | undefined;
1979
3059
  }>>;
1980
3060
  }, "strip", ZodTypeAny, {
1981
3061
  controls?: {
1982
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3062
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1983
3063
  mutedAt?: number | undefined;
1984
3064
  } | undefined;
1985
3065
  autodocs?: {
1986
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3066
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1987
3067
  mutedAt?: number | undefined;
1988
3068
  } | undefined;
1989
3069
  accessibilityTests?: {
1990
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3070
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1991
3071
  mutedAt?: number | undefined;
1992
3072
  } | undefined;
1993
3073
  ciTests?: {
1994
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3074
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1995
3075
  mutedAt?: number | undefined;
1996
3076
  } | undefined;
1997
3077
  coverage?: {
1998
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3078
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
1999
3079
  mutedAt?: number | undefined;
2000
3080
  } | undefined;
2001
3081
  guidedTour?: {
2002
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3082
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2003
3083
  mutedAt?: number | undefined;
2004
3084
  } | undefined;
2005
3085
  installA11y?: {
2006
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3086
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2007
3087
  mutedAt?: number | undefined;
2008
3088
  } | undefined;
2009
3089
  installChromatic?: {
2010
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3090
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2011
3091
  mutedAt?: number | undefined;
2012
3092
  } | undefined;
2013
3093
  installDocs?: {
2014
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3094
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2015
3095
  mutedAt?: number | undefined;
2016
3096
  } | undefined;
2017
3097
  installVitest?: {
2018
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3098
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2019
3099
  mutedAt?: number | undefined;
2020
3100
  } | undefined;
2021
3101
  mdxDocs?: {
2022
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3102
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2023
3103
  mutedAt?: number | undefined;
2024
3104
  } | undefined;
2025
3105
  moreComponents?: {
2026
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3106
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2027
3107
  mutedAt?: number | undefined;
2028
3108
  } | undefined;
2029
3109
  moreStories?: {
2030
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3110
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2031
3111
  mutedAt?: number | undefined;
2032
3112
  } | undefined;
2033
3113
  onboardingSurvey?: {
2034
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3114
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2035
3115
  mutedAt?: number | undefined;
2036
3116
  } | undefined;
2037
3117
  organizeStories?: {
2038
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3118
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2039
3119
  mutedAt?: number | undefined;
2040
3120
  } | undefined;
2041
3121
  publishStorybook?: {
2042
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3122
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2043
3123
  mutedAt?: number | undefined;
2044
3124
  } | undefined;
2045
3125
  renderComponent?: {
2046
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3126
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2047
3127
  mutedAt?: number | undefined;
2048
3128
  } | undefined;
2049
3129
  runTests?: {
2050
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3130
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2051
3131
  mutedAt?: number | undefined;
2052
3132
  } | undefined;
2053
3133
  viewports?: {
2054
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3134
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2055
3135
  mutedAt?: number | undefined;
2056
3136
  } | undefined;
2057
3137
  visualTests?: {
2058
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3138
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2059
3139
  mutedAt?: number | undefined;
2060
3140
  } | undefined;
2061
3141
  whatsNewStorybook10?: {
2062
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3142
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2063
3143
  mutedAt?: number | undefined;
2064
3144
  } | undefined;
2065
3145
  writeInteractions?: {
2066
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3146
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2067
3147
  mutedAt?: number | undefined;
2068
3148
  } | undefined;
2069
3149
  }, {
2070
3150
  controls?: {
2071
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3151
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2072
3152
  mutedAt?: number | undefined;
2073
3153
  } | undefined;
2074
3154
  autodocs?: {
2075
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3155
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2076
3156
  mutedAt?: number | undefined;
2077
3157
  } | undefined;
2078
3158
  accessibilityTests?: {
2079
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3159
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2080
3160
  mutedAt?: number | undefined;
2081
3161
  } | undefined;
2082
3162
  ciTests?: {
2083
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3163
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2084
3164
  mutedAt?: number | undefined;
2085
3165
  } | undefined;
2086
3166
  coverage?: {
2087
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3167
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2088
3168
  mutedAt?: number | undefined;
2089
3169
  } | undefined;
2090
3170
  guidedTour?: {
2091
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3171
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2092
3172
  mutedAt?: number | undefined;
2093
3173
  } | undefined;
2094
3174
  installA11y?: {
2095
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3175
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2096
3176
  mutedAt?: number | undefined;
2097
3177
  } | undefined;
2098
3178
  installChromatic?: {
2099
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3179
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2100
3180
  mutedAt?: number | undefined;
2101
3181
  } | undefined;
2102
3182
  installDocs?: {
2103
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3183
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2104
3184
  mutedAt?: number | undefined;
2105
3185
  } | undefined;
2106
3186
  installVitest?: {
2107
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3187
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2108
3188
  mutedAt?: number | undefined;
2109
3189
  } | undefined;
2110
3190
  mdxDocs?: {
2111
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3191
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2112
3192
  mutedAt?: number | undefined;
2113
3193
  } | undefined;
2114
3194
  moreComponents?: {
2115
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3195
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2116
3196
  mutedAt?: number | undefined;
2117
3197
  } | undefined;
2118
3198
  moreStories?: {
2119
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3199
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2120
3200
  mutedAt?: number | undefined;
2121
3201
  } | undefined;
2122
3202
  onboardingSurvey?: {
2123
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3203
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2124
3204
  mutedAt?: number | undefined;
2125
3205
  } | undefined;
2126
3206
  organizeStories?: {
2127
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3207
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2128
3208
  mutedAt?: number | undefined;
2129
3209
  } | undefined;
2130
3210
  publishStorybook?: {
2131
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3211
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2132
3212
  mutedAt?: number | undefined;
2133
3213
  } | undefined;
2134
3214
  renderComponent?: {
2135
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3215
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2136
3216
  mutedAt?: number | undefined;
2137
3217
  } | undefined;
2138
3218
  runTests?: {
2139
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3219
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2140
3220
  mutedAt?: number | undefined;
2141
3221
  } | undefined;
2142
3222
  viewports?: {
2143
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3223
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2144
3224
  mutedAt?: number | undefined;
2145
3225
  } | undefined;
2146
3226
  visualTests?: {
2147
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3227
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2148
3228
  mutedAt?: number | undefined;
2149
3229
  } | undefined;
2150
3230
  whatsNewStorybook10?: {
2151
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3231
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2152
3232
  mutedAt?: number | undefined;
2153
3233
  } | undefined;
2154
3234
  writeInteractions?: {
2155
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3235
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2156
3236
  mutedAt?: number | undefined;
2157
3237
  } | undefined;
2158
3238
  }>>;
@@ -2166,91 +3246,91 @@ declare const userSettingSchema: ZodObject<{
2166
3246
  }, "strip", ZodTypeAny, {
2167
3247
  items?: {
2168
3248
  controls?: {
2169
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3249
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2170
3250
  mutedAt?: number | undefined;
2171
3251
  } | undefined;
2172
3252
  autodocs?: {
2173
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3253
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2174
3254
  mutedAt?: number | undefined;
2175
3255
  } | undefined;
2176
3256
  accessibilityTests?: {
2177
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3257
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2178
3258
  mutedAt?: number | undefined;
2179
3259
  } | undefined;
2180
3260
  ciTests?: {
2181
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3261
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2182
3262
  mutedAt?: number | undefined;
2183
3263
  } | undefined;
2184
3264
  coverage?: {
2185
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3265
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2186
3266
  mutedAt?: number | undefined;
2187
3267
  } | undefined;
2188
3268
  guidedTour?: {
2189
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3269
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2190
3270
  mutedAt?: number | undefined;
2191
3271
  } | undefined;
2192
3272
  installA11y?: {
2193
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3273
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2194
3274
  mutedAt?: number | undefined;
2195
3275
  } | undefined;
2196
3276
  installChromatic?: {
2197
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3277
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2198
3278
  mutedAt?: number | undefined;
2199
3279
  } | undefined;
2200
3280
  installDocs?: {
2201
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3281
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2202
3282
  mutedAt?: number | undefined;
2203
3283
  } | undefined;
2204
3284
  installVitest?: {
2205
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3285
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2206
3286
  mutedAt?: number | undefined;
2207
3287
  } | undefined;
2208
3288
  mdxDocs?: {
2209
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3289
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2210
3290
  mutedAt?: number | undefined;
2211
3291
  } | undefined;
2212
3292
  moreComponents?: {
2213
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3293
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2214
3294
  mutedAt?: number | undefined;
2215
3295
  } | undefined;
2216
3296
  moreStories?: {
2217
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3297
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2218
3298
  mutedAt?: number | undefined;
2219
3299
  } | undefined;
2220
3300
  onboardingSurvey?: {
2221
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3301
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2222
3302
  mutedAt?: number | undefined;
2223
3303
  } | undefined;
2224
3304
  organizeStories?: {
2225
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3305
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2226
3306
  mutedAt?: number | undefined;
2227
3307
  } | undefined;
2228
3308
  publishStorybook?: {
2229
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3309
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2230
3310
  mutedAt?: number | undefined;
2231
3311
  } | undefined;
2232
3312
  renderComponent?: {
2233
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3313
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2234
3314
  mutedAt?: number | undefined;
2235
3315
  } | undefined;
2236
3316
  runTests?: {
2237
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3317
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2238
3318
  mutedAt?: number | undefined;
2239
3319
  } | undefined;
2240
3320
  viewports?: {
2241
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3321
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2242
3322
  mutedAt?: number | undefined;
2243
3323
  } | undefined;
2244
3324
  visualTests?: {
2245
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3325
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2246
3326
  mutedAt?: number | undefined;
2247
3327
  } | undefined;
2248
3328
  whatsNewStorybook10?: {
2249
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3329
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2250
3330
  mutedAt?: number | undefined;
2251
3331
  } | undefined;
2252
3332
  writeInteractions?: {
2253
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3333
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2254
3334
  mutedAt?: number | undefined;
2255
3335
  } | undefined;
2256
3336
  } | undefined;
@@ -2260,91 +3340,91 @@ declare const userSettingSchema: ZodObject<{
2260
3340
  }, {
2261
3341
  items?: {
2262
3342
  controls?: {
2263
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3343
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2264
3344
  mutedAt?: number | undefined;
2265
3345
  } | undefined;
2266
3346
  autodocs?: {
2267
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3347
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2268
3348
  mutedAt?: number | undefined;
2269
3349
  } | undefined;
2270
3350
  accessibilityTests?: {
2271
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3351
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2272
3352
  mutedAt?: number | undefined;
2273
3353
  } | undefined;
2274
3354
  ciTests?: {
2275
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3355
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2276
3356
  mutedAt?: number | undefined;
2277
3357
  } | undefined;
2278
3358
  coverage?: {
2279
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3359
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2280
3360
  mutedAt?: number | undefined;
2281
3361
  } | undefined;
2282
3362
  guidedTour?: {
2283
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3363
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2284
3364
  mutedAt?: number | undefined;
2285
3365
  } | undefined;
2286
3366
  installA11y?: {
2287
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3367
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2288
3368
  mutedAt?: number | undefined;
2289
3369
  } | undefined;
2290
3370
  installChromatic?: {
2291
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3371
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2292
3372
  mutedAt?: number | undefined;
2293
3373
  } | undefined;
2294
3374
  installDocs?: {
2295
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3375
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2296
3376
  mutedAt?: number | undefined;
2297
3377
  } | undefined;
2298
3378
  installVitest?: {
2299
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3379
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2300
3380
  mutedAt?: number | undefined;
2301
3381
  } | undefined;
2302
3382
  mdxDocs?: {
2303
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3383
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2304
3384
  mutedAt?: number | undefined;
2305
3385
  } | undefined;
2306
3386
  moreComponents?: {
2307
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3387
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2308
3388
  mutedAt?: number | undefined;
2309
3389
  } | undefined;
2310
3390
  moreStories?: {
2311
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3391
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2312
3392
  mutedAt?: number | undefined;
2313
3393
  } | undefined;
2314
3394
  onboardingSurvey?: {
2315
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3395
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2316
3396
  mutedAt?: number | undefined;
2317
3397
  } | undefined;
2318
3398
  organizeStories?: {
2319
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3399
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2320
3400
  mutedAt?: number | undefined;
2321
3401
  } | undefined;
2322
3402
  publishStorybook?: {
2323
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3403
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2324
3404
  mutedAt?: number | undefined;
2325
3405
  } | undefined;
2326
3406
  renderComponent?: {
2327
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3407
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2328
3408
  mutedAt?: number | undefined;
2329
3409
  } | undefined;
2330
3410
  runTests?: {
2331
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3411
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2332
3412
  mutedAt?: number | undefined;
2333
3413
  } | undefined;
2334
3414
  viewports?: {
2335
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3415
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2336
3416
  mutedAt?: number | undefined;
2337
3417
  } | undefined;
2338
3418
  visualTests?: {
2339
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3419
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2340
3420
  mutedAt?: number | undefined;
2341
3421
  } | undefined;
2342
3422
  whatsNewStorybook10?: {
2343
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3423
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2344
3424
  mutedAt?: number | undefined;
2345
3425
  } | undefined;
2346
3426
  writeInteractions?: {
2347
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3427
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2348
3428
  mutedAt?: number | undefined;
2349
3429
  } | undefined;
2350
3430
  } | undefined;
@@ -2361,91 +3441,91 @@ declare const userSettingSchema: ZodObject<{
2361
3441
  checklist?: {
2362
3442
  items?: {
2363
3443
  controls?: {
2364
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3444
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2365
3445
  mutedAt?: number | undefined;
2366
3446
  } | undefined;
2367
3447
  autodocs?: {
2368
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3448
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2369
3449
  mutedAt?: number | undefined;
2370
3450
  } | undefined;
2371
3451
  accessibilityTests?: {
2372
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3452
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2373
3453
  mutedAt?: number | undefined;
2374
3454
  } | undefined;
2375
3455
  ciTests?: {
2376
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3456
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2377
3457
  mutedAt?: number | undefined;
2378
3458
  } | undefined;
2379
3459
  coverage?: {
2380
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3460
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2381
3461
  mutedAt?: number | undefined;
2382
3462
  } | undefined;
2383
3463
  guidedTour?: {
2384
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3464
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2385
3465
  mutedAt?: number | undefined;
2386
3466
  } | undefined;
2387
3467
  installA11y?: {
2388
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3468
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2389
3469
  mutedAt?: number | undefined;
2390
3470
  } | undefined;
2391
3471
  installChromatic?: {
2392
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3472
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2393
3473
  mutedAt?: number | undefined;
2394
3474
  } | undefined;
2395
3475
  installDocs?: {
2396
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3476
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2397
3477
  mutedAt?: number | undefined;
2398
3478
  } | undefined;
2399
3479
  installVitest?: {
2400
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3480
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2401
3481
  mutedAt?: number | undefined;
2402
3482
  } | undefined;
2403
3483
  mdxDocs?: {
2404
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3484
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2405
3485
  mutedAt?: number | undefined;
2406
3486
  } | undefined;
2407
3487
  moreComponents?: {
2408
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3488
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2409
3489
  mutedAt?: number | undefined;
2410
3490
  } | undefined;
2411
3491
  moreStories?: {
2412
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3492
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2413
3493
  mutedAt?: number | undefined;
2414
3494
  } | undefined;
2415
3495
  onboardingSurvey?: {
2416
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3496
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2417
3497
  mutedAt?: number | undefined;
2418
3498
  } | undefined;
2419
3499
  organizeStories?: {
2420
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3500
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2421
3501
  mutedAt?: number | undefined;
2422
3502
  } | undefined;
2423
3503
  publishStorybook?: {
2424
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3504
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2425
3505
  mutedAt?: number | undefined;
2426
3506
  } | undefined;
2427
3507
  renderComponent?: {
2428
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3508
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2429
3509
  mutedAt?: number | undefined;
2430
3510
  } | undefined;
2431
3511
  runTests?: {
2432
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3512
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2433
3513
  mutedAt?: number | undefined;
2434
3514
  } | undefined;
2435
3515
  viewports?: {
2436
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3516
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2437
3517
  mutedAt?: number | undefined;
2438
3518
  } | undefined;
2439
3519
  visualTests?: {
2440
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3520
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2441
3521
  mutedAt?: number | undefined;
2442
3522
  } | undefined;
2443
3523
  whatsNewStorybook10?: {
2444
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3524
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2445
3525
  mutedAt?: number | undefined;
2446
3526
  } | undefined;
2447
3527
  writeInteractions?: {
2448
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3528
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2449
3529
  mutedAt?: number | undefined;
2450
3530
  } | undefined;
2451
3531
  } | undefined;
@@ -2462,91 +3542,91 @@ declare const userSettingSchema: ZodObject<{
2462
3542
  checklist?: {
2463
3543
  items?: {
2464
3544
  controls?: {
2465
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3545
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2466
3546
  mutedAt?: number | undefined;
2467
3547
  } | undefined;
2468
3548
  autodocs?: {
2469
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3549
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2470
3550
  mutedAt?: number | undefined;
2471
3551
  } | undefined;
2472
3552
  accessibilityTests?: {
2473
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3553
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2474
3554
  mutedAt?: number | undefined;
2475
3555
  } | undefined;
2476
3556
  ciTests?: {
2477
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3557
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2478
3558
  mutedAt?: number | undefined;
2479
3559
  } | undefined;
2480
3560
  coverage?: {
2481
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3561
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2482
3562
  mutedAt?: number | undefined;
2483
3563
  } | undefined;
2484
3564
  guidedTour?: {
2485
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3565
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2486
3566
  mutedAt?: number | undefined;
2487
3567
  } | undefined;
2488
3568
  installA11y?: {
2489
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3569
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2490
3570
  mutedAt?: number | undefined;
2491
3571
  } | undefined;
2492
3572
  installChromatic?: {
2493
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3573
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2494
3574
  mutedAt?: number | undefined;
2495
3575
  } | undefined;
2496
3576
  installDocs?: {
2497
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3577
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2498
3578
  mutedAt?: number | undefined;
2499
3579
  } | undefined;
2500
3580
  installVitest?: {
2501
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3581
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2502
3582
  mutedAt?: number | undefined;
2503
3583
  } | undefined;
2504
3584
  mdxDocs?: {
2505
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3585
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2506
3586
  mutedAt?: number | undefined;
2507
3587
  } | undefined;
2508
3588
  moreComponents?: {
2509
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3589
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2510
3590
  mutedAt?: number | undefined;
2511
3591
  } | undefined;
2512
3592
  moreStories?: {
2513
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3593
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2514
3594
  mutedAt?: number | undefined;
2515
3595
  } | undefined;
2516
3596
  onboardingSurvey?: {
2517
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3597
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2518
3598
  mutedAt?: number | undefined;
2519
3599
  } | undefined;
2520
3600
  organizeStories?: {
2521
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3601
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2522
3602
  mutedAt?: number | undefined;
2523
3603
  } | undefined;
2524
3604
  publishStorybook?: {
2525
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3605
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2526
3606
  mutedAt?: number | undefined;
2527
3607
  } | undefined;
2528
3608
  renderComponent?: {
2529
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3609
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2530
3610
  mutedAt?: number | undefined;
2531
3611
  } | undefined;
2532
3612
  runTests?: {
2533
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3613
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2534
3614
  mutedAt?: number | undefined;
2535
3615
  } | undefined;
2536
3616
  viewports?: {
2537
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3617
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2538
3618
  mutedAt?: number | undefined;
2539
3619
  } | undefined;
2540
3620
  visualTests?: {
2541
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3621
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2542
3622
  mutedAt?: number | undefined;
2543
3623
  } | undefined;
2544
3624
  whatsNewStorybook10?: {
2545
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3625
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2546
3626
  mutedAt?: number | undefined;
2547
3627
  } | undefined;
2548
3628
  writeInteractions?: {
2549
- status?: "open" | "done" | "accepted" | "skipped" | undefined;
3629
+ status?: "done" | "open" | "accepted" | "skipped" | undefined;
2550
3630
  mutedAt?: number | undefined;
2551
3631
  } | undefined;
2552
3632
  } | undefined;