webpack 5.80.0 → 5.81.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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/lib/AsyncDependenciesBlock.js +8 -0
- package/lib/CodeGenerationResults.js +2 -2
- package/lib/Compilation.js +2 -2
- package/lib/ContextModule.js +8 -0
- package/lib/CssModule.js +137 -0
- package/lib/DefinePlugin.js +81 -44
- package/lib/DelegatedModule.js +5 -0
- package/lib/DependenciesBlock.js +8 -0
- package/lib/Dependency.js +8 -0
- package/lib/DllModule.js +8 -0
- package/lib/ExportsInfo.js +3 -0
- package/lib/ExternalModule.js +8 -0
- package/lib/FileSystemInfo.js +8 -0
- package/lib/LoaderOptionsPlugin.js +12 -2
- package/lib/Module.js +8 -0
- package/lib/ModuleBuildError.js +9 -0
- package/lib/ModuleError.js +9 -0
- package/lib/ModuleFilenameHelpers.js +113 -4
- package/lib/ModuleParseError.js +9 -0
- package/lib/ModuleTypeConstants.js +21 -0
- package/lib/ModuleWarning.js +9 -0
- package/lib/NormalModule.js +8 -0
- package/lib/NormalModuleFactory.js +15 -3
- package/lib/RawModule.js +8 -0
- package/lib/WebpackError.js +8 -0
- package/lib/asset/RawDataUrlModule.js +8 -0
- package/lib/cache/ResolverCachePlugin.js +3 -0
- package/lib/config/normalization.js +1 -0
- package/lib/container/ContainerEntryModule.js +5 -0
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/FallbackDependency.js +6 -0
- package/lib/container/FallbackModule.js +5 -0
- package/lib/container/RemoteModule.js +5 -0
- package/lib/css/CssModulesPlugin.js +91 -50
- package/lib/css/CssParser.js +132 -73
- package/lib/css/walkCssTokens.js +27 -47
- package/lib/dependencies/AMDDefineDependency.js +8 -0
- package/lib/dependencies/AMDRequireArrayDependency.js +8 -0
- package/lib/dependencies/AMDRequireContextDependency.js +9 -0
- package/lib/dependencies/AMDRequireDependency.js +8 -0
- package/lib/dependencies/CachedConstDependency.js +8 -0
- package/lib/dependencies/CommonJsDependencyHelpers.js +9 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +8 -0
- package/lib/dependencies/CommonJsExportsDependency.js +8 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +65 -3
- package/lib/dependencies/CommonJsFullRequireDependency.js +8 -0
- package/lib/dependencies/CommonJsRequireContextDependency.js +9 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +8 -0
- package/lib/dependencies/ConstDependency.js +8 -0
- package/lib/dependencies/ContextDependency.js +8 -0
- package/lib/dependencies/ContextElementDependency.js +8 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +8 -0
- package/lib/dependencies/CssExportDependency.js +8 -0
- package/lib/dependencies/CssImportDependency.js +52 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +8 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +8 -0
- package/lib/dependencies/CssUrlDependency.js +8 -0
- package/lib/dependencies/DllEntryDependency.js +9 -0
- package/lib/dependencies/ExportsInfoDependency.js +5 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +8 -0
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +8 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +8 -0
- package/lib/dependencies/HarmonyExportHeaderDependency.js +8 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +14 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +8 -0
- package/lib/dependencies/HarmonyImportDependency.js +8 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +8 -0
- package/lib/dependencies/ImportContextDependency.js +9 -0
- package/lib/dependencies/ImportDependency.js +8 -0
- package/lib/dependencies/JsonExportsDependency.js +8 -0
- package/lib/dependencies/LocalModuleDependency.js +8 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +8 -0
- package/lib/dependencies/ModuleDependency.js +8 -0
- package/lib/dependencies/ProvidedDependency.js +8 -0
- package/lib/dependencies/PureExpressionDependency.js +8 -0
- package/lib/dependencies/RequireEnsureDependency.js +8 -0
- package/lib/dependencies/RequireHeaderDependency.js +5 -0
- package/lib/dependencies/RequireResolveContextDependency.js +9 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +8 -0
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/URLDependency.js +8 -0
- package/lib/dependencies/UnsupportedDependency.js +8 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +8 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +8 -0
- package/lib/dependencies/WorkerDependency.js +8 -0
- package/lib/index.js +1 -0
- package/lib/javascript/JavascriptParser.js +1 -1
- package/lib/optimize/RealContentHashPlugin.js +6 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +6 -1
- package/lib/serialization/ObjectMiddleware.js +2 -0
- package/lib/sharing/ConsumeSharedModule.js +8 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -3
- package/lib/sharing/ProvideSharedDependency.js +6 -0
- package/lib/sharing/ProvideSharedModule.js +5 -0
- package/lib/sharing/ShareRuntimeModule.js +7 -4
- package/lib/util/LazySet.js +10 -2
- package/lib/util/MapHelpers.js +19 -5
- package/lib/util/binarySearchBounds.js +49 -0
- package/lib/util/internalSerializables.js +1 -0
- package/lib/util/semver.js +1 -1
- package/package.json +4 -5
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +8 -0
- package/types.d.ts +55 -22
@@ -14,6 +14,8 @@ const NullDependency = require("./NullDependency");
|
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
18
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
17
19
|
/** @typedef {import("../util/Hash")} Hash */
|
18
20
|
|
19
21
|
class RuntimeRequirementsDependency extends NullDependency {
|
@@ -39,12 +41,18 @@ class RuntimeRequirementsDependency extends NullDependency {
|
|
39
41
|
hash.update(this._hashUpdate);
|
40
42
|
}
|
41
43
|
|
44
|
+
/**
|
45
|
+
* @param {ObjectSerializerContext} context context
|
46
|
+
*/
|
42
47
|
serialize(context) {
|
43
48
|
const { write } = context;
|
44
49
|
write(this.runtimeRequirements);
|
45
50
|
super.serialize(context);
|
46
51
|
}
|
47
52
|
|
53
|
+
/**
|
54
|
+
* @param {ObjectDeserializerContext} context context
|
55
|
+
*/
|
48
56
|
deserialize(context) {
|
49
57
|
const { read } = context;
|
50
58
|
this.runtimeRequirements = read();
|
@@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency");
|
|
13
13
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
15
15
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
16
18
|
/** @typedef {import("../util/Hash")} Hash */
|
17
19
|
|
18
20
|
class StaticExportsDependency extends NullDependency {
|
@@ -43,6 +45,9 @@ class StaticExportsDependency extends NullDependency {
|
|
43
45
|
};
|
44
46
|
}
|
45
47
|
|
48
|
+
/**
|
49
|
+
* @param {ObjectSerializerContext} context context
|
50
|
+
*/
|
46
51
|
serialize(context) {
|
47
52
|
const { write } = context;
|
48
53
|
write(this.exports);
|
@@ -50,6 +55,9 @@ class StaticExportsDependency extends NullDependency {
|
|
50
55
|
super.serialize(context);
|
51
56
|
}
|
52
57
|
|
58
|
+
/**
|
59
|
+
* @param {ObjectDeserializerContext} context context
|
60
|
+
*/
|
53
61
|
deserialize(context) {
|
54
62
|
const { read } = context;
|
55
63
|
this.exports = read();
|
@@ -22,6 +22,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
22
22
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
23
23
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
24
24
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
26
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
25
27
|
/** @typedef {import("../util/Hash")} Hash */
|
26
28
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
27
29
|
|
@@ -72,6 +74,9 @@ class URLDependency extends ModuleDependency {
|
|
72
74
|
return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`);
|
73
75
|
}
|
74
76
|
|
77
|
+
/**
|
78
|
+
* @param {ObjectSerializerContext} context context
|
79
|
+
*/
|
75
80
|
serialize(context) {
|
76
81
|
const { write } = context;
|
77
82
|
write(this.outerRange);
|
@@ -80,6 +85,9 @@ class URLDependency extends ModuleDependency {
|
|
80
85
|
super.serialize(context);
|
81
86
|
}
|
82
87
|
|
88
|
+
/**
|
89
|
+
* @param {ObjectDeserializerContext} context context
|
90
|
+
*/
|
83
91
|
deserialize(context) {
|
84
92
|
const { read } = context;
|
85
93
|
this.outerRange = read();
|
@@ -11,6 +11,8 @@ const NullDependency = require("./NullDependency");
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
12
12
|
/** @typedef {import("../Dependency")} Dependency */
|
13
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
16
|
|
15
17
|
class UnsupportedDependency extends NullDependency {
|
16
18
|
constructor(request, range) {
|
@@ -20,6 +22,9 @@ class UnsupportedDependency extends NullDependency {
|
|
20
22
|
this.range = range;
|
21
23
|
}
|
22
24
|
|
25
|
+
/**
|
26
|
+
* @param {ObjectSerializerContext} context context
|
27
|
+
*/
|
23
28
|
serialize(context) {
|
24
29
|
const { write } = context;
|
25
30
|
|
@@ -29,6 +34,9 @@ class UnsupportedDependency extends NullDependency {
|
|
29
34
|
super.serialize(context);
|
30
35
|
}
|
31
36
|
|
37
|
+
/**
|
38
|
+
* @param {ObjectDeserializerContext} context context
|
39
|
+
*/
|
32
40
|
deserialize(context) {
|
33
41
|
const { read } = context;
|
34
42
|
|
@@ -12,6 +12,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
12
12
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
13
13
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
14
14
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
15
17
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
16
18
|
|
17
19
|
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
@@ -50,6 +52,9 @@ class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
50
52
|
return "wasm";
|
51
53
|
}
|
52
54
|
|
55
|
+
/**
|
56
|
+
* @param {ObjectSerializerContext} context context
|
57
|
+
*/
|
53
58
|
serialize(context) {
|
54
59
|
const { write } = context;
|
55
60
|
|
@@ -60,6 +65,9 @@ class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
60
65
|
super.serialize(context);
|
61
66
|
}
|
62
67
|
|
68
|
+
/**
|
69
|
+
* @param {ObjectDeserializerContext} context context
|
70
|
+
*/
|
63
71
|
deserialize(context) {
|
64
72
|
const { read } = context;
|
65
73
|
|
@@ -13,6 +13,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
13
13
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
14
14
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
15
15
|
/** @typedef {import("../WebpackError")} WebpackError */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
16
18
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
17
19
|
|
18
20
|
class WebAssemblyImportDependency extends ModuleDependency {
|
@@ -71,6 +73,9 @@ class WebAssemblyImportDependency extends ModuleDependency {
|
|
71
73
|
}
|
72
74
|
}
|
73
75
|
|
76
|
+
/**
|
77
|
+
* @param {ObjectSerializerContext} context context
|
78
|
+
*/
|
74
79
|
serialize(context) {
|
75
80
|
const { write } = context;
|
76
81
|
|
@@ -81,6 +86,9 @@ class WebAssemblyImportDependency extends ModuleDependency {
|
|
81
86
|
super.serialize(context);
|
82
87
|
}
|
83
88
|
|
89
|
+
/**
|
90
|
+
* @param {ObjectDeserializerContext} context context
|
91
|
+
*/
|
84
92
|
deserialize(context) {
|
85
93
|
const { read } = context;
|
86
94
|
|
@@ -18,6 +18,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
19
19
|
/** @typedef {import("../Entrypoint")} Entrypoint */
|
20
20
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
21
23
|
/** @typedef {import("../util/Hash")} Hash */
|
22
24
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
23
25
|
|
@@ -68,12 +70,18 @@ class WorkerDependency extends ModuleDependency {
|
|
68
70
|
hash.update(this._hashUpdate);
|
69
71
|
}
|
70
72
|
|
73
|
+
/**
|
74
|
+
* @param {ObjectSerializerContext} context context
|
75
|
+
*/
|
71
76
|
serialize(context) {
|
72
77
|
const { write } = context;
|
73
78
|
write(this.options);
|
74
79
|
super.serialize(context);
|
75
80
|
}
|
76
81
|
|
82
|
+
/**
|
83
|
+
* @param {ObjectDeserializerContext} context context
|
84
|
+
*/
|
77
85
|
deserialize(context) {
|
78
86
|
const { read } = context;
|
79
87
|
this.options = read();
|
package/lib/index.js
CHANGED
@@ -18,6 +18,7 @@ const memoize = require("./util/memoize");
|
|
18
18
|
/** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
|
19
19
|
/** @typedef {import("../declarations/WebpackOptions").FileCacheOptions} FileCacheOptions */
|
20
20
|
/** @typedef {import("../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
21
|
+
/** @typedef {import("../declarations/WebpackOptions").MemoryCacheOptions} MemoryCacheOptions */
|
21
22
|
/** @typedef {import("../declarations/WebpackOptions").ModuleOptions} ModuleOptions */
|
22
23
|
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
23
24
|
/** @typedef {import("../declarations/WebpackOptions").RuleSetCondition} RuleSetCondition */
|
@@ -2482,7 +2482,7 @@ class JavascriptParser extends Parser {
|
|
2482
2482
|
walkFunctionExpression(expression) {
|
2483
2483
|
const wasTopLevel = this.scope.topLevelScope;
|
2484
2484
|
this.scope.topLevelScope = false;
|
2485
|
-
const scopeParams = expression.params;
|
2485
|
+
const scopeParams = [...expression.params];
|
2486
2486
|
|
2487
2487
|
// Add function name in scope for recursive calls
|
2488
2488
|
if (expression.id) {
|
@@ -15,6 +15,7 @@ const createHash = require("../util/createHash");
|
|
15
15
|
/** @typedef {import("webpack-sources").Source} Source */
|
16
16
|
/** @typedef {import("../Compilation").AssetInfo} AssetInfo */
|
17
17
|
/** @typedef {import("../Compiler")} Compiler */
|
18
|
+
/** @typedef {typeof import("../util/Hash")} Hash */
|
18
19
|
|
19
20
|
const EMPTY_SET = new Set();
|
20
21
|
|
@@ -115,6 +116,11 @@ class RealContentHashPlugin {
|
|
115
116
|
return hooks;
|
116
117
|
}
|
117
118
|
|
119
|
+
/**
|
120
|
+
* @param {Object} options options object
|
121
|
+
* @param {string | Hash} options.hashFunction the hash function to use
|
122
|
+
* @param {string} options.hashDigest the hash digest to use
|
123
|
+
*/
|
118
124
|
constructor({ hashFunction, hashDigest }) {
|
119
125
|
this._hashFunction = hashFunction;
|
120
126
|
this._hashDigest = hashDigest;
|
@@ -47,7 +47,12 @@ class AutoPublicPathRuntimeModule extends RuntimeModule {
|
|
47
47
|
"if (!scriptUrl) {",
|
48
48
|
Template.indent([
|
49
49
|
'var scripts = document.getElementsByTagName("script");',
|
50
|
-
"if(scripts.length)
|
50
|
+
"if(scripts.length) {",
|
51
|
+
Template.indent([
|
52
|
+
"var i = scripts.length - 1;",
|
53
|
+
"while (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;"
|
54
|
+
]),
|
55
|
+
"}"
|
51
56
|
]),
|
52
57
|
"}"
|
53
58
|
]),
|
@@ -46,11 +46,13 @@ Technically any value can be used.
|
|
46
46
|
/**
|
47
47
|
* @typedef {Object} ObjectSerializerContext
|
48
48
|
* @property {function(any): void} write
|
49
|
+
* @property {function(any): void} setCircularReference
|
49
50
|
*/
|
50
51
|
|
51
52
|
/**
|
52
53
|
* @typedef {Object} ObjectDeserializerContext
|
53
54
|
* @property {function(): any} read
|
55
|
+
* @property {function(any): void} setCircularReference
|
54
56
|
*/
|
55
57
|
|
56
58
|
/**
|
@@ -25,6 +25,8 @@ const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependen
|
|
25
25
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
26
26
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
27
27
|
/** @typedef {import("../WebpackError")} WebpackError */
|
28
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
29
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
28
30
|
/** @typedef {import("../util/Hash")} Hash */
|
29
31
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
30
32
|
/** @typedef {import("../util/semver").SemVerRange} SemVerRange */
|
@@ -230,12 +232,18 @@ class ConsumeSharedModule extends Module {
|
|
230
232
|
};
|
231
233
|
}
|
232
234
|
|
235
|
+
/**
|
236
|
+
* @param {ObjectSerializerContext} context context
|
237
|
+
*/
|
233
238
|
serialize(context) {
|
234
239
|
const { write } = context;
|
235
240
|
write(this.options);
|
236
241
|
super.serialize(context);
|
237
242
|
}
|
238
243
|
|
244
|
+
/**
|
245
|
+
* @param {ObjectDeserializerContext} context context
|
246
|
+
*/
|
239
247
|
deserialize(context) {
|
240
248
|
const { read } = context;
|
241
249
|
this.options = read();
|
@@ -119,8 +119,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
119
119
|
"scope, scopeName, key, requiredVersion",
|
120
120
|
[
|
121
121
|
"var version = findSingletonVersionKey(scope, key);",
|
122
|
-
"if (!satisfy(requiredVersion, version)) "
|
123
|
-
'typeof console !== "undefined" && console.warn && console.warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));',
|
122
|
+
"if (!satisfy(requiredVersion, version)) warn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));",
|
124
123
|
"return get(scope[key][version]);"
|
125
124
|
]
|
126
125
|
)};`,
|
@@ -166,10 +165,17 @@ class ConsumeSharedRuntimeModule extends RuntimeModule {
|
|
166
165
|
"throw new Error(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));"
|
167
166
|
]
|
168
167
|
)};`,
|
168
|
+
`var warn = ${
|
169
|
+
this.compilation.options.output.ignoreBrowserWarnings
|
170
|
+
? runtimeTemplate.basicFunction("", "")
|
171
|
+
: runtimeTemplate.basicFunction("msg", [
|
172
|
+
'if (typeof console !== "undefined" && console.warn) console.warn(msg);'
|
173
|
+
])
|
174
|
+
};`,
|
169
175
|
`var warnInvalidVersion = ${runtimeTemplate.basicFunction(
|
170
176
|
"scope, scopeName, key, requiredVersion",
|
171
177
|
[
|
172
|
-
|
178
|
+
"warn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion));"
|
173
179
|
]
|
174
180
|
)};`,
|
175
181
|
`var get = ${runtimeTemplate.basicFunction("entry", [
|
@@ -8,6 +8,9 @@
|
|
8
8
|
const Dependency = require("../Dependency");
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
13
|
+
|
11
14
|
class ProvideSharedDependency extends Dependency {
|
12
15
|
constructor(shareScope, name, version, request, eager) {
|
13
16
|
super();
|
@@ -31,6 +34,9 @@ class ProvideSharedDependency extends Dependency {
|
|
31
34
|
} @ ${this.version}${this.eager ? " (eager)" : ""}`;
|
32
35
|
}
|
33
36
|
|
37
|
+
/**
|
38
|
+
* @param {ObjectSerializerContext} context context
|
39
|
+
*/
|
34
40
|
serialize(context) {
|
35
41
|
context.write(this.shareScope);
|
36
42
|
context.write(this.name);
|
@@ -23,6 +23,8 @@ const ProvideForSharedDependency = require("./ProvideForSharedDependency");
|
|
23
23
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
24
24
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
25
25
|
/** @typedef {import("../WebpackError")} WebpackError */
|
26
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
27
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
26
28
|
/** @typedef {import("../util/Hash")} Hash */
|
27
29
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
28
30
|
|
@@ -158,6 +160,9 @@ class ProvideSharedModule extends Module {
|
|
158
160
|
return { sources, data, runtimeRequirements };
|
159
161
|
}
|
160
162
|
|
163
|
+
/**
|
164
|
+
* @param {ObjectSerializerContext} context context
|
165
|
+
*/
|
161
166
|
serialize(context) {
|
162
167
|
const { write } = context;
|
163
168
|
write(this._shareScope);
|
@@ -77,10 +77,13 @@ class ShareRuntimeModule extends RuntimeModule {
|
|
77
77
|
`if(!${RuntimeGlobals.hasOwnProperty}(${RuntimeGlobals.shareScopeMap}, name)) ${RuntimeGlobals.shareScopeMap}[name] = {};`,
|
78
78
|
"// runs all init snippets from all modules reachable",
|
79
79
|
`var scope = ${RuntimeGlobals.shareScopeMap}[name];`,
|
80
|
-
`var warn = ${
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
`var warn = ${
|
81
|
+
this.compilation.options.output.ignoreBrowserWarnings
|
82
|
+
? runtimeTemplate.basicFunction("", "")
|
83
|
+
: runtimeTemplate.basicFunction("msg", [
|
84
|
+
'if (typeof console !== "undefined" && console.warn) console.warn(msg);'
|
85
|
+
])
|
86
|
+
};`,
|
84
87
|
`var uniqueName = ${JSON.stringify(uniqueName || undefined)};`,
|
85
88
|
`var register = ${runtimeTemplate.basicFunction(
|
86
89
|
"name, version, factory, eager",
|
package/lib/util/LazySet.js
CHANGED
@@ -87,7 +87,7 @@ class LazySet {
|
|
87
87
|
|
88
88
|
/**
|
89
89
|
* @param {T} item an item
|
90
|
-
* @returns {
|
90
|
+
* @returns {LazySet<T>} itself
|
91
91
|
*/
|
92
92
|
add(item) {
|
93
93
|
this._set.add(item);
|
@@ -96,7 +96,7 @@ class LazySet {
|
|
96
96
|
|
97
97
|
/**
|
98
98
|
* @param {Iterable<T> | LazySet<T>} iterable a immutable iterable or another immutable LazySet which will eventually be merged into the Set
|
99
|
-
* @returns {
|
99
|
+
* @returns {LazySet<T>} itself
|
100
100
|
*/
|
101
101
|
addAll(iterable) {
|
102
102
|
if (this._deopt) {
|
@@ -187,12 +187,20 @@ class LazySet {
|
|
187
187
|
return "LazySet";
|
188
188
|
}
|
189
189
|
|
190
|
+
/**
|
191
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectSerializerContext} context context
|
192
|
+
*/
|
190
193
|
serialize({ write }) {
|
191
194
|
if (this._needMerge) this._merge();
|
192
195
|
write(this._set.size);
|
193
196
|
for (const item of this._set) write(item);
|
194
197
|
}
|
195
198
|
|
199
|
+
/**
|
200
|
+
* @template T
|
201
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} context context
|
202
|
+
* @returns {LazySet<T>} lazy set
|
203
|
+
*/
|
196
204
|
static deserialize({ read }) {
|
197
205
|
const count = read();
|
198
206
|
const items = [];
|
package/lib/util/MapHelpers.js
CHANGED
@@ -6,16 +6,30 @@
|
|
6
6
|
"use strict";
|
7
7
|
|
8
8
|
/**
|
9
|
+
* getOrInsert is a helper function for maps that allows you to get a value
|
10
|
+
* from a map if it exists, or insert a new value if it doesn't. If it value doesn't
|
11
|
+
* exist, it will be computed by the provided function.
|
12
|
+
*
|
9
13
|
* @template K
|
10
14
|
* @template V
|
11
|
-
* @param {Map<K, V>} map
|
12
|
-
* @param {K} key
|
13
|
-
* @param {function(): V} computer compute value
|
14
|
-
* @returns {V} value
|
15
|
+
* @param {Map<K, V>} map The map object to check
|
16
|
+
* @param {K} key The key to check
|
17
|
+
* @param {function(): V} computer function which will compute the value if it doesn't exist
|
18
|
+
* @returns {V} The value from the map, or the computed value
|
19
|
+
*
|
20
|
+
* @example
|
21
|
+
* ```js
|
22
|
+
* const map = new Map();
|
23
|
+
* const value = getOrInsert(map, "key", () => "value");
|
24
|
+
* console.log(value); // "value"
|
25
|
+
* ```
|
15
26
|
*/
|
16
|
-
exports.
|
27
|
+
exports.getOrInsert = (map, key, computer) => {
|
28
|
+
// Grab key from map
|
17
29
|
const value = map.get(key);
|
30
|
+
// If the value already exists, return it
|
18
31
|
if (value !== undefined) return value;
|
32
|
+
// Otherwise compute the value, set it in the map, and return it
|
19
33
|
const newValue = computer();
|
20
34
|
map.set(key, newValue);
|
21
35
|
return newValue;
|
@@ -8,6 +8,28 @@
|
|
8
8
|
/* cspell:disable-next-line */
|
9
9
|
// Refactor: Peter Somogyvari @petermetz
|
10
10
|
|
11
|
+
/** @typedef {">=" | "<=" | "<" | ">" | "-" } BinarySearchPredicate */
|
12
|
+
/** @typedef {"GE" | "GT" | "LT" | "LE" | "EQ" } SearchPredicateSuffix */
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Helper function for compiling binary search functions.
|
16
|
+
*
|
17
|
+
* The generated code uses a while loop to repeatedly divide the search interval
|
18
|
+
* in half until the desired element is found, or the search interval is empty.
|
19
|
+
*
|
20
|
+
* The following is an example of a generated function for calling `compileSearch("P", "c(x,y)<=0", true, ["y", "c"], false)`:
|
21
|
+
*
|
22
|
+
* ```js
|
23
|
+
* function P(a,l,h,y,c){var i=l-1;while(l<=h){var m=(l+h)>>>1,x=a[m];if(c(x,y)<=0){i=m;l=m+1}else{h=m-1}}return i};
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* @param {string} funcName The name of the function to be compiled.
|
27
|
+
* @param {string} predicate The predicate / comparison operator to be used in the binary search.
|
28
|
+
* @param {boolean} reversed Whether the search should be reversed.
|
29
|
+
* @param {string[]} extraArgs Extra arguments to be passed to the function.
|
30
|
+
* @param {boolean=} earlyOut Whether the search should return as soon as a match is found.
|
31
|
+
* @returns {string} The compiled binary search function.
|
32
|
+
*/
|
11
33
|
const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => {
|
12
34
|
const code = [
|
13
35
|
"function ",
|
@@ -43,6 +65,18 @@ const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => {
|
|
43
65
|
return code.join("");
|
44
66
|
};
|
45
67
|
|
68
|
+
/**
|
69
|
+
* This helper functions generate code for two binary search functions:
|
70
|
+
* A(): Performs a binary search on an array using the comparison operator specified.
|
71
|
+
* P(): Performs a binary search on an array using a _custom comparison function_
|
72
|
+
* `c(x,y)` **and** comparison operator specified by `predicate`.
|
73
|
+
*
|
74
|
+
* @param {BinarySearchPredicate} predicate The predicate / comparison operator to be used in the binary search.
|
75
|
+
* @param {boolean} reversed Whether the search should be reversed.
|
76
|
+
* @param {SearchPredicateSuffix} suffix The suffix to be used in the function name.
|
77
|
+
* @param {boolean=} earlyOut Whether the search should return as soon as a match is found.
|
78
|
+
* @returns {function} The compiled binary search function.
|
79
|
+
*/
|
46
80
|
const compileBoundsSearch = (predicate, reversed, suffix, earlyOut) => {
|
47
81
|
const arg1 = compileSearch(
|
48
82
|
"A",
|
@@ -77,6 +111,21 @@ return dispatchBinarySearch";
|
|
77
111
|
return result();
|
78
112
|
};
|
79
113
|
|
114
|
+
/**
|
115
|
+
* These functions are used to perform binary searches on arrays.
|
116
|
+
*
|
117
|
+
* @example
|
118
|
+
* ```js
|
119
|
+
* const { gt, le} = require("./binarySearchBounds");
|
120
|
+
* const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
|
121
|
+
*
|
122
|
+
* // Find the index of the first element greater than 5
|
123
|
+
* const index1 = gt(arr, 5); // index1 === 3
|
124
|
+
*
|
125
|
+
* // Find the index of the first element less than or equal to 5
|
126
|
+
* const index2 = le(arr, 5); // index2 === 4
|
127
|
+
* ```
|
128
|
+
*/
|
80
129
|
module.exports = {
|
81
130
|
ge: compileBoundsSearch(">=", false, "GE"),
|
82
131
|
gt: compileBoundsSearch(">", false, "GT"),
|
@@ -189,6 +189,7 @@ module.exports = {
|
|
189
189
|
ModuleParseError: () => require("../ModuleParseError"),
|
190
190
|
ModuleWarning: () => require("../ModuleWarning"),
|
191
191
|
NormalModule: () => require("../NormalModule"),
|
192
|
+
CssModule: () => require("../CssModule"),
|
192
193
|
RawDataUrlModule: () => require("../asset/RawDataUrlModule"),
|
193
194
|
RawModule: () => require("../RawModule"),
|
194
195
|
"sharing/ConsumeSharedModule": () =>
|
package/lib/util/semver.js
CHANGED
@@ -288,7 +288,7 @@ const satisfy = (range, version) => {
|
|
288
288
|
if (0 in range) {
|
289
289
|
// @ts-expect-error
|
290
290
|
version = parseVersion(version);
|
291
|
-
var fixCount = range[0];
|
291
|
+
var fixCount = /** @type {number} */ (range[0]);
|
292
292
|
// when negated is set it swill set for < instead of >=
|
293
293
|
var negated = fixCount < 0;
|
294
294
|
if (negated) fixCount = -fixCount - 1;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "webpack",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.81.0",
|
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",
|
@@ -56,7 +56,7 @@
|
|
56
56
|
"eslint": "^8.38.0",
|
57
57
|
"eslint-config-prettier": "^8.1.0",
|
58
58
|
"eslint-plugin-jest": "^27.2.1",
|
59
|
-
"eslint-plugin-jsdoc": "^
|
59
|
+
"eslint-plugin-jsdoc": "^43.0.5",
|
60
60
|
"eslint-plugin-node": "^11.0.0",
|
61
61
|
"eslint-plugin-prettier": "^4.2.1",
|
62
62
|
"file-loader": "^6.0.0",
|
@@ -76,7 +76,6 @@
|
|
76
76
|
"less": "^4.0.0",
|
77
77
|
"less-loader": "^8.0.0",
|
78
78
|
"lint-staged": "^13.2.1",
|
79
|
-
"loader-utils": "^2.0.3",
|
80
79
|
"lodash": "^4.17.19",
|
81
80
|
"lodash-es": "^4.17.15",
|
82
81
|
"memfs": "^3.5.0",
|
@@ -96,11 +95,11 @@
|
|
96
95
|
"simple-git": "^3.17.0",
|
97
96
|
"strip-ansi": "^6.0.0",
|
98
97
|
"style-loader": "^2.0.0",
|
99
|
-
"terser": "^5.
|
98
|
+
"terser": "^5.17.0",
|
100
99
|
"toml": "^3.0.0",
|
101
100
|
"tooling": "webpack/tooling#v1.22.1",
|
102
101
|
"ts-loader": "^9.4.2",
|
103
|
-
"typescript": "^
|
102
|
+
"typescript": "^5.0.4",
|
104
103
|
"url-loader": "^4.1.0",
|
105
104
|
"wast-loader": "^1.11.5",
|
106
105
|
"webassembly-feature": "1.3.0",
|