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
@@ -12,6 +12,8 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend
|
|
12
12
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
13
13
|
/** @typedef {import("../Dependency")} Dependency */
|
14
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
15
17
|
|
16
18
|
/**
|
17
19
|
* Dependency for static evaluating import specifier. e.g.
|
@@ -30,12 +32,18 @@ class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDe
|
|
30
32
|
return `evaluated X ${this.operator} harmony import specifier`;
|
31
33
|
}
|
32
34
|
|
35
|
+
/**
|
36
|
+
* @param {ObjectSerializerContext} context context
|
37
|
+
*/
|
33
38
|
serialize(context) {
|
34
39
|
super.serialize(context);
|
35
40
|
const { write } = context;
|
36
41
|
write(this.operator);
|
37
42
|
}
|
38
43
|
|
44
|
+
/**
|
45
|
+
* @param {ObjectDeserializerContext} context context
|
46
|
+
*/
|
39
47
|
deserialize(context) {
|
40
48
|
super.deserialize(context);
|
41
49
|
const { read } = context;
|
@@ -17,6 +17,8 @@ const NullDependency = require("./NullDependency");
|
|
17
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
19
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
20
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
20
22
|
|
21
23
|
class HarmonyExportExpressionDependency extends NullDependency {
|
22
24
|
constructor(range, rangeStatement, prefix, declarationId) {
|
@@ -54,6 +56,9 @@ class HarmonyExportExpressionDependency extends NullDependency {
|
|
54
56
|
return false;
|
55
57
|
}
|
56
58
|
|
59
|
+
/**
|
60
|
+
* @param {ObjectSerializerContext} context context
|
61
|
+
*/
|
57
62
|
serialize(context) {
|
58
63
|
const { write } = context;
|
59
64
|
write(this.range);
|
@@ -63,6 +68,9 @@ class HarmonyExportExpressionDependency extends NullDependency {
|
|
63
68
|
super.serialize(context);
|
64
69
|
}
|
65
70
|
|
71
|
+
/**
|
72
|
+
* @param {ObjectDeserializerContext} context context
|
73
|
+
*/
|
66
74
|
deserialize(context) {
|
67
75
|
const { read } = context;
|
68
76
|
this.range = 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 HarmonyExportHeaderDependency extends NullDependency {
|
16
18
|
constructor(range, rangeStatement) {
|
@@ -23,6 +25,9 @@ class HarmonyExportHeaderDependency extends NullDependency {
|
|
23
25
|
return "harmony export header";
|
24
26
|
}
|
25
27
|
|
28
|
+
/**
|
29
|
+
* @param {ObjectSerializerContext} context context
|
30
|
+
*/
|
26
31
|
serialize(context) {
|
27
32
|
const { write } = context;
|
28
33
|
write(this.range);
|
@@ -30,6 +35,9 @@ class HarmonyExportHeaderDependency extends NullDependency {
|
|
30
35
|
super.serialize(context);
|
31
36
|
}
|
32
37
|
|
38
|
+
/**
|
39
|
+
* @param {ObjectDeserializerContext} context context
|
40
|
+
*/
|
33
41
|
deserialize(context) {
|
34
42
|
const { read } = context;
|
35
43
|
this.range = read();
|
@@ -35,6 +35,8 @@ const processExportInfo = require("./processExportInfo");
|
|
35
35
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
36
36
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
37
37
|
/** @typedef {import("../WebpackError")} WebpackError */
|
38
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
39
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
38
40
|
/** @typedef {import("../util/Hash")} Hash */
|
39
41
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
40
42
|
|
@@ -856,6 +858,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
856
858
|
return errors;
|
857
859
|
}
|
858
860
|
|
861
|
+
/**
|
862
|
+
* @param {ObjectSerializerContext} context context
|
863
|
+
*/
|
859
864
|
serialize(context) {
|
860
865
|
const { write, setCircularReference } = context;
|
861
866
|
|
@@ -870,6 +875,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
870
875
|
super.serialize(context);
|
871
876
|
}
|
872
877
|
|
878
|
+
/**
|
879
|
+
* @param {ObjectDeserializerContext} context context
|
880
|
+
*/
|
873
881
|
deserialize(context) {
|
874
882
|
const { read, setCircularReference } = context;
|
875
883
|
|
@@ -1251,11 +1259,17 @@ class HarmonyStarExportsList {
|
|
1251
1259
|
return this.dependencies.slice();
|
1252
1260
|
}
|
1253
1261
|
|
1262
|
+
/**
|
1263
|
+
* @param {ObjectSerializerContext} context context
|
1264
|
+
*/
|
1254
1265
|
serialize({ write, setCircularReference }) {
|
1255
1266
|
setCircularReference(this);
|
1256
1267
|
write(this.dependencies);
|
1257
1268
|
}
|
1258
1269
|
|
1270
|
+
/**
|
1271
|
+
* @param {ObjectDeserializerContext} context context
|
1272
|
+
*/
|
1259
1273
|
deserialize({ read, setCircularReference }) {
|
1260
1274
|
setCircularReference(this);
|
1261
1275
|
this.dependencies = read();
|
@@ -15,6 +15,8 @@ const NullDependency = require("./NullDependency");
|
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
17
17
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
18
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
19
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
18
20
|
|
19
21
|
class HarmonyExportSpecifierDependency extends NullDependency {
|
20
22
|
constructor(id, name) {
|
@@ -49,6 +51,9 @@ class HarmonyExportSpecifierDependency extends NullDependency {
|
|
49
51
|
return false;
|
50
52
|
}
|
51
53
|
|
54
|
+
/**
|
55
|
+
* @param {ObjectSerializerContext} context context
|
56
|
+
*/
|
52
57
|
serialize(context) {
|
53
58
|
const { write } = context;
|
54
59
|
write(this.id);
|
@@ -56,6 +61,9 @@ class HarmonyExportSpecifierDependency extends NullDependency {
|
|
56
61
|
super.serialize(context);
|
57
62
|
}
|
58
63
|
|
64
|
+
/**
|
65
|
+
* @param {ObjectDeserializerContext} context context
|
66
|
+
*/
|
59
67
|
deserialize(context) {
|
60
68
|
const { read } = context;
|
61
69
|
this.id = read();
|
@@ -24,6 +24,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
24
24
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
25
25
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
26
26
|
/** @typedef {import("../WebpackError")} WebpackError */
|
27
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
28
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
27
29
|
/** @typedef {import("../util/Hash")} Hash */
|
28
30
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
29
31
|
|
@@ -221,6 +223,9 @@ class HarmonyImportDependency extends ModuleDependency {
|
|
221
223
|
}
|
222
224
|
}
|
223
225
|
|
226
|
+
/**
|
227
|
+
* @param {ObjectSerializerContext} context context
|
228
|
+
*/
|
224
229
|
serialize(context) {
|
225
230
|
const { write } = context;
|
226
231
|
write(this.sourceOrder);
|
@@ -228,6 +233,9 @@ class HarmonyImportDependency extends ModuleDependency {
|
|
228
233
|
super.serialize(context);
|
229
234
|
}
|
230
235
|
|
236
|
+
/**
|
237
|
+
* @param {ObjectDeserializerContext} context context
|
238
|
+
*/
|
231
239
|
deserialize(context) {
|
232
240
|
const { read } = context;
|
233
241
|
this.sourceOrder = read();
|
@@ -23,6 +23,8 @@ const HarmonyImportDependency = require("./HarmonyImportDependency");
|
|
23
23
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
24
24
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
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/runtime").RuntimeSpec} RuntimeSpec */
|
28
30
|
|
@@ -237,6 +239,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
237
239
|
return 0;
|
238
240
|
}
|
239
241
|
|
242
|
+
/**
|
243
|
+
* @param {ObjectSerializerContext} context context
|
244
|
+
*/
|
240
245
|
serialize(context) {
|
241
246
|
const { write } = context;
|
242
247
|
write(this.ids);
|
@@ -253,6 +258,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency {
|
|
253
258
|
super.serialize(context);
|
254
259
|
}
|
255
260
|
|
261
|
+
/**
|
262
|
+
* @param {ObjectDeserializerContext} context context
|
263
|
+
*/
|
256
264
|
deserialize(context) {
|
257
265
|
const { read } = context;
|
258
266
|
this.ids = read();
|
@@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
10
10
|
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
11
11
|
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
|
+
|
12
15
|
class ImportContextDependency extends ContextDependency {
|
13
16
|
constructor(options, range, valueRange) {
|
14
17
|
super(options);
|
@@ -25,6 +28,9 @@ class ImportContextDependency extends ContextDependency {
|
|
25
28
|
return "esm";
|
26
29
|
}
|
27
30
|
|
31
|
+
/**
|
32
|
+
* @param {ObjectSerializerContext} context context
|
33
|
+
*/
|
28
34
|
serialize(context) {
|
29
35
|
const { write } = context;
|
30
36
|
|
@@ -33,6 +39,9 @@ class ImportContextDependency extends ContextDependency {
|
|
33
39
|
super.serialize(context);
|
34
40
|
}
|
35
41
|
|
42
|
+
/**
|
43
|
+
* @param {ObjectDeserializerContext} context context
|
44
|
+
*/
|
36
45
|
deserialize(context) {
|
37
46
|
const { read } = context;
|
38
47
|
|
@@ -14,6 +14,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
14
14
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
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/runtime").RuntimeSpec} RuntimeSpec */
|
18
20
|
|
19
21
|
class ImportDependency extends ModuleDependency {
|
@@ -51,12 +53,18 @@ class ImportDependency extends ModuleDependency {
|
|
51
53
|
: Dependency.EXPORTS_OBJECT_REFERENCED;
|
52
54
|
}
|
53
55
|
|
56
|
+
/**
|
57
|
+
* @param {ObjectSerializerContext} context context
|
58
|
+
*/
|
54
59
|
serialize(context) {
|
55
60
|
context.write(this.range);
|
56
61
|
context.write(this.referencedExports);
|
57
62
|
super.serialize(context);
|
58
63
|
}
|
59
64
|
|
65
|
+
/**
|
66
|
+
* @param {ObjectDeserializerContext} context context
|
67
|
+
*/
|
60
68
|
deserialize(context) {
|
61
69
|
this.range = context.read();
|
62
70
|
this.referencedExports = context.read();
|
@@ -75,6 +75,17 @@ class ImportMetaPlugin {
|
|
75
75
|
}
|
76
76
|
|
77
77
|
/// import.meta direct ///
|
78
|
+
const webpackVersion = parseInt(
|
79
|
+
require("../../package.json").version,
|
80
|
+
10
|
81
|
+
);
|
82
|
+
const importMetaUrl = () =>
|
83
|
+
JSON.stringify(getUrl(parser.state.module));
|
84
|
+
const importMetaWebpackVersion = () => JSON.stringify(webpackVersion);
|
85
|
+
const importMetaUnknownProperty = members =>
|
86
|
+
`${Template.toNormalComment(
|
87
|
+
"unsupported import.meta." + members.join(".")
|
88
|
+
)} undefined${propertyAccess(members, 1)}`;
|
78
89
|
parser.hooks.typeof
|
79
90
|
.for("import.meta")
|
80
91
|
.tap(
|
@@ -84,20 +95,48 @@ class ImportMetaPlugin {
|
|
84
95
|
parser.hooks.expression
|
85
96
|
.for("import.meta")
|
86
97
|
.tap(PLUGIN_NAME, metaProperty => {
|
87
|
-
const
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
98
|
+
const referencedPropertiesInDestructuring =
|
99
|
+
parser.destructuringAssignmentPropertiesFor(metaProperty);
|
100
|
+
if (!referencedPropertiesInDestructuring) {
|
101
|
+
const CriticalDependencyWarning =
|
102
|
+
getCriticalDependencyWarning();
|
103
|
+
parser.state.module.addWarning(
|
104
|
+
new ModuleDependencyWarning(
|
105
|
+
parser.state.module,
|
106
|
+
new CriticalDependencyWarning(
|
107
|
+
"Accessing import.meta directly is unsupported (only property access or destructuring is supported)"
|
108
|
+
),
|
109
|
+
metaProperty.loc
|
110
|
+
)
|
111
|
+
);
|
112
|
+
const dep = new ConstDependency(
|
113
|
+
`${
|
114
|
+
parser.isAsiPosition(metaProperty.range[0]) ? ";" : ""
|
115
|
+
}({})`,
|
116
|
+
metaProperty.range
|
117
|
+
);
|
118
|
+
dep.loc = metaProperty.loc;
|
119
|
+
parser.state.module.addPresentationalDependency(dep);
|
120
|
+
return true;
|
121
|
+
}
|
122
|
+
|
123
|
+
let str = "";
|
124
|
+
for (const prop of referencedPropertiesInDestructuring) {
|
125
|
+
switch (prop) {
|
126
|
+
case "url":
|
127
|
+
str += `url: ${importMetaUrl()},`;
|
128
|
+
break;
|
129
|
+
case "webpack":
|
130
|
+
str += `webpack: ${importMetaWebpackVersion()},`;
|
131
|
+
break;
|
132
|
+
default:
|
133
|
+
str += `[${JSON.stringify(
|
134
|
+
prop
|
135
|
+
)}]: ${importMetaUnknownProperty([prop])},`;
|
136
|
+
break;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
const dep = new ConstDependency(`({${str}})`, metaProperty.range);
|
101
140
|
dep.loc = metaProperty.loc;
|
102
141
|
parser.state.module.addPresentationalDependency(dep);
|
103
142
|
return true;
|
@@ -120,10 +159,7 @@ class ImportMetaPlugin {
|
|
120
159
|
parser.hooks.expression
|
121
160
|
.for("import.meta.url")
|
122
161
|
.tap(PLUGIN_NAME, expr => {
|
123
|
-
const dep = new ConstDependency(
|
124
|
-
JSON.stringify(getUrl(parser.state.module)),
|
125
|
-
expr.range
|
126
|
-
);
|
162
|
+
const dep = new ConstDependency(importMetaUrl(), expr.range);
|
127
163
|
dep.loc = expr.loc;
|
128
164
|
parser.state.module.addPresentationalDependency(dep);
|
129
165
|
return true;
|
@@ -140,10 +176,6 @@ class ImportMetaPlugin {
|
|
140
176
|
});
|
141
177
|
|
142
178
|
/// import.meta.webpack ///
|
143
|
-
const webpackVersion = parseInt(
|
144
|
-
require("../../package.json").version,
|
145
|
-
10
|
146
|
-
);
|
147
179
|
parser.hooks.typeof
|
148
180
|
.for("import.meta.webpack")
|
149
181
|
.tap(
|
@@ -154,7 +186,7 @@ class ImportMetaPlugin {
|
|
154
186
|
.for("import.meta.webpack")
|
155
187
|
.tap(
|
156
188
|
PLUGIN_NAME,
|
157
|
-
toConstantDependency(parser,
|
189
|
+
toConstantDependency(parser, importMetaWebpackVersion())
|
158
190
|
);
|
159
191
|
parser.hooks.evaluateTypeof
|
160
192
|
.for("import.meta.webpack")
|
@@ -168,9 +200,7 @@ class ImportMetaPlugin {
|
|
168
200
|
.for("import.meta")
|
169
201
|
.tap(PLUGIN_NAME, (expr, members) => {
|
170
202
|
const dep = new ConstDependency(
|
171
|
-
|
172
|
-
"unsupported import.meta." + members.join(".")
|
173
|
-
)} undefined${propertyAccess(members, 1)}`,
|
203
|
+
importMetaUnknownProperty(members),
|
174
204
|
expr.range
|
175
205
|
);
|
176
206
|
dep.loc = expr.loc;
|
@@ -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(
|
@@ -14,6 +14,8 @@ const NullDependency = require("./NullDependency");
|
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
15
15
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
16
16
|
/** @typedef {import("../json/JsonData")} JsonData */
|
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
|
const getExportsFromData = data => {
|
@@ -78,12 +80,18 @@ class JsonExportsDependency extends NullDependency {
|
|
78
80
|
this.data.updateHash(hash);
|
79
81
|
}
|
80
82
|
|
83
|
+
/**
|
84
|
+
* @param {ObjectSerializerContext} context context
|
85
|
+
*/
|
81
86
|
serialize(context) {
|
82
87
|
const { write } = context;
|
83
88
|
write(this.data);
|
84
89
|
super.serialize(context);
|
85
90
|
}
|
86
91
|
|
92
|
+
/**
|
93
|
+
* @param {ObjectDeserializerContext} context context
|
94
|
+
*/
|
87
95
|
deserialize(context) {
|
88
96
|
const { read } = context;
|
89
97
|
this.data = 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 LocalModuleDependency extends NullDependency {
|
16
18
|
constructor(localModule, range, callNew) {
|
@@ -21,6 +23,9 @@ class LocalModuleDependency extends NullDependency {
|
|
21
23
|
this.callNew = callNew;
|
22
24
|
}
|
23
25
|
|
26
|
+
/**
|
27
|
+
* @param {ObjectSerializerContext} context context
|
28
|
+
*/
|
24
29
|
serialize(context) {
|
25
30
|
const { write } = context;
|
26
31
|
|
@@ -31,6 +36,9 @@ class LocalModuleDependency extends NullDependency {
|
|
31
36
|
super.serialize(context);
|
32
37
|
}
|
33
38
|
|
39
|
+
/**
|
40
|
+
* @param {ObjectDeserializerContext} context context
|
41
|
+
*/
|
34
42
|
deserialize(context) {
|
35
43
|
const { read } = context;
|
36
44
|
|
@@ -18,6 +18,8 @@ const NullDependency = require("./NullDependency");
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
19
19
|
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
|
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
|
|
@@ -76,6 +78,9 @@ class ModuleDecoratorDependency extends NullDependency {
|
|
76
78
|
hash.update(this._hashUpdate);
|
77
79
|
}
|
78
80
|
|
81
|
+
/**
|
82
|
+
* @param {ObjectSerializerContext} context context
|
83
|
+
*/
|
79
84
|
serialize(context) {
|
80
85
|
const { write } = context;
|
81
86
|
write(this.decorator);
|
@@ -83,6 +88,9 @@ class ModuleDecoratorDependency extends NullDependency {
|
|
83
88
|
super.serialize(context);
|
84
89
|
}
|
85
90
|
|
91
|
+
/**
|
92
|
+
* @param {ObjectDeserializerContext} context context
|
93
|
+
*/
|
86
94
|
deserialize(context) {
|
87
95
|
const { read } = context;
|
88
96
|
this.decorator = read();
|
@@ -11,6 +11,8 @@ const memoize = require("../util/memoize");
|
|
11
11
|
|
12
12
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
13
13
|
/** @typedef {import("../Module")} Module */
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
16
|
|
15
17
|
const getRawModule = memoize(() => require("../RawModule"));
|
16
18
|
|
@@ -67,6 +69,9 @@ class ModuleDependency extends Dependency {
|
|
67
69
|
);
|
68
70
|
}
|
69
71
|
|
72
|
+
/**
|
73
|
+
* @param {ObjectSerializerContext} context context
|
74
|
+
*/
|
70
75
|
serialize(context) {
|
71
76
|
const { write } = context;
|
72
77
|
write(this.request);
|
@@ -76,6 +81,9 @@ class ModuleDependency extends Dependency {
|
|
76
81
|
super.serialize(context);
|
77
82
|
}
|
78
83
|
|
84
|
+
/**
|
85
|
+
* @param {ObjectDeserializerContext} context context
|
86
|
+
*/
|
79
87
|
deserialize(context) {
|
80
88
|
const { read } = context;
|
81
89
|
this.request = read();
|
@@ -18,6 +18,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
18
18
|
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
20
20
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
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
|
|
@@ -78,6 +80,9 @@ class ProvidedDependency extends ModuleDependency {
|
|
78
80
|
hash.update(this._hashUpdate);
|
79
81
|
}
|
80
82
|
|
83
|
+
/**
|
84
|
+
* @param {ObjectSerializerContext} context context
|
85
|
+
*/
|
81
86
|
serialize(context) {
|
82
87
|
const { write } = context;
|
83
88
|
write(this.identifier);
|
@@ -85,6 +90,9 @@ class ProvidedDependency extends ModuleDependency {
|
|
85
90
|
super.serialize(context);
|
86
91
|
}
|
87
92
|
|
93
|
+
/**
|
94
|
+
* @param {ObjectDeserializerContext} context context
|
95
|
+
*/
|
88
96
|
deserialize(context) {
|
89
97
|
const { read } = context;
|
90
98
|
this.identifier = read();
|
@@ -17,6 +17,8 @@ const NullDependency = require("./NullDependency");
|
|
17
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
19
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
20
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
20
22
|
/** @typedef {import("../util/Hash")} Hash */
|
21
23
|
|
22
24
|
class PureExpressionDependency extends NullDependency {
|
@@ -52,6 +54,9 @@ class PureExpressionDependency extends NullDependency {
|
|
52
54
|
return false;
|
53
55
|
}
|
54
56
|
|
57
|
+
/**
|
58
|
+
* @param {ObjectSerializerContext} context context
|
59
|
+
*/
|
55
60
|
serialize(context) {
|
56
61
|
const { write } = context;
|
57
62
|
write(this.range);
|
@@ -59,6 +64,9 @@ class PureExpressionDependency extends NullDependency {
|
|
59
64
|
super.serialize(context);
|
60
65
|
}
|
61
66
|
|
67
|
+
/**
|
68
|
+
* @param {ObjectDeserializerContext} context context
|
69
|
+
*/
|
62
70
|
deserialize(context) {
|
63
71
|
const { read } = context;
|
64
72
|
this.range = read();
|
@@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency");
|
|
13
13
|
/** @typedef {import("../AsyncDependenciesBlock")} AsyncDependenciesBlock */
|
14
14
|
/** @typedef {import("../Dependency")} Dependency */
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
16
18
|
|
17
19
|
class RequireEnsureDependency extends NullDependency {
|
18
20
|
constructor(range, contentRange, errorHandlerRange) {
|
@@ -27,6 +29,9 @@ class RequireEnsureDependency extends NullDependency {
|
|
27
29
|
return "require.ensure";
|
28
30
|
}
|
29
31
|
|
32
|
+
/**
|
33
|
+
* @param {ObjectSerializerContext} context context
|
34
|
+
*/
|
30
35
|
serialize(context) {
|
31
36
|
const { write } = context;
|
32
37
|
|
@@ -37,6 +42,9 @@ class RequireEnsureDependency extends NullDependency {
|
|
37
42
|
super.serialize(context);
|
38
43
|
}
|
39
44
|
|
45
|
+
/**
|
46
|
+
* @param {ObjectDeserializerContext} context context
|
47
|
+
*/
|
40
48
|
deserialize(context) {
|
41
49
|
const { read } = context;
|
42
50
|
|
@@ -12,6 +12,8 @@ const NullDependency = require("./NullDependency");
|
|
12
12
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
13
13
|
/** @typedef {import("../Dependency")} Dependency */
|
14
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
15
17
|
|
16
18
|
class RequireHeaderDependency extends NullDependency {
|
17
19
|
constructor(range) {
|
@@ -20,6 +22,9 @@ class RequireHeaderDependency 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
|
write(this.range);
|