webpack-dev-server 4.6.0 → 4.7.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.
@@ -0,0 +1,3388 @@
1
+ /// <reference types="node" />
2
+ export = Server;
3
+ declare class Server {
4
+ static get cli(): {
5
+ readonly getArguments: () => {
6
+ "allowed-hosts": {
7
+ configs: (
8
+ | {
9
+ type: string;
10
+ multiple: boolean;
11
+ description: string;
12
+ path: string;
13
+ }
14
+ | {
15
+ description: string;
16
+ multiple: boolean;
17
+ path: string;
18
+ type: string;
19
+ values: string[];
20
+ }
21
+ )[];
22
+ description: string;
23
+ /** @typedef {import("os").NetworkInterfaceInfo} NetworkInterfaceInfo */
24
+ /** @typedef {import("express").Request} Request */
25
+ /** @typedef {import("express").Response} Response */
26
+ /** @typedef {import("express").NextFunction} NextFunction */
27
+ /** @typedef {import("express").RequestHandler} ExpressRequestHandler */
28
+ /** @typedef {import("express").ErrorRequestHandler} ExpressErrorRequestHandler */
29
+ /** @typedef {import("chokidar").WatchOptions} WatchOptions */
30
+ /** @typedef {import("chokidar").FSWatcher} FSWatcher */
31
+ /** @typedef {import("connect-history-api-fallback").Options} ConnectHistoryApiFallbackOptions */
32
+ /** @typedef {import("bonjour").Bonjour} Bonjour */
33
+ /** @typedef {import("bonjour").BonjourOptions} BonjourOptions */
34
+ /** @typedef {import("http-proxy-middleware").RequestHandler} RequestHandler */
35
+ /** @typedef {import("http-proxy-middleware").Options} HttpProxyMiddlewareOptions */
36
+ /** @typedef {import("http-proxy-middleware").Filter} HttpProxyMiddlewareOptionsFilter */
37
+ /** @typedef {import("serve-index").Options} ServeIndexOptions */
38
+ /** @typedef {import("serve-static").ServeStaticOptions} ServeStaticOptions */
39
+ /** @typedef {import("ipaddr.js").IPv4} IPv4 */
40
+ /** @typedef {import("ipaddr.js").IPv6} IPv6 */
41
+ /** @typedef {import("net").Socket} Socket */
42
+ /** @typedef {import("http").IncomingMessage} IncomingMessage */
43
+ /** @typedef {import("open").Options} OpenOptions */
44
+ /** @typedef {import("https").ServerOptions & { spdy?: { plain?: boolean | undefined, ssl?: boolean | undefined, 'x-forwarded-for'?: string | undefined, protocol?: string | undefined, protocols?: string[] | undefined }}} ServerOptions */
45
+ /**
46
+ * @template Request, Response
47
+ * @typedef {import("webpack-dev-middleware").Options<Request, Response>} DevMiddlewareOptions
48
+ */
49
+ /**
50
+ * @template Request, Response
51
+ * @typedef {import("webpack-dev-middleware").Context<Request, Response>} DevMiddlewareContext
52
+ */
53
+ /**
54
+ * @typedef {"local-ip" | "local-ipv4" | "local-ipv6" | string} Host
55
+ */
56
+ /**
57
+ * @typedef {number | string | "auto"} Port
58
+ */
59
+ /**
60
+ * @typedef {Object} WatchFiles
61
+ * @property {string | string[]} paths
62
+ * @property {WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [options]
63
+ */
64
+ /**
65
+ * @typedef {Object} Static
66
+ * @property {string} [directory]
67
+ * @property {string | string[]} [publicPath]
68
+ * @property {boolean | ServeIndexOptions} [serveIndex]
69
+ * @property {ServeStaticOptions} [staticOptions]
70
+ * @property {boolean | WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [watch]
71
+ */
72
+ /**
73
+ * @typedef {Object} NormalizedStatic
74
+ * @property {string} directory
75
+ * @property {string[]} publicPath
76
+ * @property {false | ServeIndexOptions} serveIndex
77
+ * @property {ServeStaticOptions} staticOptions
78
+ * @property {false | WatchOptions} watch
79
+ */
80
+ /**
81
+ * @typedef {Object} ServerConfiguration
82
+ * @property {"http" | "https" | "spdy" | string} [type]
83
+ * @property {ServerOptions} [options]
84
+ */
85
+ /**
86
+ * @typedef {Object} WebSocketServerConfiguration
87
+ * @property {"sockjs" | "ws" | string | Function} [type]
88
+ * @property {Record<string, any>} [options]
89
+ */
90
+ /**
91
+ * @typedef {(import("ws").WebSocket | import("sockjs").Connection & { send: import("ws").WebSocket["send"], terminate: import("ws").WebSocket["terminate"], ping: import("ws").WebSocket["ping"] }) & { isAlive?: boolean }} ClientConnection
92
+ */
93
+ /**
94
+ * @typedef {import("ws").WebSocketServer | import("sockjs").Server & { close: import("ws").WebSocketServer["close"] }} WebSocketServer
95
+ */
96
+ /**
97
+ * @typedef {{ implementation: WebSocketServer, clients: ClientConnection[] }} WebSocketServerImplementation
98
+ */
99
+ /**
100
+ * @typedef {{ [url: string]: string | HttpProxyMiddlewareOptions }} ProxyConfigMap
101
+ */
102
+ /**
103
+ * @typedef {HttpProxyMiddlewareOptions[]} ProxyArray
104
+ */
105
+ /**
106
+ * @callback ByPass
107
+ * @param {Request} req
108
+ * @param {Response} res
109
+ * @param {ProxyConfigArray} proxyConfig
110
+ */
111
+ /**
112
+ * @typedef {{ path?: string | string[] | undefined, context?: string | string[] | HttpProxyMiddlewareOptionsFilter | undefined } & HttpProxyMiddlewareOptions & ByPass} ProxyConfigArray
113
+ */
114
+ /**
115
+ * @typedef {Object} OpenApp
116
+ * @property {string} [name]
117
+ * @property {string[]} [arguments]
118
+ */
119
+ /**
120
+ * @typedef {Object} Open
121
+ * @property {string | string[] | OpenApp} [app]
122
+ * @property {string | string[]} [target]
123
+ */
124
+ /**
125
+ * @typedef {Object} NormalizedOpen
126
+ * @property {string} target
127
+ * @property {import("open").Options} options
128
+ */
129
+ /**
130
+ * @typedef {Object} WebSocketURL
131
+ * @property {string} [hostname]
132
+ * @property {string} [password]
133
+ * @property {string} [pathname]
134
+ * @property {number | string} [port]
135
+ * @property {string} [protocol]
136
+ * @property {string} [username]
137
+ */
138
+ /**
139
+ * @typedef {Object} ClientConfiguration
140
+ * @property {"log" | "info" | "warn" | "error" | "none" | "verbose"} [logging]
141
+ * @property {boolean | { warnings?: boolean, errors?: boolean }} [overlay]
142
+ * @property {boolean} [progress]
143
+ * @property {boolean | number} [reconnect]
144
+ * @property {"ws" | "sockjs" | string} [webSocketTransport]
145
+ * @property {string | WebSocketURL} [webSocketURL]
146
+ */
147
+ /**
148
+ * @typedef {Array<{ key: string; value: string }> | Record<string, string | string[]>} Headers
149
+ */
150
+ /**
151
+ * @typedef {{ name?: string, path?: string, middleware: ExpressRequestHandler | ExpressErrorRequestHandler } | ExpressRequestHandler | ExpressErrorRequestHandler} Middleware
152
+ */
153
+ /**
154
+ * @typedef {Object} Configuration
155
+ * @property {boolean | string} [ipc]
156
+ * @property {Host} [host]
157
+ * @property {Port} [port]
158
+ * @property {boolean | "only"} [hot]
159
+ * @property {boolean} [liveReload]
160
+ * @property {DevMiddlewareOptions<Request, Response>} [devMiddleware]
161
+ * @property {boolean} [compress]
162
+ * @property {boolean} [magicHtml]
163
+ * @property {"auto" | "all" | string | string[]} [allowedHosts]
164
+ * @property {boolean | ConnectHistoryApiFallbackOptions} [historyApiFallback]
165
+ * @property {boolean} [setupExitSignals]
166
+ * @property {boolean | BonjourOptions} [bonjour]
167
+ * @property {string | string[] | WatchFiles | Array<string | WatchFiles>} [watchFiles]
168
+ * @property {boolean | string | Static | Array<string | Static>} [static]
169
+ * @property {boolean | ServerOptions} [https]
170
+ * @property {boolean} [http2]
171
+ * @property {"http" | "https" | "spdy" | string | ServerConfiguration} [server]
172
+ * @property {boolean | "sockjs" | "ws" | string | WebSocketServerConfiguration} [webSocketServer]
173
+ * @property {ProxyConfigMap | ProxyConfigArray | ProxyArray} [proxy]
174
+ * @property {boolean | string | Open | Array<string | Open>} [open]
175
+ * @property {boolean} [setupExitSignals]
176
+ * @property {boolean | ClientConfiguration} [client]
177
+ * @property {Headers | ((req: Request, res: Response, context: DevMiddlewareContext<Request, Response>) => Headers)} [headers]
178
+ * @property {(devServer: Server) => void} [onAfterSetupMiddleware]
179
+ * @property {(devServer: Server) => void} [onBeforeSetupMiddleware]
180
+ * @property {(devServer: Server) => void} [onListening]
181
+ * @property {(middlewares: Middleware[], devServer: Server) => Middleware[]} [setupMiddlewares]
182
+ */
183
+ multiple: boolean;
184
+ simpleType: string;
185
+ };
186
+ "allowed-hosts-reset": {
187
+ configs: {
188
+ type: string;
189
+ multiple: boolean;
190
+ description: string;
191
+ path: string;
192
+ }[];
193
+ description: string;
194
+ simpleType: string;
195
+ multiple: boolean;
196
+ };
197
+ bonjour: {
198
+ configs: {
199
+ type: string;
200
+ multiple: boolean;
201
+ description: string;
202
+ path: string;
203
+ }[];
204
+ description: string;
205
+ negatedDescription: string;
206
+ simpleType: string;
207
+ multiple: boolean;
208
+ };
209
+ client: {
210
+ configs: {
211
+ description: string;
212
+ multiple: boolean;
213
+ path: string;
214
+ type: string;
215
+ values: boolean[];
216
+ }[];
217
+ /** @typedef {import("https").ServerOptions & { spdy?: { plain?: boolean | undefined, ssl?: boolean | undefined, 'x-forwarded-for'?: string | undefined, protocol?: string | undefined, protocols?: string[] | undefined }}} ServerOptions */
218
+ /**
219
+ * @template Request, Response
220
+ * @typedef {import("webpack-dev-middleware").Options<Request, Response>} DevMiddlewareOptions
221
+ */
222
+ /**
223
+ * @template Request, Response
224
+ * @typedef {import("webpack-dev-middleware").Context<Request, Response>} DevMiddlewareContext
225
+ */
226
+ /**
227
+ * @typedef {"local-ip" | "local-ipv4" | "local-ipv6" | string} Host
228
+ */
229
+ /**
230
+ * @typedef {number | string | "auto"} Port
231
+ */
232
+ /**
233
+ * @typedef {Object} WatchFiles
234
+ * @property {string | string[]} paths
235
+ * @property {WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [options]
236
+ */
237
+ /**
238
+ * @typedef {Object} Static
239
+ * @property {string} [directory]
240
+ * @property {string | string[]} [publicPath]
241
+ * @property {boolean | ServeIndexOptions} [serveIndex]
242
+ * @property {ServeStaticOptions} [staticOptions]
243
+ * @property {boolean | WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [watch]
244
+ */
245
+ /**
246
+ * @typedef {Object} NormalizedStatic
247
+ * @property {string} directory
248
+ * @property {string[]} publicPath
249
+ * @property {false | ServeIndexOptions} serveIndex
250
+ * @property {ServeStaticOptions} staticOptions
251
+ * @property {false | WatchOptions} watch
252
+ */
253
+ /**
254
+ * @typedef {Object} ServerConfiguration
255
+ * @property {"http" | "https" | "spdy" | string} [type]
256
+ * @property {ServerOptions} [options]
257
+ */
258
+ /**
259
+ * @typedef {Object} WebSocketServerConfiguration
260
+ * @property {"sockjs" | "ws" | string | Function} [type]
261
+ * @property {Record<string, any>} [options]
262
+ */
263
+ /**
264
+ * @typedef {(import("ws").WebSocket | import("sockjs").Connection & { send: import("ws").WebSocket["send"], terminate: import("ws").WebSocket["terminate"], ping: import("ws").WebSocket["ping"] }) & { isAlive?: boolean }} ClientConnection
265
+ */
266
+ /**
267
+ * @typedef {import("ws").WebSocketServer | import("sockjs").Server & { close: import("ws").WebSocketServer["close"] }} WebSocketServer
268
+ */
269
+ /**
270
+ * @typedef {{ implementation: WebSocketServer, clients: ClientConnection[] }} WebSocketServerImplementation
271
+ */
272
+ /**
273
+ * @typedef {{ [url: string]: string | HttpProxyMiddlewareOptions }} ProxyConfigMap
274
+ */
275
+ /**
276
+ * @typedef {HttpProxyMiddlewareOptions[]} ProxyArray
277
+ */
278
+ /**
279
+ * @callback ByPass
280
+ * @param {Request} req
281
+ * @param {Response} res
282
+ * @param {ProxyConfigArray} proxyConfig
283
+ */
284
+ /**
285
+ * @typedef {{ path?: string | string[] | undefined, context?: string | string[] | HttpProxyMiddlewareOptionsFilter | undefined } & HttpProxyMiddlewareOptions & ByPass} ProxyConfigArray
286
+ */
287
+ /**
288
+ * @typedef {Object} OpenApp
289
+ * @property {string} [name]
290
+ * @property {string[]} [arguments]
291
+ */
292
+ /**
293
+ * @typedef {Object} Open
294
+ * @property {string | string[] | OpenApp} [app]
295
+ * @property {string | string[]} [target]
296
+ */
297
+ /**
298
+ * @typedef {Object} NormalizedOpen
299
+ * @property {string} target
300
+ * @property {import("open").Options} options
301
+ */
302
+ /**
303
+ * @typedef {Object} WebSocketURL
304
+ * @property {string} [hostname]
305
+ * @property {string} [password]
306
+ * @property {string} [pathname]
307
+ * @property {number | string} [port]
308
+ * @property {string} [protocol]
309
+ * @property {string} [username]
310
+ */
311
+ /**
312
+ * @typedef {Object} ClientConfiguration
313
+ * @property {"log" | "info" | "warn" | "error" | "none" | "verbose"} [logging]
314
+ * @property {boolean | { warnings?: boolean, errors?: boolean }} [overlay]
315
+ * @property {boolean} [progress]
316
+ * @property {boolean | number} [reconnect]
317
+ * @property {"ws" | "sockjs" | string} [webSocketTransport]
318
+ * @property {string | WebSocketURL} [webSocketURL]
319
+ */
320
+ /**
321
+ * @typedef {Array<{ key: string; value: string }> | Record<string, string | string[]>} Headers
322
+ */
323
+ /**
324
+ * @typedef {{ name?: string, path?: string, middleware: ExpressRequestHandler | ExpressErrorRequestHandler } | ExpressRequestHandler | ExpressErrorRequestHandler} Middleware
325
+ */
326
+ /**
327
+ * @typedef {Object} Configuration
328
+ * @property {boolean | string} [ipc]
329
+ * @property {Host} [host]
330
+ * @property {Port} [port]
331
+ * @property {boolean | "only"} [hot]
332
+ * @property {boolean} [liveReload]
333
+ * @property {DevMiddlewareOptions<Request, Response>} [devMiddleware]
334
+ * @property {boolean} [compress]
335
+ * @property {boolean} [magicHtml]
336
+ * @property {"auto" | "all" | string | string[]} [allowedHosts]
337
+ * @property {boolean | ConnectHistoryApiFallbackOptions} [historyApiFallback]
338
+ * @property {boolean} [setupExitSignals]
339
+ * @property {boolean | BonjourOptions} [bonjour]
340
+ * @property {string | string[] | WatchFiles | Array<string | WatchFiles>} [watchFiles]
341
+ * @property {boolean | string | Static | Array<string | Static>} [static]
342
+ * @property {boolean | ServerOptions} [https]
343
+ * @property {boolean} [http2]
344
+ * @property {"http" | "https" | "spdy" | string | ServerConfiguration} [server]
345
+ * @property {boolean | "sockjs" | "ws" | string | WebSocketServerConfiguration} [webSocketServer]
346
+ * @property {ProxyConfigMap | ProxyConfigArray | ProxyArray} [proxy]
347
+ * @property {boolean | string | Open | Array<string | Open>} [open]
348
+ * @property {boolean} [setupExitSignals]
349
+ * @property {boolean | ClientConfiguration} [client]
350
+ * @property {Headers | ((req: Request, res: Response, context: DevMiddlewareContext<Request, Response>) => Headers)} [headers]
351
+ * @property {(devServer: Server) => void} [onAfterSetupMiddleware]
352
+ * @property {(devServer: Server) => void} [onBeforeSetupMiddleware]
353
+ * @property {(devServer: Server) => void} [onListening]
354
+ * @property {(middlewares: Middleware[], devServer: Server) => Middleware[]} [setupMiddlewares]
355
+ */
356
+ description: string;
357
+ multiple: boolean;
358
+ simpleType: string;
359
+ };
360
+ "client-logging": {
361
+ configs: {
362
+ type: string;
363
+ values: string[];
364
+ multiple: boolean;
365
+ description: string;
366
+ path: string;
367
+ }[];
368
+ description: string;
369
+ simpleType: string;
370
+ multiple: boolean;
371
+ };
372
+ "client-overlay": {
373
+ configs: {
374
+ type: string;
375
+ multiple: boolean;
376
+ description: string;
377
+ path: string;
378
+ }[];
379
+ description: string;
380
+ negatedDescription: string;
381
+ simpleType: string;
382
+ multiple: boolean;
383
+ };
384
+ "client-overlay-errors": {
385
+ configs: {
386
+ type: string;
387
+ multiple: boolean;
388
+ description: string;
389
+ path: string;
390
+ }[];
391
+ description: string;
392
+ simpleType: string;
393
+ multiple: boolean;
394
+ };
395
+ "client-overlay-warnings": {
396
+ configs: {
397
+ type: string;
398
+ multiple: boolean;
399
+ description: string;
400
+ path: string;
401
+ }[];
402
+ description: string;
403
+ simpleType: string;
404
+ multiple: boolean;
405
+ };
406
+ "client-progress": {
407
+ configs: {
408
+ type: string;
409
+ multiple: boolean;
410
+ description: string;
411
+ path: string;
412
+ }[];
413
+ description: string;
414
+ negatedDescription: string;
415
+ simpleType: string;
416
+ multiple: boolean;
417
+ };
418
+ "client-reconnect": {
419
+ configs: {
420
+ type: string;
421
+ multiple: boolean;
422
+ description: string;
423
+ path: string;
424
+ }[];
425
+ description: string;
426
+ negatedDescription: string;
427
+ simpleType: string;
428
+ multiple: boolean;
429
+ };
430
+ "client-web-socket-transport": {
431
+ configs: (
432
+ | {
433
+ type: string;
434
+ values: string[];
435
+ multiple: boolean;
436
+ description: string;
437
+ path: string;
438
+ }
439
+ | {
440
+ type: string;
441
+ multiple: boolean;
442
+ description: string;
443
+ path: string;
444
+ }
445
+ )[];
446
+ description: string;
447
+ simpleType: string;
448
+ multiple: boolean;
449
+ };
450
+ "client-web-socket-url": {
451
+ configs: {
452
+ type: string;
453
+ multiple: boolean;
454
+ description: string;
455
+ path: string;
456
+ }[];
457
+ description: string;
458
+ simpleType: string;
459
+ multiple: boolean;
460
+ };
461
+ "client-web-socket-url-hostname": {
462
+ configs: {
463
+ type: string;
464
+ multiple: boolean;
465
+ description: string;
466
+ path: string;
467
+ }[];
468
+ description: string;
469
+ simpleType: string;
470
+ multiple: boolean;
471
+ };
472
+ "client-web-socket-url-password": {
473
+ configs: {
474
+ type: string;
475
+ multiple: boolean;
476
+ description: string;
477
+ path: string;
478
+ }[];
479
+ description: string;
480
+ simpleType: string;
481
+ multiple: boolean;
482
+ };
483
+ "client-web-socket-url-pathname": {
484
+ configs: {
485
+ type: string;
486
+ multiple: boolean;
487
+ description: string;
488
+ path: string;
489
+ }[];
490
+ description: string;
491
+ simpleType: string;
492
+ multiple: boolean;
493
+ };
494
+ "client-web-socket-url-port": {
495
+ configs: {
496
+ type: string;
497
+ multiple: boolean;
498
+ description: string;
499
+ path: string;
500
+ }[];
501
+ description: string;
502
+ simpleType: string;
503
+ multiple: boolean;
504
+ };
505
+ "client-web-socket-url-protocol": {
506
+ configs: (
507
+ | {
508
+ description: string;
509
+ multiple: boolean;
510
+ path: string;
511
+ type: string;
512
+ values: string[];
513
+ }
514
+ | {
515
+ description: string;
516
+ multiple: boolean;
517
+ path: string;
518
+ type: string;
519
+ }
520
+ )[];
521
+ description: string;
522
+ multiple: boolean;
523
+ simpleType: string;
524
+ };
525
+ "client-web-socket-url-username": {
526
+ configs: {
527
+ type: string;
528
+ multiple: boolean;
529
+ description: string;
530
+ path: string;
531
+ }[];
532
+ description: string;
533
+ /**
534
+ * @private
535
+ * @type {string | undefined}
536
+ */
537
+ simpleType: string;
538
+ multiple: boolean;
539
+ };
540
+ compress: {
541
+ configs: {
542
+ type: string;
543
+ multiple: boolean;
544
+ description: string;
545
+ path: string;
546
+ }[];
547
+ description: string;
548
+ negatedDescription: string;
549
+ simpleType: string;
550
+ multiple: boolean;
551
+ };
552
+ "history-api-fallback": {
553
+ configs: {
554
+ type: string;
555
+ multiple: boolean;
556
+ description: string;
557
+ path: string;
558
+ }[];
559
+ description: string;
560
+ simpleType: string;
561
+ multiple: boolean;
562
+ };
563
+ host: {
564
+ configs: (
565
+ | {
566
+ description: string;
567
+ multiple: boolean;
568
+ path: string;
569
+ type: string;
570
+ values: string[];
571
+ }
572
+ | {
573
+ description: string;
574
+ multiple: boolean;
575
+ path: string;
576
+ type: string;
577
+ }
578
+ )[];
579
+ description: string;
580
+ simpleType: string;
581
+ multiple: boolean;
582
+ };
583
+ hot: {
584
+ configs: (
585
+ | {
586
+ type: string;
587
+ multiple: boolean;
588
+ description: string;
589
+ path: string;
590
+ }
591
+ | {
592
+ type: string;
593
+ values: string[];
594
+ multiple: boolean;
595
+ description: string;
596
+ path: string;
597
+ }
598
+ )[];
599
+ description: string;
600
+ negatedDescription: string;
601
+ simpleType: string;
602
+ multiple: boolean;
603
+ };
604
+ http2: {
605
+ configs: {
606
+ type: string;
607
+ multiple: boolean;
608
+ description: string;
609
+ path: string;
610
+ }[];
611
+ /**
612
+ * @param {Host} hostname
613
+ * @returns {Promise<string>}
614
+ */
615
+ description: string;
616
+ negatedDescription: string;
617
+ simpleType: string;
618
+ multiple: boolean;
619
+ };
620
+ https: {
621
+ configs: {
622
+ type: string;
623
+ multiple: boolean;
624
+ description: string;
625
+ path: string;
626
+ }[];
627
+ description: string;
628
+ negatedDescription: string;
629
+ simpleType: string;
630
+ multiple: boolean;
631
+ };
632
+ "https-ca": {
633
+ configs: {
634
+ type: string;
635
+ multiple: boolean;
636
+ description: string;
637
+ path: string;
638
+ }[];
639
+ description: string;
640
+ simpleType: string;
641
+ multiple: boolean;
642
+ };
643
+ "https-ca-reset": {
644
+ configs: {
645
+ description: string;
646
+ multiple: boolean;
647
+ path: string;
648
+ type: string;
649
+ }[];
650
+ description: string;
651
+ multiple: boolean;
652
+ simpleType: string;
653
+ };
654
+ "https-cacert": {
655
+ configs: {
656
+ type: string;
657
+ multiple: boolean;
658
+ description: string;
659
+ path: string;
660
+ }[];
661
+ description: string;
662
+ /**
663
+ * @type {string[]}
664
+ */
665
+ simpleType: string;
666
+ multiple: boolean;
667
+ };
668
+ "https-cacert-reset": {
669
+ configs: {
670
+ description: string;
671
+ multiple: boolean;
672
+ path: string;
673
+ type: string;
674
+ }[];
675
+ description: string;
676
+ multiple: boolean;
677
+ simpleType: string;
678
+ };
679
+ "https-cert": {
680
+ configs: {
681
+ type: string;
682
+ /** @type {ClientConfiguration} */ multiple: boolean;
683
+ description: string;
684
+ path: string;
685
+ }[];
686
+ description: string;
687
+ simpleType: string;
688
+ multiple: boolean;
689
+ };
690
+ "https-cert-reset": {
691
+ configs: {
692
+ description: string;
693
+ multiple: boolean;
694
+ path: string;
695
+ type: string;
696
+ }[];
697
+ description: string;
698
+ multiple: boolean;
699
+ simpleType: string;
700
+ };
701
+ "https-crl": {
702
+ configs: {
703
+ description: string;
704
+ multiple: boolean;
705
+ path: string;
706
+ type: string;
707
+ }[];
708
+ description: string;
709
+ multiple: boolean;
710
+ simpleType: string;
711
+ };
712
+ "https-crl-reset": {
713
+ configs: {
714
+ description: string;
715
+ multiple: boolean;
716
+ path: string;
717
+ type: string;
718
+ }[];
719
+ description: string;
720
+ multiple: boolean;
721
+ simpleType: string;
722
+ };
723
+ "https-key": {
724
+ configs: {
725
+ type: string;
726
+ multiple: boolean;
727
+ description: string;
728
+ path: string;
729
+ }[];
730
+ description: string;
731
+ simpleType: string;
732
+ multiple: boolean;
733
+ };
734
+ "https-key-reset": {
735
+ configs: {
736
+ description: string;
737
+ multiple: boolean;
738
+ path: string;
739
+ type: string;
740
+ }[];
741
+ description: string;
742
+ multiple: boolean;
743
+ simpleType: string;
744
+ };
745
+ "https-passphrase": {
746
+ configs: {
747
+ type: string;
748
+ multiple: boolean;
749
+ description: string;
750
+ path: string;
751
+ }[];
752
+ description: string;
753
+ simpleType: string;
754
+ multiple: boolean;
755
+ };
756
+ "https-pfx": {
757
+ configs: {
758
+ type: string;
759
+ multiple: boolean;
760
+ description: string;
761
+ path: string;
762
+ }[];
763
+ description: string;
764
+ simpleType: string;
765
+ multiple: boolean;
766
+ };
767
+ "https-pfx-reset": {
768
+ configs: {
769
+ description: string;
770
+ multiple: boolean;
771
+ path: string;
772
+ type: string;
773
+ }[];
774
+ description: string;
775
+ multiple: boolean;
776
+ simpleType: string;
777
+ };
778
+ "https-request-cert": {
779
+ configs: {
780
+ type: string;
781
+ multiple: boolean;
782
+ description: string;
783
+ path: string;
784
+ }[];
785
+ description: string;
786
+ negatedDescription: string;
787
+ simpleType: string;
788
+ multiple: boolean;
789
+ };
790
+ ipc: {
791
+ configs: (
792
+ | {
793
+ type: string;
794
+ multiple: boolean;
795
+ description: string;
796
+ path: string;
797
+ }
798
+ | {
799
+ type: string;
800
+ values: boolean[];
801
+ multiple: boolean;
802
+ description: string;
803
+ path: string;
804
+ }
805
+ )[];
806
+ description: string;
807
+ simpleType: string;
808
+ multiple: boolean;
809
+ };
810
+ "live-reload": {
811
+ configs: {
812
+ type: string;
813
+ /** @type {Object<string,string>} */ multiple: boolean;
814
+ description: string;
815
+ path: string;
816
+ }[];
817
+ description: string;
818
+ negatedDescription: string;
819
+ simpleType: string;
820
+ multiple: boolean /** @type {any} */;
821
+ };
822
+ "magic-html": {
823
+ configs: {
824
+ type: string;
825
+ multiple: boolean;
826
+ description: string;
827
+ path: string;
828
+ }[];
829
+ description: string;
830
+ negatedDescription: string;
831
+ simpleType: string;
832
+ multiple: boolean;
833
+ };
834
+ open: {
835
+ configs: {
836
+ type: string;
837
+ multiple: boolean;
838
+ description: string;
839
+ path: string;
840
+ }[];
841
+ description: string;
842
+ negatedDescription: string;
843
+ simpleType: string;
844
+ multiple: boolean;
845
+ };
846
+ "open-app": {
847
+ configs: {
848
+ type: string;
849
+ multiple: boolean;
850
+ description: string;
851
+ path: string;
852
+ }[];
853
+ description: string;
854
+ simpleType: string;
855
+ multiple: boolean;
856
+ };
857
+ "open-app-name": {
858
+ configs: {
859
+ type: string;
860
+ multiple: boolean;
861
+ description: string;
862
+ path: string;
863
+ }[];
864
+ description: string;
865
+ simpleType: string;
866
+ multiple: boolean;
867
+ };
868
+ "open-app-name-reset": {
869
+ configs: {
870
+ type: string;
871
+ multiple: boolean;
872
+ description: string;
873
+ path: string;
874
+ }[];
875
+ description: string;
876
+ simpleType: string;
877
+ multiple: boolean;
878
+ };
879
+ "open-reset": {
880
+ configs: {
881
+ type: string;
882
+ multiple: boolean;
883
+ description: string;
884
+ path: string;
885
+ }[];
886
+ description: string;
887
+ simpleType: string;
888
+ multiple: boolean;
889
+ };
890
+ "open-target": {
891
+ configs: {
892
+ type: string;
893
+ multiple: boolean;
894
+ description: string;
895
+ path: string;
896
+ }[];
897
+ description: string;
898
+ negatedDescription: string;
899
+ simpleType: string;
900
+ multiple: boolean;
901
+ };
902
+ "open-target-reset": {
903
+ configs: {
904
+ type: string;
905
+ multiple: boolean;
906
+ description: string;
907
+ path: string;
908
+ }[];
909
+ description: string;
910
+ simpleType: string;
911
+ multiple: boolean;
912
+ };
913
+ port: {
914
+ configs: (
915
+ | {
916
+ type: string;
917
+ multiple: boolean;
918
+ description: string;
919
+ path: string;
920
+ }
921
+ | {
922
+ type: string;
923
+ values: string[];
924
+ multiple: boolean;
925
+ description: string;
926
+ path: string;
927
+ }
928
+ )[];
929
+ description: string;
930
+ simpleType: string;
931
+ multiple: boolean;
932
+ };
933
+ "server-options-ca": {
934
+ configs: {
935
+ description: string;
936
+ multiple: boolean;
937
+ path: string;
938
+ type: string;
939
+ }[];
940
+ description: string;
941
+ multiple: boolean;
942
+ simpleType: string;
943
+ };
944
+ "server-options-ca-reset": {
945
+ configs: {
946
+ description: string;
947
+ multiple: boolean;
948
+ path: string;
949
+ type: string;
950
+ }[];
951
+ description: string;
952
+ multiple: boolean;
953
+ simpleType: string;
954
+ };
955
+ "server-options-cacert": {
956
+ configs: {
957
+ description: string;
958
+ multiple: boolean;
959
+ path: string;
960
+ type: string;
961
+ }[];
962
+ description: string;
963
+ multiple: boolean;
964
+ simpleType: string;
965
+ };
966
+ "server-options-cacert-reset": {
967
+ configs: {
968
+ description: string;
969
+ multiple: boolean;
970
+ path: string;
971
+ type: string;
972
+ }[];
973
+ description: string;
974
+ multiple: boolean;
975
+ simpleType: string;
976
+ };
977
+ "server-options-cert": {
978
+ configs: {
979
+ description: string;
980
+ multiple: boolean;
981
+ path: string;
982
+ type: string;
983
+ }[];
984
+ description: string;
985
+ multiple: boolean;
986
+ simpleType: string;
987
+ };
988
+ "server-options-cert-reset": {
989
+ configs: {
990
+ description: string;
991
+ multiple: boolean;
992
+ path: string;
993
+ type: string;
994
+ }[];
995
+ description: string;
996
+ multiple: boolean;
997
+ simpleType: string;
998
+ };
999
+ "server-options-crl": {
1000
+ configs: {
1001
+ description: string;
1002
+ multiple: boolean;
1003
+ path: string;
1004
+ type: string;
1005
+ }[];
1006
+ description: string;
1007
+ multiple: boolean;
1008
+ simpleType: string;
1009
+ };
1010
+ "server-options-crl-reset": {
1011
+ configs: {
1012
+ description: string;
1013
+ multiple: boolean;
1014
+ path: string;
1015
+ type: string;
1016
+ }[];
1017
+ description: string;
1018
+ multiple: boolean;
1019
+ simpleType: string;
1020
+ };
1021
+ "server-options-key": {
1022
+ configs: {
1023
+ description: string;
1024
+ multiple: boolean;
1025
+ path: string;
1026
+ type: string;
1027
+ }[];
1028
+ description: string;
1029
+ multiple: boolean;
1030
+ simpleType: string;
1031
+ };
1032
+ "server-options-key-reset": {
1033
+ configs: {
1034
+ description: string;
1035
+ multiple: boolean;
1036
+ path: string;
1037
+ type: string;
1038
+ }[];
1039
+ description: string;
1040
+ multiple: boolean;
1041
+ simpleType: string;
1042
+ };
1043
+ "server-options-passphrase": {
1044
+ configs: {
1045
+ description: string;
1046
+ multiple: boolean;
1047
+ path: string;
1048
+ type: string;
1049
+ }[];
1050
+ description: string;
1051
+ multiple: boolean;
1052
+ simpleType: string;
1053
+ };
1054
+ "server-options-pfx": {
1055
+ configs: {
1056
+ description: string;
1057
+ multiple: boolean;
1058
+ path: string;
1059
+ type: string;
1060
+ }[];
1061
+ description: string;
1062
+ multiple: boolean;
1063
+ simpleType: string;
1064
+ };
1065
+ "server-options-pfx-reset": {
1066
+ configs: {
1067
+ description: string;
1068
+ multiple: boolean;
1069
+ path: string;
1070
+ type: string;
1071
+ }[];
1072
+ description: string;
1073
+ multiple: boolean;
1074
+ simpleType: string;
1075
+ };
1076
+ "server-options-request-cert": {
1077
+ configs: {
1078
+ description: string;
1079
+ multiple: boolean;
1080
+ path: string;
1081
+ type: string;
1082
+ }[];
1083
+ description: string;
1084
+ multiple: boolean;
1085
+ simpleType: string;
1086
+ };
1087
+ "server-type": {
1088
+ configs: {
1089
+ description: string;
1090
+ multiple: boolean;
1091
+ path: string;
1092
+ type: string;
1093
+ values: string[];
1094
+ }[];
1095
+ description: string;
1096
+ multiple: boolean;
1097
+ simpleType: string;
1098
+ };
1099
+ static: {
1100
+ configs: {
1101
+ type: string;
1102
+ multiple: boolean;
1103
+ description: string;
1104
+ path: string;
1105
+ }[];
1106
+ description: string;
1107
+ simpleType: string;
1108
+ multiple: boolean;
1109
+ };
1110
+ "static-directory": {
1111
+ configs: {
1112
+ type: string;
1113
+ multiple: boolean;
1114
+ description: string;
1115
+ path: string;
1116
+ }[];
1117
+ description: string;
1118
+ /** @type {any} */
1119
+ simpleType: string;
1120
+ multiple: boolean;
1121
+ };
1122
+ "static-public-path": {
1123
+ configs: {
1124
+ type: string;
1125
+ multiple: boolean;
1126
+ description: string;
1127
+ path: string;
1128
+ }[];
1129
+ description: string;
1130
+ simpleType: string;
1131
+ multiple: boolean;
1132
+ };
1133
+ "static-public-path-reset": {
1134
+ configs: {
1135
+ type: string;
1136
+ multiple: boolean;
1137
+ description: string;
1138
+ path: string;
1139
+ }[];
1140
+ description: string;
1141
+ simpleType: string;
1142
+ multiple: boolean;
1143
+ };
1144
+ "static-reset": {
1145
+ configs: {
1146
+ type: string;
1147
+ multiple: boolean;
1148
+ description: string;
1149
+ path: string;
1150
+ }[];
1151
+ description: string;
1152
+ simpleType: string;
1153
+ multiple: boolean;
1154
+ };
1155
+ "static-serve-index": {
1156
+ configs: {
1157
+ type: string;
1158
+ multiple: boolean;
1159
+ description: string;
1160
+ path: string;
1161
+ }[];
1162
+ description: string;
1163
+ negatedDescription: string;
1164
+ simpleType: string;
1165
+ multiple: boolean;
1166
+ };
1167
+ "static-watch": {
1168
+ configs: {
1169
+ type: string;
1170
+ multiple: boolean;
1171
+ description: string;
1172
+ path: string;
1173
+ }[];
1174
+ description: string;
1175
+ negatedDescription: string;
1176
+ simpleType: string;
1177
+ multiple: boolean;
1178
+ };
1179
+ "watch-files": {
1180
+ configs: {
1181
+ type: string;
1182
+ multiple: boolean;
1183
+ description: string;
1184
+ path: string;
1185
+ }[];
1186
+ description: string;
1187
+ simpleType: string;
1188
+ multiple: boolean;
1189
+ };
1190
+ "watch-files-reset": {
1191
+ configs: {
1192
+ type: string;
1193
+ multiple: boolean;
1194
+ description: string;
1195
+ path: string;
1196
+ }[];
1197
+ description: string;
1198
+ simpleType: string;
1199
+ multiple: boolean;
1200
+ };
1201
+ "web-socket-server": {
1202
+ configs: (
1203
+ | {
1204
+ description: string;
1205
+ multiple: boolean;
1206
+ path: string;
1207
+ type: string;
1208
+ values: boolean[];
1209
+ }
1210
+ | {
1211
+ description: string;
1212
+ multiple: boolean;
1213
+ path: string;
1214
+ type: string;
1215
+ values: string[];
1216
+ }
1217
+ | {
1218
+ description: string;
1219
+ multiple: boolean;
1220
+ path: string;
1221
+ type: string;
1222
+ }
1223
+ )[];
1224
+ description: string;
1225
+ simpleType: string;
1226
+ multiple: boolean;
1227
+ };
1228
+ "web-socket-server-type": {
1229
+ configs: (
1230
+ | {
1231
+ description: string;
1232
+ multiple: boolean;
1233
+ path: string;
1234
+ type: string;
1235
+ values: string[];
1236
+ }
1237
+ | {
1238
+ description: string;
1239
+ multiple: boolean;
1240
+ path: string;
1241
+ type: string;
1242
+ }
1243
+ )[];
1244
+ description: string;
1245
+ simpleType: string;
1246
+ multiple: boolean;
1247
+ };
1248
+ };
1249
+ readonly processArguments: (
1250
+ args: Record<string, import("../bin/process-arguments").Argument>,
1251
+ config: any,
1252
+ values: Record<
1253
+ string,
1254
+ | string
1255
+ | number
1256
+ | boolean
1257
+ | RegExp
1258
+ | (string | number | boolean | RegExp)[]
1259
+ >
1260
+ ) => import("../bin/process-arguments").Problem[] | null;
1261
+ };
1262
+ static get schema(): {
1263
+ title: string;
1264
+ type: string;
1265
+ definitions: {
1266
+ AllowedHosts: {
1267
+ anyOf: (
1268
+ | {
1269
+ type: string;
1270
+ minItems: number;
1271
+ items: {
1272
+ $ref: string;
1273
+ };
1274
+ enum?: undefined;
1275
+ $ref?: undefined;
1276
+ }
1277
+ | {
1278
+ enum: string[];
1279
+ type?: undefined;
1280
+ minItems?: undefined;
1281
+ items?: undefined;
1282
+ $ref?: undefined;
1283
+ }
1284
+ | {
1285
+ $ref: string;
1286
+ type?: undefined;
1287
+ minItems?: undefined;
1288
+ items?: undefined;
1289
+ enum?: undefined;
1290
+ }
1291
+ )[];
1292
+ description: string /** @typedef {import("webpack").Configuration} WebpackConfiguration */;
1293
+ link: string;
1294
+ };
1295
+ AllowedHostsItem: {
1296
+ type: string;
1297
+ minLength: number;
1298
+ };
1299
+ Bonjour: {
1300
+ anyOf: (
1301
+ | {
1302
+ type: string;
1303
+ description?: undefined;
1304
+ link?: undefined;
1305
+ }
1306
+ | {
1307
+ type: string;
1308
+ description: string;
1309
+ link: string;
1310
+ }
1311
+ )[];
1312
+ description: string;
1313
+ link: string;
1314
+ };
1315
+ Client: {
1316
+ description: string;
1317
+ link: string;
1318
+ anyOf: (
1319
+ | {
1320
+ enum: boolean[];
1321
+ type?: undefined;
1322
+ additionalProperties?: undefined;
1323
+ properties?: undefined;
1324
+ }
1325
+ | {
1326
+ type: string;
1327
+ additionalProperties: boolean;
1328
+ properties: {
1329
+ logging: {
1330
+ $ref: string;
1331
+ };
1332
+ overlay: {
1333
+ $ref: string;
1334
+ };
1335
+ progress: {
1336
+ $ref: string;
1337
+ };
1338
+ reconnect: {
1339
+ $ref: string;
1340
+ };
1341
+ webSocketTransport: {
1342
+ $ref: string;
1343
+ };
1344
+ webSocketURL: {
1345
+ $ref: string;
1346
+ };
1347
+ };
1348
+ enum?: undefined;
1349
+ }
1350
+ )[];
1351
+ };
1352
+ ClientLogging: {
1353
+ enum: string[];
1354
+ /** @typedef {import("https").ServerOptions & { spdy?: { plain?: boolean | undefined, ssl?: boolean | undefined, 'x-forwarded-for'?: string | undefined, protocol?: string | undefined, protocols?: string[] | undefined }}} ServerOptions */
1355
+ /**
1356
+ * @template Request, Response
1357
+ * @typedef {import("webpack-dev-middleware").Options<Request, Response>} DevMiddlewareOptions
1358
+ */
1359
+ /**
1360
+ * @template Request, Response
1361
+ * @typedef {import("webpack-dev-middleware").Context<Request, Response>} DevMiddlewareContext
1362
+ */
1363
+ /**
1364
+ * @typedef {"local-ip" | "local-ipv4" | "local-ipv6" | string} Host
1365
+ */
1366
+ /**
1367
+ * @typedef {number | string | "auto"} Port
1368
+ */
1369
+ /**
1370
+ * @typedef {Object} WatchFiles
1371
+ * @property {string | string[]} paths
1372
+ * @property {WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [options]
1373
+ */
1374
+ /**
1375
+ * @typedef {Object} Static
1376
+ * @property {string} [directory]
1377
+ * @property {string | string[]} [publicPath]
1378
+ * @property {boolean | ServeIndexOptions} [serveIndex]
1379
+ * @property {ServeStaticOptions} [staticOptions]
1380
+ * @property {boolean | WatchOptions & { aggregateTimeout?: number, ignored?: string | RegExp | string[], poll?: number | boolean }} [watch]
1381
+ */
1382
+ /**
1383
+ * @typedef {Object} NormalizedStatic
1384
+ * @property {string} directory
1385
+ * @property {string[]} publicPath
1386
+ * @property {false | ServeIndexOptions} serveIndex
1387
+ * @property {ServeStaticOptions} staticOptions
1388
+ * @property {false | WatchOptions} watch
1389
+ */
1390
+ /**
1391
+ * @typedef {Object} ServerConfiguration
1392
+ * @property {"http" | "https" | "spdy" | string} [type]
1393
+ * @property {ServerOptions} [options]
1394
+ */
1395
+ /**
1396
+ * @typedef {Object} WebSocketServerConfiguration
1397
+ * @property {"sockjs" | "ws" | string | Function} [type]
1398
+ * @property {Record<string, any>} [options]
1399
+ */
1400
+ /**
1401
+ * @typedef {(import("ws").WebSocket | import("sockjs").Connection & { send: import("ws").WebSocket["send"], terminate: import("ws").WebSocket["terminate"], ping: import("ws").WebSocket["ping"] }) & { isAlive?: boolean }} ClientConnection
1402
+ */
1403
+ /**
1404
+ * @typedef {import("ws").WebSocketServer | import("sockjs").Server & { close: import("ws").WebSocketServer["close"] }} WebSocketServer
1405
+ */
1406
+ /**
1407
+ * @typedef {{ implementation: WebSocketServer, clients: ClientConnection[] }} WebSocketServerImplementation
1408
+ */
1409
+ /**
1410
+ * @typedef {{ [url: string]: string | HttpProxyMiddlewareOptions }} ProxyConfigMap
1411
+ */
1412
+ /**
1413
+ * @typedef {HttpProxyMiddlewareOptions[]} ProxyArray
1414
+ */
1415
+ /**
1416
+ * @callback ByPass
1417
+ * @param {Request} req
1418
+ * @param {Response} res
1419
+ * @param {ProxyConfigArray} proxyConfig
1420
+ */
1421
+ /**
1422
+ * @typedef {{ path?: string | string[] | undefined, context?: string | string[] | HttpProxyMiddlewareOptionsFilter | undefined } & HttpProxyMiddlewareOptions & ByPass} ProxyConfigArray
1423
+ */
1424
+ /**
1425
+ * @typedef {Object} OpenApp
1426
+ * @property {string} [name]
1427
+ * @property {string[]} [arguments]
1428
+ */
1429
+ /**
1430
+ * @typedef {Object} Open
1431
+ * @property {string | string[] | OpenApp} [app]
1432
+ * @property {string | string[]} [target]
1433
+ */
1434
+ /**
1435
+ * @typedef {Object} NormalizedOpen
1436
+ * @property {string} target
1437
+ * @property {import("open").Options} options
1438
+ */
1439
+ /**
1440
+ * @typedef {Object} WebSocketURL
1441
+ * @property {string} [hostname]
1442
+ * @property {string} [password]
1443
+ * @property {string} [pathname]
1444
+ * @property {number | string} [port]
1445
+ * @property {string} [protocol]
1446
+ * @property {string} [username]
1447
+ */
1448
+ /**
1449
+ * @typedef {Object} ClientConfiguration
1450
+ * @property {"log" | "info" | "warn" | "error" | "none" | "verbose"} [logging]
1451
+ * @property {boolean | { warnings?: boolean, errors?: boolean }} [overlay]
1452
+ * @property {boolean} [progress]
1453
+ * @property {boolean | number} [reconnect]
1454
+ * @property {"ws" | "sockjs" | string} [webSocketTransport]
1455
+ * @property {string | WebSocketURL} [webSocketURL]
1456
+ */
1457
+ /**
1458
+ * @typedef {Array<{ key: string; value: string }> | Record<string, string | string[]>} Headers
1459
+ */
1460
+ /**
1461
+ * @typedef {{ name?: string, path?: string, middleware: ExpressRequestHandler | ExpressErrorRequestHandler } | ExpressRequestHandler | ExpressErrorRequestHandler} Middleware
1462
+ */
1463
+ /**
1464
+ * @typedef {Object} Configuration
1465
+ * @property {boolean | string} [ipc]
1466
+ * @property {Host} [host]
1467
+ * @property {Port} [port]
1468
+ * @property {boolean | "only"} [hot]
1469
+ * @property {boolean} [liveReload]
1470
+ * @property {DevMiddlewareOptions<Request, Response>} [devMiddleware]
1471
+ * @property {boolean} [compress]
1472
+ * @property {boolean} [magicHtml]
1473
+ * @property {"auto" | "all" | string | string[]} [allowedHosts]
1474
+ * @property {boolean | ConnectHistoryApiFallbackOptions} [historyApiFallback]
1475
+ * @property {boolean} [setupExitSignals]
1476
+ * @property {boolean | BonjourOptions} [bonjour]
1477
+ * @property {string | string[] | WatchFiles | Array<string | WatchFiles>} [watchFiles]
1478
+ * @property {boolean | string | Static | Array<string | Static>} [static]
1479
+ * @property {boolean | ServerOptions} [https]
1480
+ * @property {boolean} [http2]
1481
+ * @property {"http" | "https" | "spdy" | string | ServerConfiguration} [server]
1482
+ * @property {boolean | "sockjs" | "ws" | string | WebSocketServerConfiguration} [webSocketServer]
1483
+ * @property {ProxyConfigMap | ProxyConfigArray | ProxyArray} [proxy]
1484
+ * @property {boolean | string | Open | Array<string | Open>} [open]
1485
+ * @property {boolean} [setupExitSignals]
1486
+ * @property {boolean | ClientConfiguration} [client]
1487
+ * @property {Headers | ((req: Request, res: Response, context: DevMiddlewareContext<Request, Response>) => Headers)} [headers]
1488
+ * @property {(devServer: Server) => void} [onAfterSetupMiddleware]
1489
+ * @property {(devServer: Server) => void} [onBeforeSetupMiddleware]
1490
+ * @property {(devServer: Server) => void} [onListening]
1491
+ * @property {(middlewares: Middleware[], devServer: Server) => Middleware[]} [setupMiddlewares]
1492
+ */
1493
+ description: string;
1494
+ link: string;
1495
+ };
1496
+ ClientOverlay: {
1497
+ anyOf: (
1498
+ | {
1499
+ description: string;
1500
+ link: string;
1501
+ type: string;
1502
+ additionalProperties?: undefined;
1503
+ properties?: undefined;
1504
+ }
1505
+ | {
1506
+ type: string;
1507
+ additionalProperties: boolean;
1508
+ properties: {
1509
+ errors: {
1510
+ description: string;
1511
+ type: string;
1512
+ };
1513
+ warnings: {
1514
+ description: string;
1515
+ type: string;
1516
+ };
1517
+ };
1518
+ description?: undefined;
1519
+ link?: undefined;
1520
+ }
1521
+ )[];
1522
+ };
1523
+ ClientProgress: {
1524
+ description: string;
1525
+ link: string;
1526
+ type: string;
1527
+ };
1528
+ ClientReconnect: {
1529
+ description: string;
1530
+ link: string;
1531
+ anyOf: (
1532
+ | {
1533
+ type: string;
1534
+ minimum?: undefined;
1535
+ }
1536
+ | {
1537
+ type: string;
1538
+ minimum: number;
1539
+ }
1540
+ )[];
1541
+ };
1542
+ ClientWebSocketTransport: {
1543
+ anyOf: {
1544
+ $ref: string;
1545
+ }[];
1546
+ description: string;
1547
+ link: string;
1548
+ };
1549
+ ClientWebSocketTransportEnum: {
1550
+ enum: string[];
1551
+ };
1552
+ ClientWebSocketTransportString: {
1553
+ type: string;
1554
+ minLength: number;
1555
+ };
1556
+ ClientWebSocketURL: {
1557
+ description: string;
1558
+ link: string;
1559
+ anyOf: (
1560
+ | {
1561
+ /**
1562
+ * @typedef {HttpProxyMiddlewareOptions[]} ProxyArray
1563
+ */
1564
+ /**
1565
+ * @callback ByPass
1566
+ * @param {Request} req
1567
+ * @param {Response} res
1568
+ * @param {ProxyConfigArray} proxyConfig
1569
+ */
1570
+ /**
1571
+ * @typedef {{ path?: string | string[] | undefined, context?: string | string[] | HttpProxyMiddlewareOptionsFilter | undefined } & HttpProxyMiddlewareOptions & ByPass} ProxyConfigArray
1572
+ */
1573
+ /**
1574
+ * @typedef {Object} OpenApp
1575
+ * @property {string} [name]
1576
+ * @property {string[]} [arguments]
1577
+ */
1578
+ /**
1579
+ * @typedef {Object} Open
1580
+ * @property {string | string[] | OpenApp} [app]
1581
+ * @property {string | string[]} [target]
1582
+ */
1583
+ /**
1584
+ * @typedef {Object} NormalizedOpen
1585
+ * @property {string} target
1586
+ * @property {import("open").Options} options
1587
+ */
1588
+ /**
1589
+ * @typedef {Object} WebSocketURL
1590
+ * @property {string} [hostname]
1591
+ * @property {string} [password]
1592
+ * @property {string} [pathname]
1593
+ * @property {number | string} [port]
1594
+ * @property {string} [protocol]
1595
+ * @property {string} [username]
1596
+ */
1597
+ /**
1598
+ * @typedef {Object} ClientConfiguration
1599
+ * @property {"log" | "info" | "warn" | "error" | "none" | "verbose"} [logging]
1600
+ * @property {boolean | { warnings?: boolean, errors?: boolean }} [overlay]
1601
+ * @property {boolean} [progress]
1602
+ * @property {boolean | number} [reconnect]
1603
+ * @property {"ws" | "sockjs" | string} [webSocketTransport]
1604
+ * @property {string | WebSocketURL} [webSocketURL]
1605
+ */
1606
+ /**
1607
+ * @typedef {Array<{ key: string; value: string }> | Record<string, string | string[]>} Headers
1608
+ */
1609
+ /**
1610
+ * @typedef {{ name?: string, path?: string, middleware: ExpressRequestHandler | ExpressErrorRequestHandler } | ExpressRequestHandler | ExpressErrorRequestHandler} Middleware
1611
+ */
1612
+ /**
1613
+ * @typedef {Object} Configuration
1614
+ * @property {boolean | string} [ipc]
1615
+ * @property {Host} [host]
1616
+ * @property {Port} [port]
1617
+ * @property {boolean | "only"} [hot]
1618
+ * @property {boolean} [liveReload]
1619
+ * @property {DevMiddlewareOptions<Request, Response>} [devMiddleware]
1620
+ * @property {boolean} [compress]
1621
+ * @property {boolean} [magicHtml]
1622
+ * @property {"auto" | "all" | string | string[]} [allowedHosts]
1623
+ * @property {boolean | ConnectHistoryApiFallbackOptions} [historyApiFallback]
1624
+ * @property {boolean} [setupExitSignals]
1625
+ * @property {boolean | BonjourOptions} [bonjour]
1626
+ * @property {string | string[] | WatchFiles | Array<string | WatchFiles>} [watchFiles]
1627
+ * @property {boolean | string | Static | Array<string | Static>} [static]
1628
+ * @property {boolean | ServerOptions} [https]
1629
+ * @property {boolean} [http2]
1630
+ * @property {"http" | "https" | "spdy" | string | ServerConfiguration} [server]
1631
+ * @property {boolean | "sockjs" | "ws" | string | WebSocketServerConfiguration} [webSocketServer]
1632
+ * @property {ProxyConfigMap | ProxyConfigArray | ProxyArray} [proxy]
1633
+ * @property {boolean | string | Open | Array<string | Open>} [open]
1634
+ * @property {boolean} [setupExitSignals]
1635
+ * @property {boolean | ClientConfiguration} [client]
1636
+ * @property {Headers | ((req: Request, res: Response, context: DevMiddlewareContext<Request, Response>) => Headers)} [headers]
1637
+ * @property {(devServer: Server) => void} [onAfterSetupMiddleware]
1638
+ * @property {(devServer: Server) => void} [onBeforeSetupMiddleware]
1639
+ * @property {(devServer: Server) => void} [onListening]
1640
+ * @property {(middlewares: Middleware[], devServer: Server) => Middleware[]} [setupMiddlewares]
1641
+ */
1642
+ type: string;
1643
+ minLength: number;
1644
+ additionalProperties?: undefined;
1645
+ properties?: undefined;
1646
+ }
1647
+ | {
1648
+ type: string;
1649
+ additionalProperties: boolean;
1650
+ properties: {
1651
+ hostname: {
1652
+ description: string;
1653
+ type: string;
1654
+ minLength: number;
1655
+ };
1656
+ pathname: {
1657
+ description: string;
1658
+ type: string;
1659
+ };
1660
+ password: {
1661
+ description: string;
1662
+ type: string;
1663
+ };
1664
+ port: {
1665
+ description: string;
1666
+ anyOf: (
1667
+ | {
1668
+ type: string;
1669
+ minLength?: undefined;
1670
+ }
1671
+ | {
1672
+ type: string;
1673
+ minLength: number;
1674
+ }
1675
+ )[];
1676
+ };
1677
+ protocol: {
1678
+ description: string;
1679
+ anyOf: (
1680
+ | {
1681
+ enum: string[];
1682
+ type?: undefined;
1683
+ minLength?: undefined;
1684
+ }
1685
+ | {
1686
+ type: string;
1687
+ minLength: number;
1688
+ enum?: undefined;
1689
+ }
1690
+ )[];
1691
+ };
1692
+ username: {
1693
+ description: string;
1694
+ type: string;
1695
+ };
1696
+ };
1697
+ minLength?: undefined;
1698
+ }
1699
+ )[];
1700
+ };
1701
+ Compress: {
1702
+ type: string;
1703
+ description: string;
1704
+ link: string;
1705
+ };
1706
+ DevMiddleware: {
1707
+ description: string;
1708
+ link: string;
1709
+ type: string;
1710
+ additionalProperties: boolean;
1711
+ };
1712
+ HTTP2: {
1713
+ type: string;
1714
+ description: string;
1715
+ link: string;
1716
+ };
1717
+ HTTPS: {
1718
+ anyOf: (
1719
+ | {
1720
+ type: string;
1721
+ additionalProperties?: undefined;
1722
+ properties?: undefined;
1723
+ }
1724
+ | {
1725
+ type: string;
1726
+ additionalProperties: boolean;
1727
+ properties: {
1728
+ passphrase: {
1729
+ type: string;
1730
+ description: string;
1731
+ };
1732
+ requestCert: {
1733
+ type: string;
1734
+ description: string;
1735
+ };
1736
+ ca: {
1737
+ anyOf: (
1738
+ | {
1739
+ type: string;
1740
+ items: {
1741
+ anyOf: (
1742
+ | {
1743
+ type: string;
1744
+ instanceof?: undefined;
1745
+ }
1746
+ | {
1747
+ instanceof: string;
1748
+ type?: undefined;
1749
+ }
1750
+ )[];
1751
+ };
1752
+ instanceof?: undefined;
1753
+ }
1754
+ | {
1755
+ type: string;
1756
+ items?: undefined;
1757
+ instanceof?: undefined;
1758
+ }
1759
+ | {
1760
+ instanceof: string;
1761
+ type?: undefined;
1762
+ items?: undefined;
1763
+ }
1764
+ )[];
1765
+ description: string;
1766
+ };
1767
+ cacert: {
1768
+ anyOf: (
1769
+ | {
1770
+ type: string;
1771
+ items: {
1772
+ anyOf: (
1773
+ | {
1774
+ type: string;
1775
+ instanceof?: undefined;
1776
+ }
1777
+ | {
1778
+ instanceof: string;
1779
+ type?: undefined;
1780
+ }
1781
+ )[];
1782
+ };
1783
+ instanceof?: undefined;
1784
+ }
1785
+ | {
1786
+ type: string;
1787
+ items?: undefined;
1788
+ instanceof?: undefined;
1789
+ }
1790
+ | {
1791
+ instanceof: string;
1792
+ type?: undefined;
1793
+ items?: undefined;
1794
+ }
1795
+ )[];
1796
+ description: string;
1797
+ };
1798
+ cert: {
1799
+ anyOf: (
1800
+ | {
1801
+ type: string;
1802
+ items: {
1803
+ anyOf: (
1804
+ | {
1805
+ type: string;
1806
+ instanceof?: undefined;
1807
+ }
1808
+ | {
1809
+ instanceof: string;
1810
+ type?: undefined;
1811
+ }
1812
+ )[];
1813
+ };
1814
+ instanceof?: undefined;
1815
+ }
1816
+ | {
1817
+ type: string;
1818
+ /**
1819
+ * @type {Socket[]}
1820
+ */
1821
+ items?: undefined;
1822
+ instanceof?: undefined;
1823
+ }
1824
+ | {
1825
+ instanceof: string;
1826
+ type?: undefined;
1827
+ items?: undefined;
1828
+ }
1829
+ )[];
1830
+ description: string;
1831
+ };
1832
+ crl: {
1833
+ anyOf: (
1834
+ | {
1835
+ type: string;
1836
+ items: {
1837
+ anyOf: (
1838
+ | {
1839
+ type: string;
1840
+ instanceof?: undefined;
1841
+ }
1842
+ | {
1843
+ /**
1844
+ * @private
1845
+ * @returns {StatsOptions}
1846
+ * @constructor
1847
+ */
1848
+ instanceof: string;
1849
+ type?: undefined;
1850
+ }
1851
+ )[];
1852
+ };
1853
+ instanceof?: undefined;
1854
+ }
1855
+ | {
1856
+ type: string;
1857
+ items?: undefined;
1858
+ instanceof?: undefined;
1859
+ }
1860
+ | {
1861
+ instanceof: string;
1862
+ type?: undefined;
1863
+ items?: undefined;
1864
+ }
1865
+ )[];
1866
+ description: string;
1867
+ };
1868
+ key: {
1869
+ anyOf: (
1870
+ | {
1871
+ type: string;
1872
+ items: {
1873
+ anyOf: (
1874
+ | {
1875
+ type: string;
1876
+ instanceof?: undefined;
1877
+ additionalProperties?: undefined;
1878
+ }
1879
+ | {
1880
+ instanceof: string;
1881
+ type?: undefined;
1882
+ additionalProperties?: undefined;
1883
+ }
1884
+ | {
1885
+ type: string;
1886
+ /** @type {NetworkInterfaceInfo[]} */
1887
+ additionalProperties: boolean;
1888
+ instanceof?: undefined;
1889
+ }
1890
+ )[];
1891
+ };
1892
+ instanceof?: undefined;
1893
+ }
1894
+ | {
1895
+ type: string;
1896
+ items?: undefined;
1897
+ instanceof?: undefined;
1898
+ }
1899
+ | {
1900
+ instanceof: string;
1901
+ type?: undefined;
1902
+ items?: undefined;
1903
+ }
1904
+ )[];
1905
+ description: string;
1906
+ };
1907
+ pfx: {
1908
+ anyOf: (
1909
+ | {
1910
+ type: string;
1911
+ items: {
1912
+ anyOf: (
1913
+ | {
1914
+ type: string;
1915
+ instanceof?: undefined;
1916
+ additionalProperties?: undefined;
1917
+ }
1918
+ | {
1919
+ instanceof: string;
1920
+ type?: undefined;
1921
+ additionalProperties?: undefined;
1922
+ }
1923
+ | {
1924
+ type: string;
1925
+ /**
1926
+ * @param {Host} hostname
1927
+ * @returns {Promise<string>}
1928
+ */
1929
+ additionalProperties: boolean;
1930
+ instanceof?: undefined;
1931
+ }
1932
+ )[];
1933
+ };
1934
+ instanceof?: undefined;
1935
+ }
1936
+ | {
1937
+ type: string;
1938
+ items?: undefined;
1939
+ instanceof?: undefined;
1940
+ }
1941
+ | {
1942
+ instanceof: string;
1943
+ type?: undefined;
1944
+ items?: undefined;
1945
+ }
1946
+ )[];
1947
+ description: string;
1948
+ };
1949
+ };
1950
+ }
1951
+ )[];
1952
+ description: string;
1953
+ link: string;
1954
+ };
1955
+ HeaderObject: {
1956
+ type: string;
1957
+ additionalProperties: boolean;
1958
+ properties: {
1959
+ key: {
1960
+ description: string;
1961
+ type: string;
1962
+ };
1963
+ value: {
1964
+ description: string;
1965
+ type: string;
1966
+ };
1967
+ };
1968
+ cli: {
1969
+ exclude: boolean;
1970
+ };
1971
+ };
1972
+ Headers: {
1973
+ anyOf: (
1974
+ | {
1975
+ type: string;
1976
+ items: {
1977
+ $ref: string;
1978
+ };
1979
+ minItems: number;
1980
+ instanceof?: undefined;
1981
+ }
1982
+ | {
1983
+ type: string;
1984
+ items?: undefined;
1985
+ minItems?: undefined;
1986
+ instanceof?: undefined;
1987
+ }
1988
+ | {
1989
+ instanceof: string;
1990
+ type?: undefined;
1991
+ items?: undefined;
1992
+ minItems?: undefined;
1993
+ }
1994
+ )[];
1995
+ description: string;
1996
+ link: string;
1997
+ };
1998
+ HistoryApiFallback: {
1999
+ anyOf: (
2000
+ | {
2001
+ type: string;
2002
+ description?: undefined;
2003
+ link?: undefined;
2004
+ }
2005
+ | {
2006
+ type: string;
2007
+ description: string;
2008
+ link: string;
2009
+ }
2010
+ )[];
2011
+ description: string;
2012
+ link: string;
2013
+ };
2014
+ Host: {
2015
+ description: string;
2016
+ link: string;
2017
+ anyOf: (
2018
+ | {
2019
+ enum: string[];
2020
+ type?: undefined;
2021
+ minLength?: undefined;
2022
+ }
2023
+ | {
2024
+ type: string;
2025
+ minLength: number;
2026
+ enum?: undefined;
2027
+ }
2028
+ )[];
2029
+ };
2030
+ Hot: {
2031
+ anyOf: (
2032
+ | {
2033
+ type: string;
2034
+ enum?: undefined;
2035
+ }
2036
+ | {
2037
+ enum: string[];
2038
+ type?: undefined;
2039
+ }
2040
+ )[];
2041
+ description: string;
2042
+ link: string;
2043
+ };
2044
+ IPC: {
2045
+ anyOf: (
2046
+ | {
2047
+ type: string;
2048
+ minLength: number;
2049
+ enum?: undefined;
2050
+ }
2051
+ | {
2052
+ type: string;
2053
+ enum: boolean[];
2054
+ minLength?: undefined;
2055
+ }
2056
+ )[];
2057
+ description: string;
2058
+ link: string;
2059
+ };
2060
+ LiveReload: {
2061
+ type: string;
2062
+ description: string;
2063
+ /** @type {{ type: WebSocketServerConfiguration["type"], options: NonNullable<WebSocketServerConfiguration["options"]> }} */
2064
+ link: string;
2065
+ };
2066
+ MagicHTML: {
2067
+ type: string;
2068
+ description: string;
2069
+ link: string;
2070
+ };
2071
+ OnAfterSetupMiddleware: {
2072
+ instanceof: string;
2073
+ description: string;
2074
+ link: string;
2075
+ };
2076
+ OnBeforeSetupMiddleware: {
2077
+ instanceof: string;
2078
+ description: string;
2079
+ link: string;
2080
+ };
2081
+ OnListening: {
2082
+ instanceof: string;
2083
+ description: string;
2084
+ link: string;
2085
+ };
2086
+ Open: {
2087
+ anyOf: (
2088
+ | {
2089
+ type: string;
2090
+ items: {
2091
+ anyOf: {
2092
+ $ref: string;
2093
+ }[];
2094
+ };
2095
+ $ref?: undefined;
2096
+ }
2097
+ | {
2098
+ $ref: string;
2099
+ type?: undefined;
2100
+ items?: undefined;
2101
+ }
2102
+ )[];
2103
+ description: string;
2104
+ link: string;
2105
+ };
2106
+ OpenBoolean: {
2107
+ type: string;
2108
+ };
2109
+ OpenObject: {
2110
+ type: string;
2111
+ additionalProperties: boolean;
2112
+ properties: {
2113
+ target: {
2114
+ anyOf: (
2115
+ | {
2116
+ type: string;
2117
+ items: {
2118
+ type: string;
2119
+ };
2120
+ }
2121
+ | {
2122
+ type: string;
2123
+ items?: undefined;
2124
+ }
2125
+ )[];
2126
+ description: string;
2127
+ };
2128
+ app: {
2129
+ anyOf: (
2130
+ | {
2131
+ type: string;
2132
+ additionalProperties: boolean;
2133
+ properties: {
2134
+ name: {
2135
+ anyOf: (
2136
+ | {
2137
+ type: string;
2138
+ items: {
2139
+ type: string;
2140
+ minLength: number;
2141
+ };
2142
+ minItems: number;
2143
+ minLength?: undefined;
2144
+ }
2145
+ | {
2146
+ type: string;
2147
+ minLength: number;
2148
+ items?: undefined;
2149
+ minItems?: undefined;
2150
+ }
2151
+ )[];
2152
+ };
2153
+ arguments: {
2154
+ items: {
2155
+ type: string;
2156
+ minLength: number;
2157
+ };
2158
+ };
2159
+ };
2160
+ minLength?: undefined;
2161
+ description?: undefined;
2162
+ }
2163
+ | {
2164
+ type: string;
2165
+ minLength: number;
2166
+ description: string;
2167
+ additionalProperties?: undefined;
2168
+ properties?: undefined;
2169
+ }
2170
+ )[];
2171
+ description: string;
2172
+ };
2173
+ };
2174
+ };
2175
+ OpenString: {
2176
+ type: string;
2177
+ minLength: number;
2178
+ };
2179
+ Port: {
2180
+ anyOf: (
2181
+ | {
2182
+ type: string;
2183
+ minimum: number;
2184
+ maximum: number;
2185
+ minLength?: undefined;
2186
+ enum?: undefined;
2187
+ }
2188
+ | {
2189
+ type: string;
2190
+ minLength: number;
2191
+ minimum?: undefined;
2192
+ maximum?: undefined;
2193
+ enum?: undefined;
2194
+ }
2195
+ | {
2196
+ enum: string[];
2197
+ type?: undefined;
2198
+ minimum?: undefined;
2199
+ maximum?: undefined;
2200
+ minLength?: undefined;
2201
+ }
2202
+ )[];
2203
+ description: string;
2204
+ link: string;
2205
+ };
2206
+ Proxy: {
2207
+ anyOf: (
2208
+ | {
2209
+ type: string;
2210
+ items?: undefined;
2211
+ }
2212
+ | {
2213
+ type: string;
2214
+ items: {
2215
+ anyOf: (
2216
+ | {
2217
+ type: string;
2218
+ instanceof?: undefined;
2219
+ }
2220
+ | {
2221
+ instanceof: string;
2222
+ type?: undefined;
2223
+ }
2224
+ )[];
2225
+ };
2226
+ }
2227
+ )[];
2228
+ description: string;
2229
+ link: string;
2230
+ };
2231
+ Server: {
2232
+ anyOf: {
2233
+ $ref: string;
2234
+ }[];
2235
+ link: string;
2236
+ description: string;
2237
+ };
2238
+ ServerType: {
2239
+ enum: string[];
2240
+ };
2241
+ ServerEnum: {
2242
+ enum: string[];
2243
+ cli: {
2244
+ exclude: boolean;
2245
+ };
2246
+ };
2247
+ ServerString: {
2248
+ type: string;
2249
+ minLength: number;
2250
+ cli: {
2251
+ exclude: boolean;
2252
+ };
2253
+ };
2254
+ ServerObject: {
2255
+ type: string;
2256
+ properties: {
2257
+ type: {
2258
+ anyOf: {
2259
+ $ref: string;
2260
+ }[];
2261
+ };
2262
+ options: {
2263
+ $ref: string;
2264
+ };
2265
+ };
2266
+ additionalProperties: boolean;
2267
+ };
2268
+ /** @type {any} */
2269
+ ServerOptions: {
2270
+ type: string;
2271
+ additionalProperties: boolean;
2272
+ properties: {
2273
+ passphrase: {
2274
+ type: string;
2275
+ description: string;
2276
+ };
2277
+ requestCert: {
2278
+ type: string;
2279
+ description: string;
2280
+ };
2281
+ ca: {
2282
+ anyOf: (
2283
+ | {
2284
+ type: string;
2285
+ items: {
2286
+ anyOf: (
2287
+ | {
2288
+ type: string;
2289
+ instanceof?: undefined;
2290
+ }
2291
+ | {
2292
+ instanceof: string;
2293
+ type?: undefined;
2294
+ }
2295
+ )[];
2296
+ };
2297
+ /**
2298
+ * @private
2299
+ * @returns {Compiler["options"]}
2300
+ */
2301
+ instanceof?: undefined;
2302
+ }
2303
+ | {
2304
+ type: string;
2305
+ items?: undefined;
2306
+ instanceof?: undefined;
2307
+ }
2308
+ | {
2309
+ instanceof: string;
2310
+ type?: undefined;
2311
+ items?: undefined;
2312
+ }
2313
+ )[];
2314
+ description: string;
2315
+ };
2316
+ cacert: {
2317
+ anyOf: (
2318
+ | {
2319
+ type: string;
2320
+ items: {
2321
+ anyOf: (
2322
+ | {
2323
+ type: string;
2324
+ instanceof?: undefined;
2325
+ }
2326
+ | {
2327
+ instanceof: string;
2328
+ type?: undefined;
2329
+ }
2330
+ )[];
2331
+ };
2332
+ instanceof?: undefined;
2333
+ }
2334
+ | {
2335
+ type: string;
2336
+ items?: undefined;
2337
+ instanceof?: undefined;
2338
+ }
2339
+ | {
2340
+ instanceof: string;
2341
+ type?: undefined;
2342
+ items?: undefined;
2343
+ }
2344
+ )[];
2345
+ description: string;
2346
+ };
2347
+ cert: {
2348
+ anyOf: (
2349
+ | {
2350
+ type: string;
2351
+ items: {
2352
+ anyOf: (
2353
+ | {
2354
+ type: string;
2355
+ instanceof?: undefined;
2356
+ }
2357
+ | {
2358
+ instanceof: string;
2359
+ type?: undefined;
2360
+ }
2361
+ )[];
2362
+ };
2363
+ instanceof?: undefined;
2364
+ }
2365
+ | {
2366
+ type: string;
2367
+ items?: undefined;
2368
+ instanceof?: undefined;
2369
+ }
2370
+ | {
2371
+ instanceof: string;
2372
+ type?: undefined;
2373
+ items?: undefined;
2374
+ }
2375
+ )[];
2376
+ description: string;
2377
+ };
2378
+ crl: {
2379
+ anyOf: (
2380
+ | {
2381
+ type: string;
2382
+ items: {
2383
+ anyOf: (
2384
+ | {
2385
+ type: string;
2386
+ instanceof?: undefined;
2387
+ }
2388
+ | {
2389
+ instanceof: string;
2390
+ type?: undefined;
2391
+ }
2392
+ )[];
2393
+ };
2394
+ instanceof?: undefined;
2395
+ }
2396
+ | {
2397
+ type: string;
2398
+ items?: undefined;
2399
+ instanceof?: undefined;
2400
+ }
2401
+ | {
2402
+ instanceof: string;
2403
+ type?: undefined;
2404
+ items?: undefined;
2405
+ }
2406
+ )[];
2407
+ description: string;
2408
+ };
2409
+ key: {
2410
+ anyOf: (
2411
+ | {
2412
+ type: string;
2413
+ items: {
2414
+ anyOf: (
2415
+ | {
2416
+ type: string;
2417
+ instanceof?: undefined;
2418
+ additionalProperties?: undefined;
2419
+ }
2420
+ | {
2421
+ instanceof: string;
2422
+ type?: undefined;
2423
+ additionalProperties?: undefined;
2424
+ }
2425
+ | {
2426
+ type: string;
2427
+ additionalProperties: boolean;
2428
+ instanceof?: undefined;
2429
+ }
2430
+ )[];
2431
+ };
2432
+ instanceof?: undefined;
2433
+ }
2434
+ | {
2435
+ type: string;
2436
+ items?: undefined;
2437
+ instanceof?: undefined;
2438
+ }
2439
+ | {
2440
+ instanceof: string;
2441
+ type?: undefined;
2442
+ items?: undefined;
2443
+ }
2444
+ )[];
2445
+ description: string;
2446
+ };
2447
+ pfx: {
2448
+ anyOf: (
2449
+ | {
2450
+ type: string;
2451
+ items: {
2452
+ anyOf: (
2453
+ | {
2454
+ type: string;
2455
+ instanceof?: undefined;
2456
+ additionalProperties?: undefined;
2457
+ }
2458
+ | {
2459
+ instanceof: string;
2460
+ type?: undefined;
2461
+ additionalProperties?: undefined;
2462
+ }
2463
+ | {
2464
+ type: string;
2465
+ additionalProperties: boolean;
2466
+ instanceof?: undefined;
2467
+ }
2468
+ )[];
2469
+ };
2470
+ instanceof?: undefined;
2471
+ }
2472
+ | {
2473
+ type: string;
2474
+ items?: undefined;
2475
+ instanceof?: undefined;
2476
+ }
2477
+ | {
2478
+ instanceof: string;
2479
+ type?: undefined;
2480
+ items?: undefined;
2481
+ }
2482
+ )[];
2483
+ description: string;
2484
+ };
2485
+ };
2486
+ };
2487
+ SetupExitSignals: {
2488
+ type: string;
2489
+ description: string;
2490
+ link: string;
2491
+ cli: {
2492
+ exclude: boolean;
2493
+ };
2494
+ };
2495
+ SetupMiddlewares: {
2496
+ instanceof: string;
2497
+ description: string;
2498
+ link: string;
2499
+ };
2500
+ Static: {
2501
+ anyOf: (
2502
+ | {
2503
+ type: string;
2504
+ items: {
2505
+ anyOf: {
2506
+ $ref: string;
2507
+ }[];
2508
+ };
2509
+ $ref?: undefined;
2510
+ }
2511
+ | {
2512
+ type: string;
2513
+ items?: undefined;
2514
+ $ref?: undefined;
2515
+ }
2516
+ | {
2517
+ $ref: string;
2518
+ type?: undefined;
2519
+ items?: undefined;
2520
+ }
2521
+ )[];
2522
+ description: string;
2523
+ link: string;
2524
+ };
2525
+ StaticObject: {
2526
+ type: string;
2527
+ additionalProperties: boolean;
2528
+ properties: {
2529
+ directory: {
2530
+ type: string;
2531
+ minLength: number;
2532
+ description: string;
2533
+ link: string;
2534
+ };
2535
+ staticOptions: {
2536
+ type: string;
2537
+ link: string;
2538
+ additionalProperties: boolean;
2539
+ };
2540
+ publicPath: {
2541
+ anyOf: (
2542
+ | {
2543
+ type: string;
2544
+ items: {
2545
+ type: string;
2546
+ };
2547
+ minItems: number;
2548
+ }
2549
+ | {
2550
+ type: string;
2551
+ items?: undefined;
2552
+ minItems?: undefined;
2553
+ }
2554
+ )[];
2555
+ description: string;
2556
+ link: string;
2557
+ };
2558
+ serveIndex: {
2559
+ anyOf: (
2560
+ | {
2561
+ type: string;
2562
+ additionalProperties?: undefined;
2563
+ }
2564
+ | {
2565
+ type: string;
2566
+ additionalProperties: boolean;
2567
+ }
2568
+ )[];
2569
+ description: string;
2570
+ link: string;
2571
+ };
2572
+ watch: {
2573
+ anyOf: (
2574
+ | {
2575
+ type: string;
2576
+ description?: undefined;
2577
+ link?: undefined;
2578
+ }
2579
+ | {
2580
+ type: string;
2581
+ description: string;
2582
+ link: string;
2583
+ }
2584
+ )[];
2585
+ description: string;
2586
+ link: string;
2587
+ };
2588
+ };
2589
+ };
2590
+ StaticString: {
2591
+ type: string;
2592
+ minLength: number;
2593
+ };
2594
+ WatchFiles: {
2595
+ anyOf: (
2596
+ | {
2597
+ type: string;
2598
+ items: {
2599
+ anyOf: {
2600
+ $ref: string;
2601
+ }[];
2602
+ };
2603
+ $ref?: undefined;
2604
+ }
2605
+ | {
2606
+ $ref: string;
2607
+ type?: undefined;
2608
+ items?: undefined;
2609
+ }
2610
+ )[];
2611
+ description: string;
2612
+ link: string;
2613
+ };
2614
+ WatchFilesObject: {
2615
+ cli: {
2616
+ exclude: boolean;
2617
+ };
2618
+ type: string;
2619
+ properties: {
2620
+ paths: {
2621
+ anyOf: (
2622
+ | {
2623
+ type: string;
2624
+ items: {
2625
+ type: string;
2626
+ minLength: number;
2627
+ };
2628
+ minLength?: undefined;
2629
+ }
2630
+ | {
2631
+ type: string;
2632
+ minLength: number;
2633
+ items?: undefined;
2634
+ }
2635
+ )[];
2636
+ description: string;
2637
+ };
2638
+ options: {
2639
+ type: string;
2640
+ description: string;
2641
+ link: string;
2642
+ additionalProperties: boolean;
2643
+ };
2644
+ };
2645
+ additionalProperties: boolean;
2646
+ };
2647
+ WatchFilesString: {
2648
+ type: string;
2649
+ minLength: number;
2650
+ };
2651
+ WebSocketServer: {
2652
+ anyOf: {
2653
+ $ref: string;
2654
+ }[];
2655
+ description: string;
2656
+ link: string;
2657
+ };
2658
+ WebSocketServerType: {
2659
+ enum: string[];
2660
+ };
2661
+ WebSocketServerEnum: {
2662
+ anyOf: (
2663
+ | {
2664
+ enum: boolean[];
2665
+ $ref?: undefined;
2666
+ }
2667
+ | {
2668
+ $ref: string;
2669
+ enum?: undefined;
2670
+ }
2671
+ )[];
2672
+ description: string;
2673
+ };
2674
+ WebSocketServerFunction: {
2675
+ instanceof: string;
2676
+ };
2677
+ WebSocketServerObject: {
2678
+ type: string;
2679
+ properties: {
2680
+ type: {
2681
+ anyOf: {
2682
+ $ref: string;
2683
+ }[];
2684
+ };
2685
+ options: {
2686
+ type: string;
2687
+ additionalProperties: boolean;
2688
+ cli: {
2689
+ exclude: boolean;
2690
+ };
2691
+ };
2692
+ };
2693
+ additionalProperties: boolean;
2694
+ };
2695
+ WebSocketServerString: {
2696
+ type: string;
2697
+ minLength: number;
2698
+ };
2699
+ };
2700
+ additionalProperties: boolean;
2701
+ properties: {
2702
+ allowedHosts: {
2703
+ $ref: string;
2704
+ };
2705
+ bonjour: {
2706
+ $ref: string;
2707
+ };
2708
+ client: {
2709
+ $ref: string;
2710
+ };
2711
+ compress: {
2712
+ $ref: string;
2713
+ };
2714
+ devMiddleware: {
2715
+ $ref: string;
2716
+ };
2717
+ headers: {
2718
+ $ref: string;
2719
+ };
2720
+ historyApiFallback: {
2721
+ $ref: string;
2722
+ };
2723
+ host: {
2724
+ $ref: string;
2725
+ };
2726
+ hot: {
2727
+ $ref: string;
2728
+ };
2729
+ http2: {
2730
+ $ref: string;
2731
+ };
2732
+ https: {
2733
+ $ref: string;
2734
+ };
2735
+ ipc: {
2736
+ $ref: string;
2737
+ };
2738
+ liveReload: {
2739
+ $ref: string;
2740
+ };
2741
+ magicHtml: {
2742
+ $ref: string;
2743
+ };
2744
+ onAfterSetupMiddleware: {
2745
+ $ref: string;
2746
+ };
2747
+ onBeforeSetupMiddleware: {
2748
+ $ref: string;
2749
+ };
2750
+ onListening: {
2751
+ $ref: string;
2752
+ };
2753
+ open: {
2754
+ $ref: string;
2755
+ };
2756
+ port: {
2757
+ $ref: string /** @type {Array<keyof ServerOptions>} */;
2758
+ };
2759
+ proxy: {
2760
+ $ref: string;
2761
+ };
2762
+ server: {
2763
+ $ref: string;
2764
+ };
2765
+ setupExitSignals: {
2766
+ $ref: string;
2767
+ };
2768
+ setupMiddlewares: {
2769
+ $ref: string;
2770
+ };
2771
+ static: {
2772
+ $ref: string;
2773
+ };
2774
+ watchFiles: {
2775
+ $ref: string;
2776
+ };
2777
+ webSocketServer: {
2778
+ $ref: string;
2779
+ };
2780
+ };
2781
+ };
2782
+ /**
2783
+ * @param {string} URL
2784
+ * @returns {boolean}
2785
+ */
2786
+ static isAbsoluteURL(URL: string): boolean;
2787
+ /**
2788
+ * @param {string} gateway
2789
+ * @returns {string | undefined}
2790
+ */
2791
+ static findIp(gateway: string): string | undefined;
2792
+ /**
2793
+ * @param {"v4" | "v6"} family
2794
+ * @returns {Promise<string | undefined>}
2795
+ */
2796
+ static internalIP(family: "v4" | "v6"): Promise<string | undefined>;
2797
+ /**
2798
+ * @param {"v4" | "v6"} family
2799
+ * @returns {string | undefined}
2800
+ */
2801
+ static internalIPSync(family: "v4" | "v6"): string | undefined;
2802
+ /**
2803
+ * @param {Host} hostname
2804
+ * @returns {Promise<string>}
2805
+ */
2806
+ static getHostname(hostname: Host): Promise<string>;
2807
+ /**
2808
+ * @param {Port} port
2809
+ * @returns {Promise<number | string>}
2810
+ */
2811
+ static getFreePort(port: Port): Promise<number | string>;
2812
+ /**
2813
+ * @returns {string}
2814
+ */
2815
+ static findCacheDir(): string;
2816
+ /**
2817
+ * @param {Configuration | Compiler | MultiCompiler} options
2818
+ * @param {Compiler | MultiCompiler | Configuration} compiler
2819
+ */
2820
+ constructor(
2821
+ options:
2822
+ | import("webpack").Compiler
2823
+ | import("webpack").MultiCompiler
2824
+ | Configuration
2825
+ | undefined,
2826
+ compiler: Compiler | MultiCompiler | Configuration
2827
+ );
2828
+ compiler: import("webpack").Compiler | import("webpack").MultiCompiler;
2829
+ /**
2830
+ * @type {ReturnType<Compiler["getInfrastructureLogger"]>}
2831
+ * */
2832
+ logger: ReturnType<Compiler["getInfrastructureLogger"]>;
2833
+ options: Configuration;
2834
+ /**
2835
+ * @type {FSWatcher[]}
2836
+ */
2837
+ staticWatchers: FSWatcher[];
2838
+ /**
2839
+ * @private
2840
+ * @type {{ name: string | symbol, listener: (...args: any[]) => void}[] }}
2841
+ */
2842
+ private listeners;
2843
+ /**
2844
+ * @private
2845
+ * @type {RequestHandler[]}
2846
+ */
2847
+ private webSocketProxies;
2848
+ /**
2849
+ * @type {Socket[]}
2850
+ */
2851
+ sockets: Socket[];
2852
+ /**
2853
+ * @private
2854
+ * @type {string | undefined}
2855
+ */
2856
+ private currentHash;
2857
+ /**
2858
+ * @private
2859
+ * @param {Compiler} compiler
2860
+ */
2861
+ private addAdditionalEntries;
2862
+ /**
2863
+ * @private
2864
+ * @returns {Compiler["options"]}
2865
+ */
2866
+ private getCompilerOptions;
2867
+ /**
2868
+ * @private
2869
+ * @returns {Promise<void>}
2870
+ */
2871
+ private normalizeOptions;
2872
+ /**
2873
+ * @private
2874
+ * @returns {string}
2875
+ */
2876
+ private getClientTransport;
2877
+ /**
2878
+ * @private
2879
+ * @returns {string}
2880
+ */
2881
+ private getServerTransport;
2882
+ /**
2883
+ * @private
2884
+ * @returns {void}
2885
+ */
2886
+ private setupProgressPlugin;
2887
+ /**
2888
+ * @private
2889
+ * @returns {Promise<void>}
2890
+ */
2891
+ private initialize;
2892
+ /**
2893
+ * @private
2894
+ * @returns {void}
2895
+ */
2896
+ private setupApp;
2897
+ /** @type {import("express").Application | undefined}*/
2898
+ app: import("express").Application | undefined;
2899
+ /**
2900
+ * @private
2901
+ * @param {Stats | MultiStats} statsObj
2902
+ * @returns {StatsCompilation}
2903
+ */
2904
+ private getStats;
2905
+ /**
2906
+ * @private
2907
+ * @returns {void}
2908
+ */
2909
+ private setupHooks;
2910
+ /**
2911
+ * @private
2912
+ * @type {Stats | MultiStats}
2913
+ */
2914
+ private stats;
2915
+ /**
2916
+ * @private
2917
+ * @returns {void}
2918
+ */
2919
+ private setupHostHeaderCheck;
2920
+ /**
2921
+ * @private
2922
+ * @returns {void}
2923
+ */
2924
+ private setupDevMiddleware;
2925
+ middleware:
2926
+ | import("webpack-dev-middleware").API<
2927
+ express.Request<
2928
+ import("express-serve-static-core").ParamsDictionary,
2929
+ any,
2930
+ any,
2931
+ qs.ParsedQs,
2932
+ Record<string, any>
2933
+ >,
2934
+ express.Response<any, Record<string, any>>
2935
+ >
2936
+ | null
2937
+ | undefined;
2938
+ /**
2939
+ * @private
2940
+ * @returns {void}
2941
+ */
2942
+ private setupBuiltInRoutes;
2943
+ /**
2944
+ * @private
2945
+ * @returns {void}
2946
+ */
2947
+ private setupWatchStaticFiles;
2948
+ /**
2949
+ * @private
2950
+ * @returns {void}
2951
+ */
2952
+ private setupWatchFiles;
2953
+ /**
2954
+ * @private
2955
+ * @returns {void}
2956
+ */
2957
+ private setupMiddlewares;
2958
+ /**
2959
+ * @private
2960
+ * @returns {void}
2961
+ */
2962
+ private createServer;
2963
+ /** @type {import("http").Server | undefined | null} */
2964
+ server: import("http").Server | undefined | null;
2965
+ /**
2966
+ * @private
2967
+ * @returns {void}
2968
+ */
2969
+ private createWebSocketServer;
2970
+ /** @type {WebSocketServerImplementation | undefined | null} */
2971
+ webSocketServer: WebSocketServerImplementation | undefined | null;
2972
+ /**
2973
+ * @private
2974
+ * @param {string} defaultOpenTarget
2975
+ * @returns {void}
2976
+ */
2977
+ private openBrowser;
2978
+ /**
2979
+ * @private
2980
+ * @returns {void}
2981
+ */
2982
+ private runBonjour;
2983
+ /**
2984
+ * @private
2985
+ * @type {import("bonjour").Bonjour | undefined}
2986
+ */
2987
+ private bonjour;
2988
+ /**
2989
+ * @private
2990
+ * @returns {void}
2991
+ */
2992
+ private stopBonjour;
2993
+ /**
2994
+ * @private
2995
+ * @returns {void}
2996
+ */
2997
+ private logStatus;
2998
+ /**
2999
+ * @private
3000
+ * @param {Request} req
3001
+ * @param {Response} res
3002
+ * @param {NextFunction} next
3003
+ */
3004
+ private setHeaders;
3005
+ /**
3006
+ * @private
3007
+ * @param {{ [key: string]: string | undefined }} headers
3008
+ * @param {string} headerToCheck
3009
+ * @returns {boolean}
3010
+ */
3011
+ private checkHeader;
3012
+ /**
3013
+ * @param {ClientConnection[]} clients
3014
+ * @param {string} type
3015
+ * @param {any} [data]
3016
+ * @param {any} [params]
3017
+ */
3018
+ sendMessage(
3019
+ clients: ClientConnection[],
3020
+ type: string,
3021
+ data?: any,
3022
+ params?: any
3023
+ ): void;
3024
+ /**
3025
+ * @private
3026
+ * @param {Request} req
3027
+ * @param {Response} res
3028
+ * @param {NextFunction} next
3029
+ * @returns {void}
3030
+ */
3031
+ private serveMagicHtml;
3032
+ /**
3033
+ * @private
3034
+ * @param {ClientConnection[]} clients
3035
+ * @param {StatsCompilation} stats
3036
+ * @param {boolean} [force]
3037
+ */
3038
+ private sendStats;
3039
+ /**
3040
+ * @param {string | string[]} watchPath
3041
+ * @param {WatchOptions} [watchOptions]
3042
+ */
3043
+ watchFiles(
3044
+ watchPath: string | string[],
3045
+ watchOptions?: import("chokidar").WatchOptions | undefined
3046
+ ): void;
3047
+ /**
3048
+ * @param {import("webpack-dev-middleware").Callback} [callback]
3049
+ */
3050
+ invalidate(
3051
+ callback?: import("webpack-dev-middleware").Callback | undefined
3052
+ ): void;
3053
+ /**
3054
+ * @returns {Promise<void>}
3055
+ */
3056
+ start(): Promise<void>;
3057
+ /**
3058
+ * @param {(err?: Error) => void} [callback]
3059
+ */
3060
+ startCallback(
3061
+ callback?: ((err?: Error | undefined) => void) | undefined
3062
+ ): void;
3063
+ /**
3064
+ * @returns {Promise<void>}
3065
+ */
3066
+ stop(): Promise<void>;
3067
+ /**
3068
+ * @param {(err?: Error) => void} [callback]
3069
+ */
3070
+ stopCallback(
3071
+ callback?: ((err?: Error | undefined) => void) | undefined
3072
+ ): void;
3073
+ /**
3074
+ * @param {Port} port
3075
+ * @param {Host} hostname
3076
+ * @param {(err?: Error) => void} fn
3077
+ * @returns {void}
3078
+ */
3079
+ listen(
3080
+ port: Port,
3081
+ hostname: Host,
3082
+ fn: (err?: Error | undefined) => void
3083
+ ): void;
3084
+ /**
3085
+ * @param {(err?: Error) => void} [callback]
3086
+ * @returns {void}
3087
+ */
3088
+ close(callback?: ((err?: Error | undefined) => void) | undefined): void;
3089
+ }
3090
+ declare namespace Server {
3091
+ export {
3092
+ DEFAULT_STATS,
3093
+ Schema,
3094
+ Compiler,
3095
+ MultiCompiler,
3096
+ WebpackConfiguration,
3097
+ StatsOptions,
3098
+ StatsCompilation,
3099
+ Stats,
3100
+ MultiStats,
3101
+ NetworkInterfaceInfo,
3102
+ Request,
3103
+ Response,
3104
+ NextFunction,
3105
+ ExpressRequestHandler,
3106
+ ExpressErrorRequestHandler,
3107
+ WatchOptions,
3108
+ FSWatcher,
3109
+ ConnectHistoryApiFallbackOptions,
3110
+ Bonjour,
3111
+ BonjourOptions,
3112
+ RequestHandler,
3113
+ HttpProxyMiddlewareOptions,
3114
+ HttpProxyMiddlewareOptionsFilter,
3115
+ ServeIndexOptions,
3116
+ ServeStaticOptions,
3117
+ IPv4,
3118
+ IPv6,
3119
+ Socket,
3120
+ IncomingMessage,
3121
+ OpenOptions,
3122
+ ServerOptions,
3123
+ DevMiddlewareOptions,
3124
+ DevMiddlewareContext,
3125
+ Host,
3126
+ Port,
3127
+ WatchFiles,
3128
+ Static,
3129
+ NormalizedStatic,
3130
+ ServerConfiguration,
3131
+ WebSocketServerConfiguration,
3132
+ ClientConnection,
3133
+ WebSocketServer,
3134
+ WebSocketServerImplementation,
3135
+ ProxyConfigMap,
3136
+ ProxyArray,
3137
+ ByPass,
3138
+ ProxyConfigArray,
3139
+ OpenApp,
3140
+ Open,
3141
+ NormalizedOpen,
3142
+ WebSocketURL,
3143
+ ClientConfiguration,
3144
+ Headers,
3145
+ Middleware,
3146
+ Configuration,
3147
+ };
3148
+ }
3149
+ type Compiler = import("webpack").Compiler;
3150
+ type Configuration = {
3151
+ ipc?: string | boolean | undefined;
3152
+ host?: string | undefined;
3153
+ port?: Port | undefined;
3154
+ hot?: boolean | "only" | undefined;
3155
+ liveReload?: boolean | undefined;
3156
+ devMiddleware?:
3157
+ | DevMiddlewareOptions<
3158
+ express.Request<
3159
+ import("express-serve-static-core").ParamsDictionary,
3160
+ any,
3161
+ any,
3162
+ qs.ParsedQs,
3163
+ Record<string, any>
3164
+ >,
3165
+ express.Response<any, Record<string, any>>
3166
+ >
3167
+ | undefined;
3168
+ compress?: boolean | undefined;
3169
+ magicHtml?: boolean | undefined;
3170
+ allowedHosts?: string | string[] | undefined;
3171
+ historyApiFallback?:
3172
+ | boolean
3173
+ | import("connect-history-api-fallback").Options
3174
+ | undefined;
3175
+ setupExitSignals?: boolean | undefined;
3176
+ bonjour?: boolean | import("bonjour").BonjourOptions | undefined;
3177
+ watchFiles?:
3178
+ | string
3179
+ | string[]
3180
+ | WatchFiles
3181
+ | (string | WatchFiles)[]
3182
+ | undefined;
3183
+ static?: string | boolean | Static | (string | Static)[] | undefined;
3184
+ https?: boolean | ServerOptions | undefined;
3185
+ http2?: boolean | undefined;
3186
+ server?: string | ServerConfiguration | undefined;
3187
+ webSocketServer?: string | boolean | WebSocketServerConfiguration | undefined;
3188
+ proxy?: ProxyConfigMap | ProxyConfigArray | ProxyArray | undefined;
3189
+ open?: string | boolean | Open | (string | Open)[] | undefined;
3190
+ client?: boolean | ClientConfiguration | undefined;
3191
+ headers?:
3192
+ | Headers
3193
+ | ((
3194
+ req: Request,
3195
+ res: Response,
3196
+ context: DevMiddlewareContext<Request, Response>
3197
+ ) => Headers)
3198
+ | undefined;
3199
+ onAfterSetupMiddleware?: ((devServer: Server) => void) | undefined;
3200
+ onBeforeSetupMiddleware?: ((devServer: Server) => void) | undefined;
3201
+ onListening?: ((devServer: Server) => void) | undefined;
3202
+ setupMiddlewares?:
3203
+ | ((middlewares: Middleware[], devServer: Server) => Middleware[])
3204
+ | undefined;
3205
+ };
3206
+ type FSWatcher = import("chokidar").FSWatcher;
3207
+ type Socket = import("net").Socket;
3208
+ import express = require("express");
3209
+ type WebSocketServerImplementation = {
3210
+ implementation: WebSocketServer;
3211
+ clients: ClientConnection[];
3212
+ };
3213
+ type ClientConnection = (
3214
+ | import("ws").WebSocket
3215
+ | (import("sockjs").Connection & {
3216
+ send: import("ws").WebSocket["send"];
3217
+ terminate: import("ws").WebSocket["terminate"];
3218
+ ping: import("ws").WebSocket["ping"];
3219
+ })
3220
+ ) & {
3221
+ isAlive?: boolean;
3222
+ };
3223
+ type Port = number | string | "auto";
3224
+ type Host = "local-ip" | "local-ipv4" | "local-ipv6" | string;
3225
+ type MultiCompiler = import("webpack").MultiCompiler;
3226
+ declare class DEFAULT_STATS {
3227
+ private constructor();
3228
+ }
3229
+ type Schema = import("schema-utils/declarations/validate").Schema;
3230
+ type WebpackConfiguration = import("webpack").Configuration;
3231
+ type StatsOptions = import("webpack").StatsOptions;
3232
+ type StatsCompilation = import("webpack").StatsCompilation;
3233
+ type Stats = import("webpack").Stats;
3234
+ type MultiStats = import("webpack").MultiStats;
3235
+ type NetworkInterfaceInfo = import("os").NetworkInterfaceInfo;
3236
+ type Request = import("express").Request;
3237
+ type Response = import("express").Response;
3238
+ type NextFunction = import("express").NextFunction;
3239
+ type ExpressRequestHandler = import("express").RequestHandler;
3240
+ type ExpressErrorRequestHandler = import("express").ErrorRequestHandler;
3241
+ type WatchOptions = import("chokidar").WatchOptions;
3242
+ type ConnectHistoryApiFallbackOptions =
3243
+ import("connect-history-api-fallback").Options;
3244
+ type Bonjour = import("bonjour").Bonjour;
3245
+ type BonjourOptions = import("bonjour").BonjourOptions;
3246
+ type RequestHandler = import("http-proxy-middleware").RequestHandler;
3247
+ type HttpProxyMiddlewareOptions = import("http-proxy-middleware").Options;
3248
+ type HttpProxyMiddlewareOptionsFilter = import("http-proxy-middleware").Filter;
3249
+ type ServeIndexOptions = import("serve-index").Options;
3250
+ type ServeStaticOptions = import("serve-static").ServeStaticOptions;
3251
+ type IPv4 = import("ipaddr.js").IPv4;
3252
+ type IPv6 = import("ipaddr.js").IPv6;
3253
+ type IncomingMessage = import("http").IncomingMessage;
3254
+ type OpenOptions = import("open").Options;
3255
+ type ServerOptions = import("https").ServerOptions & {
3256
+ spdy?: {
3257
+ plain?: boolean | undefined;
3258
+ ssl?: boolean | undefined;
3259
+ "x-forwarded-for"?: string | undefined;
3260
+ protocol?: string | undefined;
3261
+ protocols?: string[] | undefined;
3262
+ };
3263
+ };
3264
+ type DevMiddlewareOptions<Request_1, Response_1> =
3265
+ import("webpack-dev-middleware").Options<Request_1, Response_1>;
3266
+ type DevMiddlewareContext<Request_1, Response_1> =
3267
+ import("webpack-dev-middleware").Context<Request_1, Response_1>;
3268
+ type WatchFiles = {
3269
+ paths: string | string[];
3270
+ options?:
3271
+ | (import("chokidar").WatchOptions & {
3272
+ aggregateTimeout?: number | undefined;
3273
+ ignored?: string | RegExp | string[] | undefined;
3274
+ poll?: number | boolean | undefined;
3275
+ })
3276
+ | undefined;
3277
+ };
3278
+ type Static = {
3279
+ directory?: string | undefined;
3280
+ publicPath?: string | string[] | undefined;
3281
+ serveIndex?: boolean | import("serve-index").Options | undefined;
3282
+ staticOptions?:
3283
+ | import("serve-static").ServeStaticOptions<import("http").ServerResponse>
3284
+ | undefined;
3285
+ watch?:
3286
+ | boolean
3287
+ | (import("chokidar").WatchOptions & {
3288
+ aggregateTimeout?: number | undefined;
3289
+ ignored?: string | RegExp | string[] | undefined;
3290
+ poll?: number | boolean | undefined;
3291
+ })
3292
+ | undefined;
3293
+ };
3294
+ type NormalizedStatic = {
3295
+ directory: string;
3296
+ publicPath: string[];
3297
+ serveIndex: false | ServeIndexOptions;
3298
+ staticOptions: ServeStaticOptions;
3299
+ watch: false | WatchOptions;
3300
+ };
3301
+ type ServerConfiguration = {
3302
+ type?: string | undefined;
3303
+ options?: ServerOptions | undefined;
3304
+ };
3305
+ type WebSocketServerConfiguration = {
3306
+ type?: string | Function | undefined;
3307
+ options?: Record<string, any> | undefined;
3308
+ };
3309
+ type WebSocketServer =
3310
+ | import("ws").WebSocketServer
3311
+ | (import("sockjs").Server & {
3312
+ close: import("ws").WebSocketServer["close"];
3313
+ });
3314
+ type ProxyConfigMap = {
3315
+ [url: string]: string | import("http-proxy-middleware").Options;
3316
+ };
3317
+ type ProxyArray = HttpProxyMiddlewareOptions[];
3318
+ type ByPass = (
3319
+ req: Request,
3320
+ res: Response,
3321
+ proxyConfig: ProxyConfigArray
3322
+ ) => any;
3323
+ type ProxyConfigArray = {
3324
+ path?: string | string[] | undefined;
3325
+ context?: string | string[] | HttpProxyMiddlewareOptionsFilter | undefined;
3326
+ } & HttpProxyMiddlewareOptions &
3327
+ ByPass;
3328
+ type OpenApp = {
3329
+ name?: string | undefined;
3330
+ arguments?: string[] | undefined;
3331
+ };
3332
+ type Open = {
3333
+ app?: string | string[] | OpenApp | undefined;
3334
+ target?: string | string[] | undefined;
3335
+ };
3336
+ type NormalizedOpen = {
3337
+ target: string;
3338
+ options: import("open").Options;
3339
+ };
3340
+ type WebSocketURL = {
3341
+ hostname?: string | undefined;
3342
+ password?: string | undefined;
3343
+ pathname?: string | undefined;
3344
+ port?: string | number | undefined;
3345
+ protocol?: string | undefined;
3346
+ username?: string | undefined;
3347
+ };
3348
+ type ClientConfiguration = {
3349
+ logging?: "none" | "error" | "warn" | "info" | "log" | "verbose" | undefined;
3350
+ overlay?:
3351
+ | boolean
3352
+ | {
3353
+ warnings?: boolean | undefined;
3354
+ errors?: boolean | undefined;
3355
+ }
3356
+ | undefined;
3357
+ progress?: boolean | undefined;
3358
+ reconnect?: number | boolean | undefined;
3359
+ webSocketTransport?: string | undefined;
3360
+ webSocketURL?: string | WebSocketURL | undefined;
3361
+ };
3362
+ type Headers =
3363
+ | Array<{
3364
+ key: string;
3365
+ value: string;
3366
+ }>
3367
+ | Record<string, string | string[]>;
3368
+ type Middleware =
3369
+ | {
3370
+ name?: string;
3371
+ path?: string;
3372
+ middleware: ExpressRequestHandler | ExpressErrorRequestHandler;
3373
+ }
3374
+ | ExpressRequestHandler
3375
+ | ExpressErrorRequestHandler;
3376
+ import path = require("path");
3377
+
3378
+ // DO NOT REMOVE THIS!
3379
+ type DevServerConfiguration = Configuration;
3380
+ declare module "webpack" {
3381
+ interface Configuration {
3382
+ /**
3383
+ * Can be used to configure the behaviour of webpack-dev-server when
3384
+ * the webpack config is passed to webpack-dev-server CLI.
3385
+ */
3386
+ devServer?: DevServerConfiguration | undefined;
3387
+ }
3388
+ }