webpack 5.37.1 → 5.39.1

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.

Potentially problematic release.


This version of webpack might be problematic. Click here for more details.

Files changed (68) hide show
  1. package/bin/webpack.js +20 -5
  2. package/lib/AsyncDependencyToInitialChunkError.js +0 -2
  3. package/lib/CaseSensitiveModulesWarning.js +0 -2
  4. package/lib/Chunk.js +6 -2
  5. package/lib/ChunkRenderError.js +0 -2
  6. package/lib/CodeGenerationError.js +0 -2
  7. package/lib/CommentCompilationWarning.js +0 -2
  8. package/lib/Compilation.js +43 -28
  9. package/lib/Compiler.js +3 -0
  10. package/lib/ConcurrentCompilationError.js +0 -2
  11. package/lib/ContextModule.js +2 -1
  12. package/lib/ContextModuleFactory.js +3 -1
  13. package/lib/DllReferencePlugin.js +0 -2
  14. package/lib/EntryPlugin.js +3 -3
  15. package/lib/ExportsInfo.js +20 -13
  16. package/lib/HarmonyLinkingError.js +0 -2
  17. package/lib/HookWebpackError.js +0 -1
  18. package/lib/HotModuleReplacementPlugin.js +7 -2
  19. package/lib/InvalidDependenciesModuleWarning.js +0 -2
  20. package/lib/ModuleBuildError.js +0 -2
  21. package/lib/ModuleDependencyError.js +0 -2
  22. package/lib/ModuleDependencyWarning.js +0 -2
  23. package/lib/ModuleError.js +0 -2
  24. package/lib/ModuleNotFoundError.js +0 -2
  25. package/lib/ModuleParseError.js +0 -2
  26. package/lib/ModuleRestoreError.js +0 -2
  27. package/lib/ModuleStoreError.js +0 -2
  28. package/lib/ModuleWarning.js +0 -2
  29. package/lib/NoModeWarning.js +0 -2
  30. package/lib/NormalModule.js +4 -3
  31. package/lib/NormalModuleFactory.js +2 -0
  32. package/lib/UnsupportedFeatureWarning.js +0 -2
  33. package/lib/WarnDeprecatedOptionPlugin.js +0 -2
  34. package/lib/Watching.js +21 -14
  35. package/lib/WebpackError.js +0 -2
  36. package/lib/asset/AssetGenerator.js +27 -6
  37. package/lib/asset/AssetModulesPlugin.js +1 -1
  38. package/lib/cache/PackFileCacheStrategy.js +3 -0
  39. package/lib/config/defaults.js +9 -1
  40. package/lib/config/normalization.js +1 -0
  41. package/lib/config/target.js +7 -2
  42. package/lib/dependencies/ContextElementDependency.js +6 -1
  43. package/lib/dependencies/CriticalDependencyWarning.js +0 -2
  44. package/lib/dependencies/ImportParserPlugin.js +1 -0
  45. package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +0 -2
  46. package/lib/dependencies/SystemPlugin.js +0 -2
  47. package/lib/errors/BuildCycleError.js +0 -1
  48. package/lib/hmr/LazyCompilationPlugin.js +3 -1
  49. package/lib/node/NodeEnvironmentPlugin.js +1 -0
  50. package/lib/optimize/ConcatenatedModule.js +9 -0
  51. package/lib/performance/AssetsOverSizeLimitWarning.js +0 -2
  52. package/lib/performance/EntrypointsOverSizeLimitWarning.js +0 -2
  53. package/lib/performance/NoAsyncChunksWarning.js +0 -2
  54. package/lib/schemes/DataUriPlugin.js +21 -2
  55. package/lib/serialization/BinaryMiddleware.js +3 -0
  56. package/lib/serialization/SerializerMiddleware.js +19 -0
  57. package/lib/stats/DefaultStatsFactoryPlugin.js +5 -4
  58. package/lib/util/ArrayQueue.js +8 -0
  59. package/lib/util/AsyncQueue.js +9 -0
  60. package/lib/util/createHash.js +5 -4
  61. package/lib/util/serialization.js +108 -59
  62. package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +0 -2
  63. package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +0 -2
  64. package/package.json +4 -4
  65. package/schemas/WebpackOptions.check.js +1 -1
  66. package/schemas/WebpackOptions.json +8 -0
  67. package/types.d.ts +24 -5
  68. package/lib/util/DataURI.js +0 -32
@@ -4,72 +4,121 @@
4
4
 
5
5
  "use strict";
6
6
 
