webpack-dev-service 0.11.1 → 0.11.2

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 (59) hide show
  1. package/cjs/client/client.cjs +1 -1
  2. package/cjs/client/events.cjs +1 -1
  3. package/cjs/client/hot.cjs +1 -1
  4. package/cjs/client/index.cjs +1 -1
  5. package/cjs/client/main.cjs +1 -1
  6. package/cjs/client/ui/overlay.cjs +1 -1
  7. package/cjs/client/ui/progress.cjs +1 -1
  8. package/cjs/client/ui/utils.cjs +1 -1
  9. package/cjs/server/compose.cjs +1 -1
  10. package/cjs/server/dev/Service.cjs +14 -6
  11. package/cjs/server/dev/index.cjs +1 -1
  12. package/cjs/server/dev/middleware.cjs +9 -16
  13. package/cjs/server/dev/utils/fs.cjs +1 -1
  14. package/cjs/server/dev/utils/hash.cjs +1 -1
  15. package/cjs/server/dev/utils/http.cjs +1 -1
  16. package/cjs/server/dev/utils/path.cjs +1 -1
  17. package/cjs/server/dev/utils/paths.cjs +29 -18
  18. package/cjs/server/dev/utils/ready.cjs +1 -1
  19. package/cjs/server/dev/utils/setupHooks.cjs +1 -1
  20. package/cjs/server/dev/utils/setupOutputFileSystem.cjs +1 -1
  21. package/cjs/server/dev/utils/setupWatching.cjs +1 -1
  22. package/cjs/server/dev/utils/setupWriteToDisk.cjs +1 -1
  23. package/cjs/server/hot/Socket.cjs +1 -1
  24. package/cjs/server/hot/index.cjs +1 -1
  25. package/cjs/server/hot/utils.cjs +1 -1
  26. package/cjs/server/index.cjs +1 -1
  27. package/cjs/server/schema.cjs +1 -1
  28. package/cjs/server/utils.cjs +1 -1
  29. package/esm/client/client.js +1 -1
  30. package/esm/client/events.js +1 -1
  31. package/esm/client/hot.js +1 -1
  32. package/esm/client/index.js +1 -1
  33. package/esm/client/main.js +1 -1
  34. package/esm/client/ui/overlay.js +1 -1
  35. package/esm/client/ui/progress.js +1 -1
  36. package/esm/client/ui/utils.js +1 -1
  37. package/esm/server/compose.js +1 -1
  38. package/esm/server/dev/Service.js +14 -6
  39. package/esm/server/dev/index.js +1 -1
  40. package/esm/server/dev/middleware.js +9 -16
  41. package/esm/server/dev/utils/fs.js +1 -1
  42. package/esm/server/dev/utils/hash.js +1 -1
  43. package/esm/server/dev/utils/http.js +1 -1
  44. package/esm/server/dev/utils/path.js +1 -1
  45. package/esm/server/dev/utils/paths.js +29 -18
  46. package/esm/server/dev/utils/ready.js +1 -1
  47. package/esm/server/dev/utils/setupHooks.js +1 -1
  48. package/esm/server/dev/utils/setupOutputFileSystem.js +1 -1
  49. package/esm/server/dev/utils/setupWatching.js +1 -1
  50. package/esm/server/dev/utils/setupWriteToDisk.js +1 -1
  51. package/esm/server/hot/Socket.js +1 -1
  52. package/esm/server/hot/index.js +1 -1
  53. package/esm/server/hot/utils.js +1 -1
  54. package/esm/server/index.js +1 -1
  55. package/esm/server/schema.js +1 -1
  56. package/esm/server/utils.js +1 -1
  57. package/package.json +14 -13
  58. package/types/server/dev/Service.d.ts +2 -1
  59. package/types/server/dev/utils/paths.d.ts +2 -2
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -191,15 +191,23 @@ class Service {
191
191
  * @method response
192
192
  * @description Response to koa context.
193
193
  * @param context Koa context.
194
+ * @param publicPath Public path.
194
195
  */
195
- async response(context) {
196
- const { root } = this;
197
- // Only support GET and HEAD (405).
198
- if (context.method !== 'GET' && context.method !== 'HEAD') {
196
+ async response(context, publicPath) {
197
+ // Get request pathname.
198
+ const pathname = context.path || '/';
199
+ // Check public path.
200
+ if (!pathname.startsWith(publicPath)) {
199
201
  return false;
200
202
  }
203
+ // Get root path.
204
+ const { root } = this;
205
+ // Slice length.
206
+ const { length } = publicPath;
207
+ // Real pathname.
208
+ const realpath = pathname.slice(length);
201
209
  // Get path of file.
202
- const path$2 = path.unixify(path$1.join(root, context.path));
210
+ const path$2 = path.unixify(path$1.join(root, realpath));
203
211
  // Malicious path (403).
204
212
  if (path.isOutRoot(path$2, root)) {
205
213
  return false;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -70,26 +70,19 @@ function middleware(context) {
70
70
  if (path === -1 || path.includes('\0')) {
71
71
  return ctx.throw(400);
72
72
  }
73
- // Is path respond.
74
- let respond = false;
75
- // Get the file services.
76
- const services = await getFileServicesAsync(context, path);
77
- // Try to respond.
78
- for (const [publicPath, service] of services) {
79
- if (path.startsWith(publicPath)) {
80
- ctx.path = path.slice(publicPath.length);
81
- respond = await service.response(ctx);
82
- if (respond) {
73
+ // Only support GET and HEAD (405).
74
+ if (ctx.method === 'GET' || ctx.method === 'HEAD') {
75
+ // Get the file services.
76
+ const services = await getFileServicesAsync(context, path);
77
+ // Try to respond.
78
+ for (const [publicPath, service] of services) {
79
+ if (await service.response(ctx, publicPath)) {
83
80
  return;
84
- } else {
85
- ctx.path = path;
86
81
  }
87
82
  }
88
83
  }
89
84
  // Not respond.
90
- if (!respond) {
91
- await next();
92
- }
85
+ await next();
93
86
  };
94
87
  }
95
88
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -10,33 +10,46 @@
10
10
  'use strict';
11
11
 
12
12
  const url = require('url');
13
+ const path = require('./path.cjs');
13
14
 
14
15
  /**
15
16
  * @module paths
16
17
  */
18
+ function getStats(stats) {
19
+ if (isMultiStatsMode(stats)) {
20
+ return stats.stats;
21
+ }
22
+ // Return the stats.
23
+ return [stats];
24
+ }
25
+ function normalize(path$1) {
26
+ path$1 = path.unixify(path$1);
27
+ if (/^\//.test(path$1)) {
28
+ return path$1;
29
+ }
30
+ return `/${path$1}`;
31
+ }
17
32
  function getOutputPath(compilation) {
18
33
  // The `output.path` is always present and always absolute.
19
34
  const { path } = compilation.outputOptions;
20
35
  // Get the path.
21
- return compilation.getPath(path ? path : '');
36
+ return compilation.getPath(path ?? '');
22
37
  }
23
38
  function getPublicPath(compilation) {
24
39
  const { publicPath } = compilation.outputOptions;
25
- const path = compilation.getPath(publicPath ? publicPath : '');
26
- // Get the path.
40
+ // @see https://webpack.js.org/guides/public-path/#automatic-publicpath
41
+ if (publicPath === 'auto') {
42
+ return '/';
43
+ }
44
+ // Get public path.
45
+ const path = compilation.getPath(publicPath ?? '');
46
+ // Get public path without protocol.
27
47
  try {
28
48
  return new url.URL(path).pathname;
29
49
  } catch {
30
- return path;
50
+ return normalize(path);
31
51
  }
32
52
  }
33
- function getStats(stats) {
34
- if (isMultiStatsMode(stats)) {
35
- return stats.stats;
36
- }
37
- // Return the stats.
38
- return [stats];
39
- }
40
53
  function isMultiStatsMode(stats) {
41
54
  return 'stats' in stats;
42
55
  }
@@ -45,12 +58,10 @@ function getPaths(stats) {
45
58
  const childStats = getStats(stats);
46
59
  // Get the paths.
47
60
  for (const { compilation } of childStats) {
48
- paths.push([
49
- // Output path.
50
- getOutputPath(compilation),
51
- // Public path.
52
- getPublicPath(compilation)
53
- ]);
61
+ const outputPath = getOutputPath(compilation);
62
+ const publicPath = getPublicPath(compilation);
63
+ // Cache paths.
64
+ paths.push([outputPath, publicPath]);
54
65
  }
55
66
  // Return the paths.
56
67
  return paths;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
package/esm/client/hot.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -182,15 +182,23 @@ class Service {
182
182
  * @method response
183
183
  * @description Response to koa context.
184
184
  * @param context Koa context.
185
+ * @param publicPath Public path.
185
186
  */
186
- async response(context) {
187
- const { root } = this;
188
- // Only support GET and HEAD (405).
189
- if (context.method !== 'GET' && context.method !== 'HEAD') {
187
+ async response(context, publicPath) {
188
+ // Get request pathname.
189
+ const pathname = context.path || '/';
190
+ // Check public path.
191
+ if (!pathname.startsWith(publicPath)) {
190
192
  return false;
191
193
  }
194
+ // Get root path.
195
+ const { root } = this;
196
+ // Slice length.
197
+ const { length } = publicPath;
198
+ // Real pathname.
199
+ const realpath = pathname.slice(length);
192
200
  // Get path of file.
193
- const path = unixify(join(root, context.path));
201
+ const path = unixify(join(root, realpath));
194
202
  // Malicious path (403).
195
203
  if (isOutRoot(path, root)) {
196
204
  return false;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -68,26 +68,19 @@ function middleware(context) {
68
68
  if (path === -1 || path.includes('\0')) {
69
69
  return ctx.throw(400);
70
70
  }
71
- // Is path respond.
72
- let respond = false;
73
- // Get the file services.
74
- const services = await getFileServicesAsync(context, path);
75
- // Try to respond.
76
- for (const [publicPath, service] of services) {
77
- if (path.startsWith(publicPath)) {
78
- ctx.path = path.slice(publicPath.length);
79
- respond = await service.response(ctx);
80
- if (respond) {
71
+ // Only support GET and HEAD (405).
72
+ if (ctx.method === 'GET' || ctx.method === 'HEAD') {
73
+ // Get the file services.
74
+ const services = await getFileServicesAsync(context, path);
75
+ // Try to respond.
76
+ for (const [publicPath, service] of services) {
77
+ if (await service.response(ctx, publicPath)) {
81
78
  return;
82
- } else {
83
- ctx.path = path;
84
79
  }
85
80
  }
86
81
  }
87
82
  // Not respond.
88
- if (!respond) {
89
- await next();
90
- }
83
+ await next();
91
84
  };
92
85
  }
93
86
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,39 +1,52 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
8
8
  */
9
9
 
10
10
  import { URL } from 'url';
11
+ import { unixify } from './path.js';
11
12
 
12
13
  /**
13
14
  * @module paths
14
15
  */
16
+ function getStats(stats) {
17
+ if (isMultiStatsMode(stats)) {
18
+ return stats.stats;
19
+ }
20
+ // Return the stats.
21
+ return [stats];
22
+ }
23
+ function normalize(path) {
24
+ path = unixify(path);
25
+ if (/^\//.test(path)) {
26
+ return path;
27
+ }
28
+ return `/${path}`;
29
+ }
15
30
  function getOutputPath(compilation) {
16
31
  // The `output.path` is always present and always absolute.
17
32
  const { path } = compilation.outputOptions;
18
33
  // Get the path.
19
- return compilation.getPath(path ? path : '');
34
+ return compilation.getPath(path ?? '');
20
35
  }
21
36
  function getPublicPath(compilation) {
22
37
  const { publicPath } = compilation.outputOptions;
23
- const path = compilation.getPath(publicPath ? publicPath : '');
24
- // Get the path.
38
+ // @see https://webpack.js.org/guides/public-path/#automatic-publicpath
39
+ if (publicPath === 'auto') {
40
+ return '/';
41
+ }
42
+ // Get public path.
43
+ const path = compilation.getPath(publicPath ?? '');
44
+ // Get public path without protocol.
25
45
  try {
26
46
  return new URL(path).pathname;
27
47
  } catch {
28
- return path;
29
- }
30
- }
31
- function getStats(stats) {
32
- if (isMultiStatsMode(stats)) {
33
- return stats.stats;
48
+ return normalize(path);
34
49
  }
35
- // Return the stats.
36
- return [stats];
37
50
  }
38
51
  function isMultiStatsMode(stats) {
39
52
  return 'stats' in stats;
@@ -43,12 +56,10 @@ function getPaths(stats) {
43
56
  const childStats = getStats(stats);
44
57
  // Get the paths.
45
58
  for (const { compilation } of childStats) {
46
- paths.push([
47
- // Output path.
48
- getOutputPath(compilation),
49
- // Public path.
50
- getPublicPath(compilation)
51
- ]);
59
+ const outputPath = getOutputPath(compilation);
60
+ const publicPath = getPublicPath(compilation);
61
+ // Cache paths.
62
+ paths.push([outputPath, publicPath]);
52
63
  }
53
64
  // Return the paths.
54
65
  return paths;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package webpack-dev-service
3
3
  * @license MIT
4
- * @version 0.11.1
4
+ * @version 0.11.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A koa 2 middleware for webpack development and hot reloading.
7
7
  * @see https://github.com/nuintun/webpack-dev-service#readme
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack-dev-service",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "description": "A koa 2 middleware for webpack development and hot reloading.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -78,7 +78,7 @@
78
78
  "@types/ws": "^8.5.10",
79
79
  "destroy": "^1.2.0",
80
80
  "etag": "^1.8.1",
81
- "memfs": "^4.8.1",
81
+ "memfs": "^4.8.2",
82
82
  "range-parser": "^1.2.1",
83
83
  "schema-utils": "^4.2.0",
84
84
  "supports-color": "^9.4.0",
@@ -88,33 +88,34 @@
88
88
  "devDependencies": {
89
89
  "@rollup/plugin-replace": "^5.0.5",
90
90
  "@rollup/plugin-typescript": "^11.1.6",
91
- "@swc/core": "^1.4.11",
92
- "@swc/helpers": "^0.5.8",
91
+ "@swc/core": "^1.4.13",
92
+ "@swc/helpers": "^0.5.9",
93
93
  "@types/destroy": "^1.0.3",
94
94
  "@types/etag": "^1.8.3",
95
95
  "@types/koa-compose": "^3.2.8",
96
- "@types/node": "^20.12.3",
96
+ "@types/node": "^20.12.7",
97
97
  "@types/range-parser": "^1.2.7",
98
- "@types/react": "^18.2.74",
99
- "@types/react-dom": "^18.2.23",
100
- "css-loader": "^6.10.0",
98
+ "@types/react": "^18.2.78",
99
+ "@types/react-dom": "^18.2.25",
100
+ "css-loader": "^7.1.1",
101
101
  "html-webpack-plugin": "^5.6.0",
102
- "koa": "^2.15.2",
102
+ "koa": "^2.15.3",
103
103
  "koa-compress": "^5.1.1",
104
- "magic-string": "^0.30.8",
105
- "memfs": "^4.8.1",
104
+ "magic-string": "^0.30.9",
105
+ "memfs": "^4.8.2",
106
106
  "mini-css-extract-plugin": "^2.8.1",
107
107
  "prettier": "^3.2.5",
108
108
  "react": "^18.2.0",
109
109
  "react-dom": "^18.2.0",
110
110
  "rimraf": "^5.0.5",
111
- "rollup": "^4.13.2",
111
+ "rollup": "^4.14.2",
112
112
  "swc-loader": "^0.2.6",
113
113
  "tsc-alias": "^1.8.8",
114
- "typescript": "^5.4.3",
114
+ "typescript": "^5.4.5",
115
115
  "webpack": "^5.91.0"
116
116
  },
117
117
  "peerDependencies": {
118
+ "koa": ">=2.0.0",
118
119
  "webpack": ">=5.20.0"
119
120
  }
120
121
  }
@@ -76,7 +76,8 @@ export declare class Service {
76
76
  * @method response
77
77
  * @description Response to koa context.
78
78
  * @param context Koa context.
79
+ * @param publicPath Public path.
79
80
  */
80
- response(context: Context): Promise<boolean>;
81
+ response(context: Context, publicPath: string): Promise<boolean>;
81
82
  }
82
83
  export {};
@@ -2,6 +2,6 @@
2
2
  * @module paths
3
3
  */
4
4
  import { IStats } from '../../../server/interface';
5
- type Path = [outputPath: string, publicPath: string];
6
- export declare function getPaths(stats: IStats): Path[];
5
+ type PathsItem = [outputPath: string, publicPath: string];
6
+ export declare function getPaths(stats: IStats): PathsItem[];
7
7
  export {};