webpack 5.78.0 → 5.80.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/CompatibilityPlugin.js +27 -10
- package/lib/Compiler.js +7 -4
- package/lib/DefinePlugin.js +18 -6
- package/lib/LibManifestPlugin.js +2 -1
- package/lib/NormalModuleFactory.js +11 -1
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/asset/AssetGenerator.js +11 -3
- package/lib/css/CssLoadingRuntimeModule.js +1 -1
- package/lib/css/CssParser.js +113 -18
- package/lib/css/walkCssTokens.js +134 -74
- package/lib/dependencies/CssUrlDependency.js +30 -18
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +28 -3
- package/lib/dependencies/ImportMetaPlugin.js +56 -26
- package/lib/dependencies/ImportParserPlugin.js +17 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/index.js +5 -0
- package/lib/javascript/JavascriptParser.js +99 -1
- package/lib/schemes/DataUriPlugin.js +12 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +98 -25
- package/lib/stats/DefaultStatsPresetPlugin.js +9 -0
- package/lib/stats/DefaultStatsPrinterPlugin.js +18 -0
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/webpack.js +1 -1
- package/package.json +54 -51
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +8 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +195 -139
@@ -27,6 +27,8 @@ class ImportParserPlugin {
|
|
27
27
|
}
|
28
28
|
|
29
29
|
apply(parser) {
|
30
|
+
const exportsFromEnumerable = enumerable =>
|
31
|
+
Array.from(enumerable, e => [e]);
|
30
32
|
parser.hooks.importCall.tap("ImportParserPlugin", expr => {
|
31
33
|
const param = parser.evaluateExpression(expr.source);
|
32
34
|
|
@@ -184,7 +186,7 @@ class ImportParserPlugin {
|
|
184
186
|
if (typeof importOptions.webpackExports === "string") {
|
185
187
|
exports = [[importOptions.webpackExports]];
|
186
188
|
} else {
|
187
|
-
exports =
|
189
|
+
exports = exportsFromEnumerable(importOptions.webpackExports);
|
188
190
|
}
|
189
191
|
}
|
190
192
|
}
|
@@ -205,6 +207,20 @@ class ImportParserPlugin {
|
|
205
207
|
mode = "lazy";
|
206
208
|
}
|
207
209
|
|
210
|
+
const referencedPropertiesInDestructuring =
|
211
|
+
parser.destructuringAssignmentPropertiesFor(expr);
|
212
|
+
if (referencedPropertiesInDestructuring) {
|
213
|
+
if (exports) {
|
214
|
+
parser.state.module.addWarning(
|
215
|
+
new UnsupportedFeatureWarning(
|
216
|
+
`\`webpackExports\` could not be used with destructuring assignment.`,
|
217
|
+
expr.loc
|
218
|
+
)
|
219
|
+
);
|
220
|
+
}
|
221
|
+
exports = exportsFromEnumerable(referencedPropertiesInDestructuring);
|
222
|
+
}
|
223
|
+
|
208
224
|
if (param.isString()) {
|
209
225
|
if (mode === "eager") {
|
210
226
|
const dep = new ImportEagerDependency(
|
@@ -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
@@ -11,6 +11,11 @@ const memoize = require("./util/memoize");
|
|
11
11
|
/** @typedef {import("../declarations/WebpackOptions").Entry} Entry */
|
12
12
|
/** @typedef {import("../declarations/WebpackOptions").EntryNormalized} EntryNormalized */
|
13
13
|
/** @typedef {import("../declarations/WebpackOptions").EntryObject} EntryObject */
|
14
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemFunctionData} ExternalItemFunctionData */
|
15
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectKnown} ExternalItemObjectKnown */
|
16
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectUnknown} ExternalItemObjectUnknown */
|
17
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemValue} ExternalItemValue */
|
18
|
+
/** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
|
14
19
|
/** @typedef {import("../declarations/WebpackOptions").FileCacheOptions} FileCacheOptions */
|
15
20
|
/** @typedef {import("../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
16
21
|
/** @typedef {import("../declarations/WebpackOptions").ModuleOptions} ModuleOptions */
|
@@ -331,6 +331,8 @@ class JavascriptParser extends Parser {
|
|
331
331
|
/** @type {(StatementNode|ExpressionNode)[]} */
|
332
332
|
this.statementPath = undefined;
|
333
333
|
this.prevStatement = undefined;
|
334
|
+
/** @type {WeakMap<ExpressionNode, Set<string>>} */
|
335
|
+
this.destructuringAssignmentProperties = undefined;
|
334
336
|
this.currentTagData = undefined;
|
335
337
|
this._initializeEvaluating();
|
336
338
|
}
|
@@ -1411,6 +1413,15 @@ class JavascriptParser extends Parser {
|
|
1411
1413
|
});
|
1412
1414
|
}
|
1413
1415
|
|
1416
|
+
/**
|
1417
|
+
* @param {ExpressionNode} node node
|
1418
|
+
* @returns {Set<string>|undefined} destructured identifiers
|
1419
|
+
*/
|
1420
|
+
destructuringAssignmentPropertiesFor(node) {
|
1421
|
+
if (!this.destructuringAssignmentProperties) return undefined;
|
1422
|
+
return this.destructuringAssignmentProperties.get(node);
|
1423
|
+
}
|
1424
|
+
|
1414
1425
|
getRenameIdentifier(expr) {
|
1415
1426
|
const result = this.evaluateExpression(expr);
|
1416
1427
|
if (result.isIdentifier()) {
|
@@ -1557,6 +1568,8 @@ class JavascriptParser extends Parser {
|
|
1557
1568
|
case "ClassDeclaration":
|
1558
1569
|
this.blockPreWalkClassDeclaration(statement);
|
1559
1570
|
break;
|
1571
|
+
case "ExpressionStatement":
|
1572
|
+
this.blockPreWalkExpressionStatement(statement);
|
1560
1573
|
}
|
1561
1574
|
this.prevStatement = this.statementPath.pop();
|
1562
1575
|
}
|
@@ -1730,7 +1743,7 @@ class JavascriptParser extends Parser {
|
|
1730
1743
|
preWalkTryStatement(statement) {
|
1731
1744
|
this.preWalkStatement(statement.block);
|
1732
1745
|
if (statement.handler) this.preWalkCatchClause(statement.handler);
|
1733
|
-
if (statement.
|
1746
|
+
if (statement.finalizer) this.preWalkStatement(statement.finalizer);
|
1734
1747
|
}
|
1735
1748
|
|
1736
1749
|
walkTryStatement(statement) {
|
@@ -1890,6 +1903,42 @@ class JavascriptParser extends Parser {
|
|
1890
1903
|
this.scope.topLevelScope = wasTopLevel;
|
1891
1904
|
}
|
1892
1905
|
|
1906
|
+
blockPreWalkExpressionStatement(statement) {
|
1907
|
+
const expression = statement.expression;
|
1908
|
+
switch (expression.type) {
|
1909
|
+
case "AssignmentExpression":
|
1910
|
+
this.preWalkAssignmentExpression(expression);
|
1911
|
+
}
|
1912
|
+
}
|
1913
|
+
|
1914
|
+
preWalkAssignmentExpression(expression) {
|
1915
|
+
if (
|
1916
|
+
expression.left.type !== "ObjectPattern" ||
|
1917
|
+
!this.destructuringAssignmentProperties
|
1918
|
+
)
|
1919
|
+
return;
|
1920
|
+
const keys = this._preWalkObjectPattern(expression.left);
|
1921
|
+
if (!keys) return;
|
1922
|
+
|
1923
|
+
// check multiple assignments
|
1924
|
+
if (this.destructuringAssignmentProperties.has(expression)) {
|
1925
|
+
const set = this.destructuringAssignmentProperties.get(expression);
|
1926
|
+
this.destructuringAssignmentProperties.delete(expression);
|
1927
|
+
for (const id of set) keys.add(id);
|
1928
|
+
}
|
1929
|
+
|
1930
|
+
this.destructuringAssignmentProperties.set(
|
1931
|
+
expression.right.type === "AwaitExpression"
|
1932
|
+
? expression.right.argument
|
1933
|
+
: expression.right,
|
1934
|
+
keys
|
1935
|
+
);
|
1936
|
+
|
1937
|
+
if (expression.right.type === "AssignmentExpression") {
|
1938
|
+
this.preWalkAssignmentExpression(expression.right);
|
1939
|
+
}
|
1940
|
+
}
|
1941
|
+
|
1893
1942
|
blockPreWalkImportDeclaration(statement) {
|
1894
1943
|
const source = statement.source.value;
|
1895
1944
|
this.hooks.import.call(statement, source);
|
@@ -2087,6 +2136,7 @@ class JavascriptParser extends Parser {
|
|
2087
2136
|
for (const declarator of statement.declarations) {
|
2088
2137
|
switch (declarator.type) {
|
2089
2138
|
case "VariableDeclarator": {
|
2139
|
+
this.preWalkVariableDeclarator(declarator);
|
2090
2140
|
if (!this.hooks.preDeclarator.call(declarator, statement)) {
|
2091
2141
|
this.enterPattern(declarator.id, (name, decl) => {
|
2092
2142
|
let hook = hookMap.get(name);
|
@@ -2104,6 +2154,52 @@ class JavascriptParser extends Parser {
|
|
2104
2154
|
}
|
2105
2155
|
}
|
2106
2156
|
|
2157
|
+
_preWalkObjectPattern(objectPattern) {
|
2158
|
+
const ids = new Set();
|
2159
|
+
const properties = objectPattern.properties;
|
2160
|
+
for (let i = 0; i < properties.length; i++) {
|
2161
|
+
const property = properties[i];
|
2162
|
+
if (property.type !== "Property") return;
|
2163
|
+
const key = property.key;
|
2164
|
+
if (key.type === "Identifier") {
|
2165
|
+
ids.add(key.name);
|
2166
|
+
} else {
|
2167
|
+
const id = this.evaluateExpression(key);
|
2168
|
+
const str = id.asString();
|
2169
|
+
if (str) {
|
2170
|
+
ids.add(str);
|
2171
|
+
} else {
|
2172
|
+
// could not evaluate key
|
2173
|
+
return;
|
2174
|
+
}
|
2175
|
+
}
|
2176
|
+
}
|
2177
|
+
|
2178
|
+
return ids;
|
2179
|
+
}
|
2180
|
+
|
2181
|
+
preWalkVariableDeclarator(declarator) {
|
2182
|
+
if (
|
2183
|
+
!declarator.init ||
|
2184
|
+
declarator.id.type !== "ObjectPattern" ||
|
2185
|
+
!this.destructuringAssignmentProperties
|
2186
|
+
)
|
2187
|
+
return;
|
2188
|
+
const keys = this._preWalkObjectPattern(declarator.id);
|
2189
|
+
|
2190
|
+
if (!keys) return;
|
2191
|
+
this.destructuringAssignmentProperties.set(
|
2192
|
+
declarator.init.type === "AwaitExpression"
|
2193
|
+
? declarator.init.argument
|
2194
|
+
: declarator.init,
|
2195
|
+
keys
|
2196
|
+
);
|
2197
|
+
|
2198
|
+
if (declarator.init.type === "AssignmentExpression") {
|
2199
|
+
this.preWalkAssignmentExpression(declarator.init);
|
2200
|
+
}
|
2201
|
+
}
|
2202
|
+
|
2107
2203
|
walkVariableDeclaration(statement) {
|
2108
2204
|
for (const declarator of statement.declarations) {
|
2109
2205
|
switch (declarator.type) {
|
@@ -3367,12 +3463,14 @@ class JavascriptParser extends Parser {
|
|
3367
3463
|
this.statementPath = [];
|
3368
3464
|
this.prevStatement = undefined;
|
3369
3465
|
if (this.hooks.program.call(ast, comments) === undefined) {
|
3466
|
+
this.destructuringAssignmentProperties = new WeakMap();
|
3370
3467
|
this.detectMode(ast.body);
|
3371
3468
|
this.preWalkStatements(ast.body);
|
3372
3469
|
this.prevStatement = undefined;
|
3373
3470
|
this.blockPreWalkStatements(ast.body);
|
3374
3471
|
this.prevStatement = undefined;
|
3375
3472
|
this.walkStatements(ast.body);
|
3473
|
+
this.destructuringAssignmentProperties = undefined;
|
3376
3474
|
}
|
3377
3475
|
this.hooks.finish.call(ast, comments);
|
3378
3476
|
this.scope = oldScope;
|
@@ -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 {
|
@@ -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) {
|
@@ -47,6 +47,8 @@ const NAMED_PRESETS = {
|
|
47
47
|
orphanModules: true,
|
48
48
|
runtimeModules: true,
|
49
49
|
exclude: false,
|
50
|
+
errorsSpace: Infinity,
|
51
|
+
warningsSpace: Infinity,
|
50
52
|
modulesSpace: Infinity,
|
51
53
|
chunkModulesSpace: Infinity,
|
52
54
|
assetsSpace: Infinity,
|
@@ -73,6 +75,8 @@ const NAMED_PRESETS = {
|
|
73
75
|
logging: true,
|
74
76
|
runtimeModules: true,
|
75
77
|
exclude: false,
|
78
|
+
errorsSpace: 1000,
|
79
|
+
warningsSpace: 1000,
|
76
80
|
modulesSpace: 1000,
|
77
81
|
assetsSpace: 1000,
|
78
82
|
reasonsSpace: 1000
|
@@ -82,6 +86,8 @@ const NAMED_PRESETS = {
|
|
82
86
|
version: true,
|
83
87
|
timings: true,
|
84
88
|
modules: true,
|
89
|
+
errorsSpace: 0,
|
90
|
+
warningsSpace: 0,
|
85
91
|
modulesSpace: 0,
|
86
92
|
assets: true,
|
87
93
|
assetsSpace: 0,
|
@@ -95,6 +101,7 @@ const NAMED_PRESETS = {
|
|
95
101
|
all: false,
|
96
102
|
errors: true,
|
97
103
|
errorsCount: true,
|
104
|
+
errorsSpace: Infinity,
|
98
105
|
moduleTrace: true,
|
99
106
|
logging: "error"
|
100
107
|
},
|
@@ -102,8 +109,10 @@ const NAMED_PRESETS = {
|
|
102
109
|
all: false,
|
103
110
|
errors: true,
|
104
111
|
errorsCount: true,
|
112
|
+
errorsSpace: Infinity,
|
105
113
|
warnings: true,
|
106
114
|
warningsCount: true,
|
115
|
+
warningsSpace: Infinity,
|
107
116
|
logging: "warn"
|
108
117
|
},
|
109
118
|
summary: {
|
@@ -10,6 +10,7 @@
|
|
10
10
|
/** @typedef {import("./StatsPrinter").StatsPrinterContext} StatsPrinterContext */
|
11
11
|
|
12
12
|
const DATA_URI_CONTENT_LENGTH = 16;
|
13
|
+
const MAX_MODULE_IDENTIFIER_LENGTH = 80;
|
13
14
|
|
14
15
|
const plural = (n, singular, plural) => (n === 1 ? singular : plural);
|
15
16
|
|
@@ -42,6 +43,19 @@ const getResourceName = resource => {
|
|
42
43
|
|
43
44
|
const getModuleName = name => {
|
44
45
|
const [, prefix, resource] = /^(.*!)?([^!]*)$/.exec(name);
|
46
|
+
|
47
|
+
if (resource.length > MAX_MODULE_IDENTIFIER_LENGTH) {
|
48
|
+
const truncatedResource = `${resource.slice(
|
49
|
+
0,
|
50
|
+
Math.min(
|
51
|
+
resource.length - /* '...(truncated)'.length */ 14,
|
52
|
+
MAX_MODULE_IDENTIFIER_LENGTH
|
53
|
+
)
|
54
|
+
)}...(truncated)`;
|
55
|
+
|
56
|
+
return [prefix, getResourceName(truncatedResource)];
|
57
|
+
}
|
58
|
+
|
45
59
|
return [prefix, getResourceName(resource)];
|
46
60
|
};
|
47
61
|
|
@@ -589,6 +603,8 @@ const SIMPLE_PRINTERS = {
|
|
589
603
|
"error.message": (message, { bold, formatError }) =>
|
590
604
|
message.includes("\u001b[") ? message : bold(formatError(message)),
|
591
605
|
"error.details": (details, { formatError }) => formatError(details),
|
606
|
+
"error.filteredDetails": filteredDetails =>
|
607
|
+
filteredDetails ? `+ ${filteredDetails} hidden lines` : undefined,
|
592
608
|
"error.stack": stack => stack,
|
593
609
|
"error.moduleTrace": moduleTrace => undefined,
|
594
610
|
"error.separator!": () => "\n",
|
@@ -689,6 +705,8 @@ const ERROR_PREFERRED_ORDER = [
|
|
689
705
|
"separator!",
|
690
706
|
"details",
|
691
707
|
"separator!",
|
708
|
+
"filteredDetails",
|
709
|
+
"separator!",
|
692
710
|
"stack",
|
693
711
|
"separator!",
|
694
712
|
"missing",
|
package/lib/util/hash/md4.js
CHANGED
@@ -10,8 +10,8 @@ const create = require("./wasm-hash");
|
|
10
10
|
//#region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1
|
11
11
|
const md4 = new WebAssembly.Module(
|
12
12
|
Buffer.from(
|
13
|
-
//
|
14
|
-
"AGFzbQEAAAABCAJgAX8AYAAAAwUEAQAAAAUDAQABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/
|
13
|
+
// 2154 bytes
|
14
|
+
"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",
|
15
15
|
"base64"
|
16
16
|
)
|
17
17
|
);
|
@@ -11,7 +11,7 @@ const create = require("./wasm-hash");
|
|
11
11
|
const xxhash64 = new WebAssembly.Module(
|
12
12
|
Buffer.from(
|
13
13
|
// 1170 bytes
|
14
|
-
"AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrIIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/
|
14
|
+
"AGFzbQEAAAABCAJgAX8AYAAAAwQDAQAABQMBAAEGGgV+AUIAC34BQgALfgFCAAt+AUIAC34BQgALByIEBGluaXQAAAZ1cGRhdGUAAQVmaW5hbAACBm1lbW9yeQIACrIIAzAAQtbrgu7q/Yn14AAkAELP1tO+0ser2UIkAUIAJAJC+erQ0OfJoeThACQDQgAkBAvUAQIBfwR+IABFBEAPCyMEIACtfCQEIwAhAiMBIQMjAiEEIwMhBQNAIAIgASkDAELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiECIAMgASkDCELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEDIAQgASkDEELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEEIAUgASkDGELP1tO+0ser2UJ+fEIfiUKHla+vmLbem55/fiEFIAFBIGoiASAASQ0ACyACJAAgAyQBIAQkAiAFJAMLqAYCAX8EfiMEQgBSBH4jACICQgGJIwEiA0IHiXwjAiIEQgyJfCMDIgVCEol8IAJCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0gA0LP1tO+0ser2UJ+Qh+JQoeVr6+Ytt6bnn9+hUKHla+vmLbem55/fkKdo7Xqg7GNivoAfSAEQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IAVCz9bTvtLHq9lCfkIfiUKHla+vmLbem55/foVCh5Wvr5i23puef35CnaO16oOxjYr6AH0FQsXP2bLx5brqJwsjBCAArXx8IQIDQCABQQhqIABNBEAgAiABKQMAQs/W077Sx6vZQn5CH4lCh5Wvr5i23puef36FQhuJQoeVr6+Ytt6bnn9+Qp2jteqDsY2K+gB9IQIgAUEIaiEBDAELCyABQQRqIABNBEAgAiABNQIAQoeVr6+Ytt6bnn9+hUIXiULP1tO+0ser2UJ+Qvnz3fGZ9pmrFnwhAiABQQRqIQELA0AgACABRwRAIAIgATEAAELFz9my8eW66id+hUILiUKHla+vmLbem55/fiECIAFBAWohAQwBCwtBACACIAJCIYiFQs/W077Sx6vZQn4iAkIdiCAChUL5893xmfaZqxZ+IgJCIIggAoUiAkIgiCIDQv//A4NCIIYgA0KAgPz/D4NCEIiEIgNC/4GAgPAfg0IQhiADQoD+g4CA4D+DQgiIhCIDQo+AvIDwgcAHg0IIhiADQvCBwIeAnoD4AINCBIiEIgNChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IANCsODAgYOGjJgwhHw3AwBBCCACQv////8PgyICQv//A4NCIIYgAkKAgPz/D4NCEIiEIgJC/4GAgPAfg0IQhiACQoD+g4CA4D+DQgiIhCICQo+AvIDwgcAHg0IIhiACQvCBwIeAnoD4AINCBIiEIgJChoyYsODAgYMGfEIEiEKBgoSIkKDAgAGDQid+IAJCsODAgYOGjJgwhHw3AwAL",
|
15
15
|
"base64"
|
16
16
|
)
|
17
17
|
);
|
package/lib/webpack.js
CHANGED
@@ -103,7 +103,7 @@ const webpack = /** @type {WebpackFunctionSingle & WebpackFunctionMulti} */ (
|
|
103
103
|
/**
|
104
104
|
* @param {WebpackOptions | (ReadonlyArray<WebpackOptions> & MultiCompilerOptions)} options options
|
105
105
|
* @param {Callback<Stats> & Callback<MultiStats>=} callback callback
|
106
|
-
* @returns {Compiler | MultiCompiler}
|
106
|
+
* @returns {Compiler | MultiCompiler} Compiler or MultiCompiler
|
107
107
|
*/
|
108
108
|
(options, callback) => {
|
109
109
|
const create = () => {
|