7
- const BinaryMiddleware = require("../serialization/BinaryMiddleware");
8
- const FileMiddleware = require("../serialization/FileMiddleware");
9
- const ObjectMiddleware = require("../serialization/ObjectMiddleware");
10
- const Serializer = require("../serialization/Serializer");
11
- const SerializerMiddleware = require("../serialization/SerializerMiddleware");
12
- const SingleItemMiddleware = require("../serialization/SingleItemMiddleware");
13
- const internalSerializables = require("./internalSerializables");
7
+ const memoize = require("./memoize");
14
8
 
9
+ /** @typedef {import("../serialization/BinaryMiddleware").MEASURE_END_OPERATION_TYPE} MEASURE_END_OPERATION */
10
+ /** @typedef {import("../serialization/BinaryMiddleware").MEASURE_START_OPERATION_TYPE} MEASURE_START_OPERATION */
15
11
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
16
12
  /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
13
+ /** @typedef {import("../serialization/Serializer")} Serializer */
17
14
 
18
- const { register, registerLoader, registerNotSerializable } = ObjectMiddleware;
15
+ const getBinaryMiddleware = memoize(() =>
16
+ require("../serialization/BinaryMiddleware")
17
+ );
18
+ const getObjectMiddleware = memoize(() =>
19
+ require("../serialization/ObjectMiddleware")
20
+ );
21
+ const getSingleItemMiddleware = memoize(() =>
22
+ require("../serialization/SingleItemMiddleware")
23
+ );
24
+ const getSerializer = memoize(() => require("../serialization/Serializer"));
25
+ const getSerializerMiddleware = memoize(() =>
26
+ require("../serialization/SerializerMiddleware")
27
+ );
19
28
 
20
- const binaryMiddleware = new BinaryMiddleware();
29
+ const getBinaryMiddlewareInstance = memoize(
30
+ () => new (getBinaryMiddleware())()
31
+ );
21
32
 
22
- // Expose serialization API
23
- exports.register = register;
24
- exports.registerLoader = registerLoader;
25
- exports.registerNotSerializable = registerNotSerializable;
26
- exports.NOT_SERIALIZABLE = ObjectMiddleware.NOT_SERIALIZABLE;
27
- exports.MEASURE_START_OPERATION = BinaryMiddleware.MEASURE_START_OPERATION;
28
- exports.MEASURE_END_OPERATION = BinaryMiddleware.MEASURE_END_OPERATION;
29
- exports.buffersSerializer = new Serializer([
30
- new SingleItemMiddleware(),
31
- new ObjectMiddleware(context => {
32
- if (context.write) {
33
- context.writeLazy = value => {
34
- context.write(SerializerMiddleware.createLazy(value, binaryMiddleware));
35
- };
33
+ const registerSerializers = memoize(() => {
34
+ require("./registerExternalSerializer");
35
+
36
+ // Load internal paths with a relative require
37
+ // This allows bundling all internal serializers
38
+ const internalSerializables = require("./internalSerializables");
39
+ getObjectMiddleware().registerLoader(/^webpack\/lib\//, req => {
40
+ const loader = internalSerializables[req.slice("webpack/lib/".length)];
41
+ if (loader) {
42
+ loader();
43
+ } else {
44
+ console.warn(`${req} not found in internalSerializables`);
36
45
  }
37
- }),
38
- binaryMiddleware
39
- ]);
40
- exports.createFileSerializer = fs => {
41
- const fileMiddleware = new FileMiddleware(fs);
42
- return new Serializer([
43
- new SingleItemMiddleware(),
44
- new ObjectMiddleware(context => {
45
- if (context.write) {
46
- context.writeLazy = value => {
47
- context.write(
48
- SerializerMiddleware.createLazy(value, binaryMiddleware)
49
- );
50
- };
51
- context.writeSeparate = (value, options) => {
52
- context.write(
53
- SerializerMiddleware.createLazy(value, fileMiddleware, options)
54
- );
55
- };
56
- }
57
- }),
58
- binaryMiddleware,
59
- fileMiddleware
60
- ]);
61
- };
46
+ return true;
47
+ });
48
+ });
62
49
 
63
- require("./registerExternalSerializer");
50
+ /** @type {Serializer} */
51
+ let buffersSerializer;
64
52
 
