webpack 5.79.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/README.md +3 -0
- 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 +26 -4
- package/lib/RawModule.js +8 -0
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WebpackError.js +8 -0
- package/lib/asset/AssetGenerator.js +11 -3
- 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 +226 -72
- package/lib/css/walkCssTokens.js +152 -117
- 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 +38 -18
- 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/ImportMetaPlugin.js +56 -26
- package/lib/dependencies/ImportParserPlugin.js +17 -1
- 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/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/index.js +1 -0
- package/lib/javascript/JavascriptParser.js +14 -4
- package/lib/optimize/RealContentHashPlugin.js +6 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +6 -1
- package/lib/schemes/DataUriPlugin.js +12 -3
- 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/stats/DefaultStatsFactoryPlugin.js +98 -25
- package/lib/stats/DefaultStatsPresetPlugin.js +9 -0
- package/lib/stats/DefaultStatsPrinterPlugin.js +4 -0
- 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 +19 -22
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +16 -0
- package/types.d.ts +108 -39
@@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
10
10
|
const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
|
11
11
|
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
|
+
|
12
15
|
class RequireResolveContextDependency extends ContextDependency {
|
13
16
|
constructor(options, range, valueRange, context) {
|
14
17
|
super(options, context);
|
@@ -21,6 +24,9 @@ class RequireResolveContextDependency extends ContextDependency {
|
|
21
24
|
return "amd require context";
|
22
25
|
}
|
23
26
|
|
27
|
+
/**
|
28
|
+
* @param {ObjectSerializerContext} context context
|
29
|
+
*/
|
24
30
|
serialize(context) {
|
25
31
|
const { write } = context;
|
26
32
|
|
@@ -30,6 +36,9 @@ class RequireResolveContextDependency extends ContextDependency {
|
|
30
36
|
super.serialize(context);
|
31
37
|
}
|
32
38
|
|
39
|
+
/**
|
40
|
+
* @param {ObjectDeserializerContext} context context
|
41
|
+
*/
|
33
42
|
deserialize(context) {
|
34
43
|
const { read } = context;
|
35
44
|
|
@@ -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 RequireResolveHeaderDependency extends NullDependency {
|
16
18
|
constructor(range) {
|
@@ -21,6 +23,9 @@ class RequireResolveHeaderDependency extends NullDependency {
|
|
21
23
|
this.range = range;
|
22
24
|
}
|
23
25
|
|
26
|
+
/**
|
27
|
+
* @param {ObjectSerializerContext} context context
|
28
|
+
*/
|
24
29
|
serialize(context) {
|
25
30
|
const { write } = context;
|
26
31
|
|
@@ -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();
|
@@ -81,7 +81,7 @@ class OccurrenceModuleIdsPlugin {
|
|
81
81
|
] of moduleGraph.getIncomingConnectionsByOriginModule(module)) {
|
82
82
|
if (!originModule) continue;
|
83
83
|
if (!connections.some(c => c.isTargetActive(undefined))) continue;
|
84
|
-
sum += initialChunkChunkMap.get(originModule);
|
84
|
+
sum += initialChunkChunkMap.get(originModule) || 0;
|
85
85
|
}
|
86
86
|
return sum;
|
87
87
|
};
|
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 */
|
@@ -1743,7 +1743,7 @@ class JavascriptParser extends Parser {
|
|
1743
1743
|
preWalkTryStatement(statement) {
|
1744
1744
|
this.preWalkStatement(statement.block);
|
1745
1745
|
if (statement.handler) this.preWalkCatchClause(statement.handler);
|
1746
|
-
if (statement.
|
1746
|
+
if (statement.finalizer) this.preWalkStatement(statement.finalizer);
|
1747
1747
|
}
|
1748
1748
|
|
1749
1749
|
walkTryStatement(statement) {
|
@@ -1927,7 +1927,12 @@ class JavascriptParser extends Parser {
|
|
1927
1927
|
for (const id of set) keys.add(id);
|
1928
1928
|
}
|
1929
1929
|
|
1930
|
-
this.destructuringAssignmentProperties.set(
|
1930
|
+
this.destructuringAssignmentProperties.set(
|
1931
|
+
expression.right.type === "AwaitExpression"
|
1932
|
+
? expression.right.argument
|
1933
|
+
: expression.right,
|
1934
|
+
keys
|
1935
|
+
);
|
1931
1936
|
|
1932
1937
|
if (expression.right.type === "AssignmentExpression") {
|
1933
1938
|
this.preWalkAssignmentExpression(expression.right);
|
@@ -2183,7 +2188,12 @@ class JavascriptParser extends Parser {
|
|
2183
2188
|
const keys = this._preWalkObjectPattern(declarator.id);
|
2184
2189
|
|
2185
2190
|
if (!keys) return;
|
2186
|
-
this.destructuringAssignmentProperties.set(
|
2191
|
+
this.destructuringAssignmentProperties.set(
|
2192
|
+
declarator.init.type === "AwaitExpression"
|
2193
|
+
? declarator.init.argument
|
2194
|
+
: declarator.init,
|
2195
|
+
keys
|
2196
|
+
);
|
2187
2197
|
|
2188
2198
|
if (declarator.init.type === "AssignmentExpression") {
|
2189
2199
|
this.preWalkAssignmentExpression(declarator.init);
|
@@ -2472,7 +2482,7 @@ class JavascriptParser extends Parser {
|
|
2472
2482
|
walkFunctionExpression(expression) {
|
2473
2483
|
const wasTopLevel = this.scope.topLevelScope;
|
2474
2484
|
this.scope.topLevelScope = false;
|
2475
|
-
const scopeParams = expression.params;
|
2485
|
+
const scopeParams = [...expression.params];
|
2476
2486
|
|
2477
2487
|
// Add function name in scope for recursive calls
|
2478
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
|
]),
|
@@ -19,9 +19,18 @@ const decodeDataURI = uri => {
|
|
19
19
|
|
20
20
|
const isBase64 = match[3];
|
21
21
|
const body = match[4];
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
|
23
|
+
if (isBase64) {
|
24
|
+
return Buffer.from(body, "base64");
|
25
|
+
}
|
26
|
+
|
27
|
+
// CSS allows to use `data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="stroke: rgb(223,224,225); stroke-width: 2px; fill: none; stroke-dasharray: 6px 3px" /></svg>`
|
28
|
+
// so we return original body if we can't `decodeURIComponent`
|
29
|
+
try {
|
30
|
+
return Buffer.from(decodeURIComponent(body), "ascii");
|
31
|
+
} catch (_) {
|
32
|
+
return Buffer.from(body, "ascii");
|
33
|
+
}
|
25
34
|
};
|
26
35
|
|
27
36
|
class DataUriPlugin {
|
@@ -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",
|
@@ -811,11 +811,32 @@ const SIMPLE_EXTRACTORS = {
|
|
811
811
|
},
|
812
812
|
errors: (object, compilation, context, options, factory) => {
|
813
813
|
const { type, cachedGetErrors } = context;
|
814
|
-
|
814
|
+
const rawErrors = cachedGetErrors(compilation);
|
815
|
+
const factorizedErrors = factory.create(
|
815
816
|
`${type}.errors`,
|
816
817
|
cachedGetErrors(compilation),
|
817
818
|
context
|
818
819
|
);
|
820
|
+
let filtered = 0;
|
821
|
+
if (options.errorDetails === "auto" && rawErrors.length >= 3) {
|
822
|
+
filtered = rawErrors
|
823
|
+
.map(e => typeof e !== "string" && e.details)
|
824
|
+
.filter(Boolean).length;
|
825
|
+
}
|
826
|
+
if (
|
827
|
+
options.errorDetails === true ||
|
828
|
+
!Number.isFinite(options.errorsSpace)
|
829
|
+
) {
|
830
|
+
object.errors = factorizedErrors;
|
831
|
+
if (filtered) object.filteredErrorDetailsCount = filtered;
|
832
|
+
return;
|
833
|
+
}
|
834
|
+
const [errors, filteredBySpace] = errorsSpaceLimit(
|
835
|
+
factorizedErrors,
|
836
|
+
options.errorsSpace
|
837
|
+
);
|
838
|
+
object.filteredErrorDetailsCount = filtered + filteredBySpace;
|
839
|
+
object.errors = errors;
|
819
840
|
},
|
820
841
|
errorsCount: (object, compilation, { cachedGetErrors }) => {
|
821
842
|
object.errorsCount = countWithChildren(compilation, c =>
|
@@ -824,11 +845,31 @@ const SIMPLE_EXTRACTORS = {
|
|
824
845
|
},
|
825
846
|
warnings: (object, compilation, context, options, factory) => {
|
826
847
|
const { type, cachedGetWarnings } = context;
|
827
|
-
|
848
|
+
const rawWarnings = factory.create(
|
828
849
|
`${type}.warnings`,
|
829
850
|
cachedGetWarnings(compilation),
|
830
851
|
context
|
831
852
|
);
|
853
|
+
let filtered = 0;
|
854
|
+
if (options.errorDetails === "auto") {
|
855
|
+
filtered = cachedGetWarnings(compilation)
|
856
|
+
.map(e => typeof e !== "string" && e.details)
|
857
|
+
.filter(Boolean).length;
|
858
|
+
}
|
859
|
+
if (
|
860
|
+
options.errorDetails === true ||
|
861
|
+
!Number.isFinite(options.warningsSpace)
|
862
|
+
) {
|
863
|
+
object.warnings = rawWarnings;
|
864
|
+
if (filtered) object.filteredWarningDetailsCount = filtered;
|
865
|
+
return;
|
866
|
+
}
|
867
|
+
const [warnings, filteredBySpace] = errorsSpaceLimit(
|
868
|
+
rawWarnings,
|
869
|
+
options.warningsSpace
|
870
|
+
);
|
871
|
+
object.filteredWarningDetailsCount = filtered + filteredBySpace;
|
872
|
+
object.warnings = warnings;
|
832
873
|
},
|
833
874
|
warningsCount: (
|
834
875
|
object,
|
@@ -853,29 +894,6 @@ const SIMPLE_EXTRACTORS = {
|
|
853
894
|
});
|
854
895
|
});
|
855
896
|
},
|
856
|
-
errorDetails: (
|
857
|
-
object,
|
858
|
-
compilation,
|
859
|
-
{ cachedGetErrors, cachedGetWarnings },
|
860
|
-
{ errorDetails, errors, warnings }
|
861
|
-
) => {
|
862
|
-
if (errorDetails === "auto") {
|
863
|
-
if (warnings) {
|
864
|
-
const warnings = cachedGetWarnings(compilation);
|
865
|
-
object.filteredWarningDetailsCount = warnings
|
866
|
-
.map(e => typeof e !== "string" && e.details)
|
867
|
-
.filter(Boolean).length;
|
868
|
-
}
|
869
|
-
if (errors) {
|
870
|
-
const errors = cachedGetErrors(compilation);
|
871
|
-
if (errors.length >= 3) {
|
872
|
-
object.filteredErrorDetailsCount = errors
|
873
|
-
.map(e => typeof e !== "string" && e.details)
|
874
|
-
.filter(Boolean).length;
|
875
|
-
}
|
876
|
-
}
|
877
|
-
}
|
878
|
-
},
|
879
897
|
children: (object, compilation, context, options, factory) => {
|
880
898
|
const { type } = context;
|
881
899
|
object.children = factory.create(
|
@@ -1779,6 +1797,61 @@ const spaceLimited = (
|
|
1779
1797
|
};
|
1780
1798
|
};
|
1781
1799
|
|
1800
|
+
const errorsSpaceLimit = (errors, max) => {
|
1801
|
+
let filtered = 0;
|
1802
|
+
// Can not fit into limit
|
1803
|
+
// print only messages
|
1804
|
+
if (errors.length + 1 >= max)
|
1805
|
+
return [
|
1806
|
+
errors.map(error => {
|
1807
|
+
if (typeof error === "string" || !error.details) return error;
|
1808
|
+
filtered++;
|
1809
|
+
return { ...error, details: "" };
|
1810
|
+
}),
|
1811
|
+
filtered
|
1812
|
+
];
|
1813
|
+
let fullLength = errors.length;
|
1814
|
+
let result = errors;
|
1815
|
+
|
1816
|
+
let i = 0;
|
1817
|
+
for (; i < errors.length; i++) {
|
1818
|
+
const error = errors[i];
|
1819
|
+
if (typeof error !== "string" && error.details) {
|
1820
|
+
const splitted = error.details.split("\n");
|
1821
|
+
const len = splitted.length;
|
1822
|
+
fullLength += len;
|
1823
|
+
if (fullLength > max) {
|
1824
|
+
result = i > 0 ? errors.slice(0, i) : [];
|
1825
|
+
const overLimit = fullLength - max + 1;
|
1826
|
+
const error = errors[i++];
|
1827
|
+
result.push({
|
1828
|
+
...error,
|
1829
|
+
details: error.details.split("\n").slice(0, -overLimit).join("\n"),
|
1830
|
+
filteredDetails: overLimit
|
1831
|
+
});
|
1832
|
+
filtered = errors.length - i;
|
1833
|
+
for (; i < errors.length; i++) {
|
1834
|
+
const error = errors[i];
|
1835
|
+
if (typeof error === "string" || !error.details) result.push(error);
|
1836
|
+
result.push({ ...error, details: "" });
|
1837
|
+
}
|
1838
|
+
break;
|
1839
|
+
} else if (fullLength === max) {
|
1840
|
+
result = errors.slice(0, ++i);
|
1841
|
+
filtered = errors.length - i;
|
1842
|
+
for (; i < errors.length; i++) {
|
1843
|
+
const error = errors[i];
|
1844
|
+
if (typeof error === "string" || !error.details) result.push(error);
|
1845
|
+
result.push({ ...error, details: "" });
|
1846
|
+
}
|
1847
|
+
break;
|
1848
|
+
}
|
1849
|
+
}
|
1850
|
+
}
|
1851
|
+
|
1852
|
+
return [result, filtered];
|
1853
|
+
};
|
1854
|
+
|
1782
1855
|
const assetGroup = (children, assets) => {
|
1783
1856
|
let size = 0;
|
1784
1857
|
for (const asset of children) {
|