65
- // Load internal paths with a relative require
66
- // This allows bundling all internal serializers
67
- registerLoader(/^webpack\/lib\//, req => {
68
- const loader = internalSerializables[req.slice("webpack/lib/".length)];
69
- if (loader) {
70
- loader();
71
- } else {
72
- console.warn(`${req} not found in internalSerializables`);
53
+ // Expose serialization API
54
+ module.exports = {
55
+ get register() {
56
+ return getObjectMiddleware().register;
57
+ },
58
+ get registerLoader() {
59
+ return getObjectMiddleware().registerLoader;
60
+ },
61
+ get registerNotSerializable() {
62
+ return getObjectMiddleware().registerNotSerializable;
63
+ },
64
+ get NOT_SERIALIZABLE() {
65
+ return getObjectMiddleware().NOT_SERIALIZABLE;
66
+ },
67
+ /** @type {MEASURE_START_OPERATION} */
68
+ get MEASURE_START_OPERATION() {
69
+ return getBinaryMiddleware().MEASURE_START_OPERATION;
70
+ },
71
+ /** @type {MEASURE_END_OPERATION} */
72
+ get MEASURE_END_OPERATION() {
73
+ return getBinaryMiddleware().MEASURE_END_OPERATION;
74
+ },
75
+ get buffersSerializer() {
76
+ if (buffersSerializer !== undefined) return buffersSerializer;
77
+ registerSerializers();
78
+ const Serializer = getSerializer();
79
+ const binaryMiddleware = getBinaryMiddlewareInstance();
80
+ const SerializerMiddleware = getSerializerMiddleware();
81
+ const SingleItemMiddleware = getSingleItemMiddleware();
82
+ return (buffersSerializer = new Serializer([
83
+ new SingleItemMiddleware(),
84
+ new (getObjectMiddleware())(context => {
85
+ if (context.write) {
86
+ context.writeLazy = value => {
87
+ context.write(
88
+ SerializerMiddleware.createLazy(value, binaryMiddleware)
89
+ );
90
+ };
91
+ }
92
+ }),
93
+ binaryMiddleware
94
+ ]));
95
+ },
96
+ createFileSerializer: fs => {
97
+ registerSerializers();
98
+ const Serializer = getSerializer();
99
+ const FileMiddleware = require("../serialization/FileMiddleware");
100
+ const fileMiddleware = new FileMiddleware(fs);
101
+ const binaryMiddleware = getBinaryMiddlewareInstance();
102
+ const SerializerMiddleware = getSerializerMiddleware();
103
+ const SingleItemMiddleware = getSingleItemMiddleware();
104
+ return new Serializer([
105
+ new SingleItemMiddleware(),
106
+ new (getObjectMiddleware())(context => {
107
+ if (context.write) {
108
+ context.writeLazy = value => {
109
+ context.write(
110
+ SerializerMiddleware.createLazy(value, binaryMiddleware)
111
+ );
112
+ };
113
+ context.writeSeparate = (value, options) => {
114
+ context.write(
115
+ SerializerMiddleware.createLazy(value, fileMiddleware, options)
116
+ );
117
+ };
118
+ }
119
+ }),
120
+ binaryMiddleware,
121
+ fileMiddleware
122
+ ]);
73
123
  }
74
- return true;
75
- });
124
+ };
@@ -12,7 +12,5 @@ module.exports = class UnsupportedWebAssemblyFeatureError extends WebpackError {
12
12
  super(message);
13
13
  this.name = "UnsupportedWebAssemblyFeatureError";
14
14
  this.hideStack = true;
15
-
16
- Error.captureStackTrace(this, this.constructor);
17
15
  }
18
16
  };
@@ -102,7 +102,5 @@ ${moduleChains.map(s => `* ${s}`).join("\n")}`;
102
102
  this.name = "WebAssemblyInInitialChunkError";
103
103
  this.hideStack = true;
104
104
  this.module = module;
105
-
106
- Error.captureStackTrace(this, this.constructor);
107
105
  }
108
106
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webpack",
3
- "version": "5.37.1",
3
+ "version": "5.39.1",
4
4
  "author": "Tobias Koppers @sokra",
5
5
  "description": "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
6
6
  "license": "MIT",
@@ -15,7 +15,7 @@
15
15
  "chrome-trace-event": "^1.0.2",
16
16
  "enhanced-resolve": "^5.8.0",
17
17
  "es-module-lexer": "^0.4.0",
18
- "eslint-scope": "^5.1.1",
18
+ "eslint-scope": "5.1.1",
19
19
  "events": "^3.2.0",
20
20
  "glob-to-regexp": "^0.4.1",
21
21
  "graceful-fs": "^4.2.4",
@@ -26,8 +26,8 @@
26
26
  "schema-utils": "^3.0.0",
27
27
  "tapable": "^2.1.1",
28
28
  "terser-webpack-plugin": "^5.1.1",
29
- "watchpack": "^2.0.0",
30
- "webpack-sources": "^2.1.1"
29
+ "watchpack": "^2.2.0",
30
+ "webpack-sources": "^2.3.0"
31
31
  },
32
32
  "peerDependenciesMeta": {
33
33
  "webpack-cli": {