webpack 5.83.1 → 5.85.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 +2 -2
- package/lib/AsyncDependenciesBlock.js +2 -2
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +4 -0
- package/lib/CacheFacade.js +4 -0
- package/lib/ChunkGroup.js +5 -1
- package/lib/CleanPlugin.js +30 -7
- package/lib/CompatibilityPlugin.js +4 -3
- package/lib/Compilation.js +3 -3
- package/lib/Compiler.js +1 -1
- package/lib/ContextModule.js +3 -3
- package/lib/ContextModuleFactory.js +1 -1
- package/lib/DefinePlugin.js +11 -2
- package/lib/DllEntryPlugin.js +5 -0
- package/lib/DllModule.js +1 -1
- package/lib/DllModuleFactory.js +1 -1
- package/lib/EvalSourceMapDevToolPlugin.js +3 -1
- package/lib/HookWebpackError.js +1 -1
- package/lib/IgnoreErrorModuleFactory.js +1 -1
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +21 -9
- package/lib/ModuleFactory.js +1 -1
- package/lib/ModuleTypeConstants.js +2 -1
- package/lib/NormalModuleFactory.js +1 -1
- package/lib/NormalModuleReplacementPlugin.js +4 -2
- package/lib/NullFactory.js +1 -1
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/RecordIdsPlugin.js +4 -4
- package/lib/RuntimeModule.js +5 -5
- package/lib/RuntimePlugin.js +4 -0
- package/lib/RuntimeTemplate.js +7 -7
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SourceMapDevToolPlugin.js +9 -2
- package/lib/Template.js +3 -2
- package/lib/UseStrictPlugin.js +4 -0
- package/lib/WarnDeprecatedOptionPlugin.js +7 -0
- package/lib/WatchIgnorePlugin.js +4 -0
- package/lib/WebpackOptionsApply.js +2 -1
- package/lib/asset/AssetGenerator.js +7 -2
- package/lib/asset/AssetModulesPlugin.js +7 -1
- package/lib/asset/AssetParser.js +4 -1
- package/lib/asset/RawDataUrlModule.js +5 -3
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/cache/PackFileCacheStrategy.js +7 -1
- package/lib/config/browserslistTargetHandler.js +3 -3
- package/lib/config/defaults.js +240 -73
- package/lib/config/normalization.js +104 -71
- package/lib/config/target.js +37 -10
- package/lib/container/ContainerEntryModule.js +4 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/FallbackDependency.js +7 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +5 -1
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/RemoteModule.js +4 -0
- package/lib/container/RemoteRuntimeModule.js +2 -1
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/css/CssParser.js +168 -73
- package/lib/debug/ProfilingPlugin.js +11 -0
- package/lib/dependencies/AMDDefineDependency.js +12 -6
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +8 -2
- package/lib/dependencies/AMDPlugin.js +7 -0
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -0
- package/lib/dependencies/AMDRequireContextDependency.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +8 -2
- package/lib/dependencies/AMDRequireDependency.js +8 -1
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/CachedConstDependency.js +6 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +11 -0
- package/lib/dependencies/CommonJsExportsDependency.js +8 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +2 -2
- package/lib/dependencies/CommonJsFullRequireDependency.js +2 -1
- package/lib/dependencies/CommonJsPlugin.js +28 -12
- package/lib/dependencies/CommonJsRequireContextDependency.js +8 -0
- package/lib/dependencies/CommonJsRequireDependency.js +7 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +8 -0
- package/lib/dependencies/ConstDependency.js +2 -1
- package/lib/dependencies/ContextDependencyHelpers.js +3 -3
- package/lib/dependencies/CreateScriptUrlDependency.js +2 -1
- package/lib/dependencies/CriticalDependencyWarning.js +3 -0
- package/lib/dependencies/CssImportDependency.js +2 -1
- package/lib/dependencies/CssLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +12 -2
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +2 -1
- package/lib/dependencies/HarmonyAcceptImportDependency.js +3 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +16 -0
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +12 -1
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +3 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +8 -0
- package/lib/dependencies/HarmonyExportHeaderDependency.js +5 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +2 -1
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExports.js +3 -1
- package/lib/dependencies/HarmonyImportDependency.js +2 -1
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +18 -5
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +6 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +86 -6
- package/lib/dependencies/HarmonyModulesPlugin.js +12 -0
- package/lib/dependencies/ImportContextDependency.js +6 -0
- package/lib/dependencies/ImportDependency.js +2 -1
- package/lib/dependencies/ImportEagerDependency.js +2 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +32 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +5 -0
- package/lib/dependencies/ImportPlugin.js +7 -0
- package/lib/dependencies/ImportWeakDependency.js +2 -1
- package/lib/dependencies/LocalModule.js +16 -0
- package/lib/dependencies/LocalModuleDependency.js +7 -0
- package/lib/dependencies/LocalModulesHelpers.js +18 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +2 -1
- package/lib/dependencies/PureExpressionDependency.js +2 -1
- package/lib/dependencies/RequireContextDependency.js +6 -0
- package/lib/dependencies/RequireContextPlugin.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +4 -0
- package/lib/dependencies/RequireEnsureDependency.js +8 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +14 -0
- package/lib/dependencies/RequireHeaderDependency.js +5 -1
- package/lib/dependencies/RequireIncludeDependency.js +5 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
- package/lib/dependencies/RequireIncludePlugin.js +14 -0
- package/lib/dependencies/RequireResolveContextDependency.js +8 -0
- package/lib/dependencies/RequireResolveDependency.js +6 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -0
- package/lib/dependencies/SystemPlugin.js +10 -1
- package/lib/dependencies/URLDependency.js +3 -2
- package/lib/dependencies/URLPlugin.js +7 -5
- package/lib/dependencies/UnsupportedDependency.js +5 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +6 -0
- package/lib/dependencies/WebpackIsIncludedDependency.js +5 -0
- package/lib/dependencies/WorkerDependency.js +2 -1
- package/lib/dependencies/WorkerPlugin.js +30 -3
- package/lib/dependencies/getFunctionExpression.js +7 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -1
- package/lib/esm/ModuleChunkFormatPlugin.js +15 -7
- package/lib/esm/ModuleChunkLoadingPlugin.js +9 -0
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +14 -9
- package/lib/hmr/LazyCompilationPlugin.js +1 -1
- package/lib/ids/ChunkModuleIdRangePlugin.js +11 -0
- package/lib/ids/DeterministicChunkIdsPlugin.js +11 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +11 -7
- package/lib/ids/HashedModuleIdsPlugin.js +8 -1
- package/lib/ids/IdHelpers.js +6 -0
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +14 -3
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/SyncModuleIdsPlugin.js +2 -2
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +11 -1
- package/lib/javascript/ChunkHelpers.js +2 -2
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +4 -0
- package/lib/javascript/JavascriptModulesPlugin.js +36 -31
- package/lib/javascript/JavascriptParser.js +586 -192
- package/lib/javascript/StartupHelpers.js +2 -2
- package/lib/json/JsonGenerator.js +7 -5
- package/lib/json/JsonParser.js +1 -1
- package/lib/library/AbstractLibraryPlugin.js +4 -0
- package/lib/library/AssignLibraryPlugin.js +6 -4
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
- package/lib/library/ModuleLibraryPlugin.js +6 -3
- package/lib/library/SystemLibraryPlugin.js +1 -0
- package/lib/library/UmdLibraryPlugin.js +4 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +17 -2
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +1 -1
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +6 -3
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +8 -0
- package/lib/node/ReadFileCompileWasmPlugin.js +19 -2
- package/lib/node/RequireChunkLoadingRuntimeModule.js +6 -3
- package/lib/optimize/ConcatenatedModule.js +1 -1
- package/lib/optimize/InnerGraphPlugin.js +11 -4
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -1
- package/lib/runtime/BaseUriRuntimeModule.js +5 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +3 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +35 -16
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -1
- package/lib/runtime/PublicPathRuntimeModule.js +5 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +4 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +8 -5
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +21 -0
- package/lib/serialization/DateObjectSerializer.js +15 -4
- package/lib/serialization/ErrorObjectSerializer.js +20 -8
- package/lib/serialization/FileMiddleware.js +17 -0
- package/lib/serialization/MapObjectSerializer.js +24 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +25 -8
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +23 -12
- package/lib/serialization/RegExpObjectSerializer.js +16 -5
- package/lib/serialization/SetObjectSerializer.js +21 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -1
- package/lib/util/createHash.js +1 -1
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/serialization.js +10 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +9 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +13 -3
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +19 -2
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -0
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +25 -1
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +14 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -5
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +12 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -2
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/FetchCompileAsyncWasmPlugin.js +9 -0
- package/lib/web/FetchCompileWasmPlugin.js +19 -2
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +4 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +9 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -2
- package/package.json +3 -3
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +12 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/types.d.ts +655 -290
@@ -22,15 +22,26 @@ const processExportInfo = require("./processExportInfo");
|
|
22
22
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
23
23
|
/** @typedef {import("../Module")} Module */
|
24
24
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
25
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
25
26
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
26
27
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
27
28
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
29
|
+
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */
|
28
30
|
|
29
31
|
const idsSymbol = Symbol("CommonJsExportRequireDependency.ids");
|
30
32
|
|
31
33
|
const EMPTY_OBJECT = {};
|
32
34
|
|
33
35
|
class CommonJsExportRequireDependency extends ModuleDependency {
|
36
|
+
/**
|
37
|
+
* @param {Range} range range
|
38
|
+
* @param {Range} valueRange value range
|
39
|
+
* @param {CommonJSDependencyBaseKeywords} base base
|
40
|
+
* @param {string[]} names names
|
41
|
+
* @param {string} request request
|
42
|
+
* @param {string[]} ids ids
|
43
|
+
* @param {boolean} resultUsed true, when the result is used
|
44
|
+
*/
|
34
45
|
constructor(range, valueRange, base, names, request, ids, resultUsed) {
|
35
46
|
super(request);
|
36
47
|
this.range = range;
|
@@ -16,12 +16,20 @@ const NullDependency = require("./NullDependency");
|
|
16
16
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
17
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
19
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
20
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
22
|
+
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */
|
21
23
|
|
22
24
|
const EMPTY_OBJECT = {};
|
23
25
|
|
24
26
|
class CommonJsExportsDependency extends NullDependency {
|
27
|
+
/**
|
28
|
+
* @param {Range} range range
|
29
|
+
* @param {Range} valueRange value range
|
30
|
+
* @param {CommonJSDependencyBaseKeywords} base base
|
31
|
+
* @param {string[]} names names
|
32
|
+
*/
|
25
33
|
constructor(range, valueRange, base, names) {
|
26
34
|
super();
|
27
35
|
this.range = range;
|
@@ -18,7 +18,6 @@ const ModuleDecoratorDependency = require("./ModuleDecoratorDependency");
|
|
18
18
|
|
19
19
|
/** @typedef {import("estree").AssignmentExpression} AssignmentExpression */
|
20
20
|
/** @typedef {import("estree").CallExpression} CallExpression */
|
21
|
-
/** @typedef {import("estree").Expression} ExpressionNode */
|
22
21
|
/** @typedef {import("estree").Expression} Expression */
|
23
22
|
/** @typedef {import("estree").Super} Super */
|
24
23
|
|
@@ -95,7 +94,7 @@ const isFalsyLiteral = expr => {
|
|
95
94
|
|
96
95
|
/**
|
97
96
|
* @param {JavascriptParser} parser the parser
|
98
|
-
* @param {
|
97
|
+
* @param {Expression} expr expression
|
99
98
|
* @returns {{ argument: BasicEvaluatedExpression, ids: string[] } | undefined} parsed call
|
100
99
|
*/
|
101
100
|
const parseRequireCall = (parser, expr) => {
|
@@ -134,6 +133,7 @@ class CommonJsExportsParserPlugin {
|
|
134
133
|
|
135
134
|
/**
|
136
135
|
* @param {JavascriptParser} parser the parser
|
136
|
+
* @returns {void}
|
137
137
|
*/
|
138
138
|
apply(parser) {
|
139
139
|
const enableStructuredExports = () => {
|
@@ -16,6 +16,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
16
16
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
17
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
19
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
20
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
21
22
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
@@ -23,7 +24,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
23
24
|
class CommonJsFullRequireDependency extends ModuleDependency {
|
24
25
|
/**
|
25
26
|
* @param {string} request the request string
|
26
|
-
* @param {
|
27
|
+
* @param {Range} range location in source code
|
27
28
|
* @param {string[]} names accessed properties on module
|
28
29
|
*/
|
29
30
|
constructor(request, range, names) {
|
@@ -34,9 +34,18 @@ const {
|
|
34
34
|
} = require("../javascript/JavascriptParserHelpers");
|
35
35
|
const CommonJsExportRequireDependency = require("./CommonJsExportRequireDependency");
|
36
36
|
|
37
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
38
|
+
/** @typedef {import("../Compiler")} Compiler */
|
39
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
40
|
+
|
37
41
|
const PLUGIN_NAME = "CommonJsPlugin";
|
38
42
|
|
39
43
|
class CommonJsPlugin {
|
44
|
+
/**
|
45
|
+
* Apply the plugin
|
46
|
+
* @param {Compiler} compiler the compiler instance
|
47
|
+
* @returns {void}
|
48
|
+
*/
|
40
49
|
apply(compiler) {
|
41
50
|
compiler.hooks.compilation.tap(
|
42
51
|
PLUGIN_NAME,
|
@@ -162,6 +171,11 @@ class CommonJsPlugin {
|
|
162
171
|
);
|
163
172
|
});
|
164
173
|
|
174
|
+
/**
|
175
|
+
* @param {Parser} parser parser parser
|
176
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
177
|
+
* @returns {void}
|
178
|
+
*/
|
165
179
|
const handler = (parser, parserOptions) => {
|
166
180
|
if (parserOptions.commonjs !== undefined && !parserOptions.commonjs)
|
167
181
|
return;
|
@@ -183,10 +197,10 @@ class CommonJsPlugin {
|
|
183
197
|
)
|
184
198
|
);
|
185
199
|
parser.hooks.expression
|
186
|
-
.for(
|
200
|
+
.for(RuntimeGlobals.moduleLoaded)
|
187
201
|
.tap(PLUGIN_NAME, expr => {
|
188
202
|
parser.state.module.buildInfo.moduleConcatenationBailout =
|
189
|
-
|
203
|
+
RuntimeGlobals.moduleLoaded;
|
190
204
|
const dep = new RuntimeRequirementsDependency([
|
191
205
|
RuntimeGlobals.moduleLoaded
|
192
206
|
]);
|
@@ -195,16 +209,18 @@ class CommonJsPlugin {
|
|
195
209
|
return true;
|
196
210
|
});
|
197
211
|
|
198
|
-
parser.hooks.expression
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
212
|
+
parser.hooks.expression
|
213
|
+
.for(RuntimeGlobals.moduleId)
|
214
|
+
.tap(PLUGIN_NAME, expr => {
|
215
|
+
parser.state.module.buildInfo.moduleConcatenationBailout =
|
216
|
+
RuntimeGlobals.moduleId;
|
217
|
+
const dep = new RuntimeRequirementsDependency([
|
218
|
+
RuntimeGlobals.moduleId
|
219
|
+
]);
|
220
|
+
dep.loc = expr.loc;
|
221
|
+
parser.state.module.addPresentationalDependency(dep);
|
222
|
+
return true;
|
223
|
+
});
|
208
224
|
|
209
225
|
parser.hooks.evaluateIdentifier.for("module.hot").tap(
|
210
226
|
PLUGIN_NAME,
|
@@ -9,10 +9,18 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
10
10
|
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
11
11
|
|
12
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
12
13
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
14
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
15
|
|
15
16
|
class CommonJsRequireContextDependency extends ContextDependency {
|
17
|
+
/**
|
18
|
+
* @param {TODO} options options for the context module
|
19
|
+
* @param {Range} range location in source code
|
20
|
+
* @param {Range} valueRange location of the require call
|
21
|
+
* @param {boolean} inShorthand true, if the require call is in shorthand notation
|
22
|
+
* @param {string} context context
|
23
|
+
*/
|
16
24
|
constructor(options, range, valueRange, inShorthand, context) {
|
17
25
|
super(options, context);
|
18
26
|
|
@@ -9,7 +9,14 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
10
10
|
const ModuleDependencyTemplateAsId = require("./ModuleDependencyTemplateAsId");
|
11
11
|
|
12
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
13
|
+
|
12
14
|
class CommonJsRequireDependency extends ModuleDependency {
|
15
|
+
/**
|
16
|
+
* @param {string} request request
|
17
|
+
* @param {Range=} range location in source code
|
18
|
+
* @param {string=} context request context
|
19
|
+
*/
|
13
20
|
constructor(request, range, context) {
|
14
21
|
super(request);
|
15
22
|
this.range = range;
|
@@ -17,11 +17,19 @@ const NullDependency = require("./NullDependency");
|
|
17
17
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
18
18
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
20
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
20
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
21
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
22
23
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
24
|
+
/** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */
|
23
25
|
|
24
26
|
class CommonJsSelfReferenceDependency extends NullDependency {
|
27
|
+
/**
|
28
|
+
* @param {Range} range range
|
29
|
+
* @param {CommonJSDependencyBaseKeywords} base base
|
30
|
+
* @param {string[]} names names
|
31
|
+
* @param {boolean} call is a call
|
32
|
+
*/
|
25
33
|
constructor(range, base, names, call) {
|
26
34
|
super();
|
27
35
|
this.range = range;
|
@@ -15,6 +15,7 @@ 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("../javascript/JavascriptParser").Range} Range */
|
18
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
19
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
20
21
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -22,7 +23,7 @@ const NullDependency = require("./NullDependency");
|
|
22
23
|
class ConstDependency extends NullDependency {
|
23
24
|
/**
|
24
25
|
* @param {string} expression the expression
|
25
|
-
* @param {number|
|
26
|
+
* @param {number|Range} range the source range
|
26
27
|
* @param {string[]=} runtimeRequirements runtime requirements
|
27
28
|
*/
|
28
29
|
constructor(expression, range, runtimeRequirements) {
|
@@ -38,12 +38,12 @@ const splitContextFromPrefix = prefix => {
|
|
38
38
|
};
|
39
39
|
|
40
40
|
/** @typedef {Partial<Omit<ContextDependencyOptions, "resource">>} PartialContextDependencyOptions */
|
41
|
-
|
42
|
-
/** @typedef {{ new(options: ContextDependencyOptions, range:
|
41
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
42
|
+
/** @typedef {{ new(options: ContextDependencyOptions, range: Range, valueRange: [number, number], ...args: any[]): ContextDependency }} ContextDependencyConstructor */
|
43
43
|
|
44
44
|
/**
|
45
45
|
* @param {ContextDependencyConstructor} Dep the Dependency class
|
46
|
-
* @param {
|
46
|
+
* @param {Range} range source range
|
47
47
|
* @param {BasicEvaluatedExpression} param context param
|
48
48
|
* @param {EsTreeNode} expr expr
|
49
49
|
* @param {Pick<JavascriptParserOptions, `${"expr"|"wrapped"}Context${"Critical"|"Recursive"|"RegExp"}` | "exprContextRequest">} options options for context creation
|
@@ -12,12 +12,13 @@ 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("../javascript/JavascriptParser").Range} Range */
|
15
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
17
18
|
|
18
19
|
class CreateScriptUrlDependency extends NullDependency {
|
19
20
|
/**
|
20
|
-
* @param {
|
21
|
+
* @param {Range} range range
|
21
22
|
*/
|
22
23
|
constructor(range) {
|
23
24
|
super();
|
@@ -9,6 +9,9 @@ const WebpackError = require("../WebpackError");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
11
|
class CriticalDependencyWarning extends WebpackError {
|
12
|
+
/**
|
13
|
+
* @param {string} message message
|
14
|
+
*/
|
12
15
|
constructor(message) {
|
13
16
|
super();
|
14
17
|
|
@@ -17,6 +17,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
17
17
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
18
18
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
19
19
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
20
|
+
/** @typedef {import("../css/CssParser").Range} Range */
|
20
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
21
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
22
23
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -29,7 +30,7 @@ class CssImportDependency extends ModuleDependency {
|
|
29
30
|
* \@import url("landscape.css") layer(forms) screen and (orientation: landscape) screen and (orientation: landscape);
|
30
31
|
*
|
31
32
|
* @param {string} request request
|
32
|
-
* @param {
|
33
|
+
* @param {Range} range range of the argument
|
33
34
|
* @param {string | undefined} layer layer
|
34
35
|
* @param {string | undefined} supports list of supports conditions
|
35
36
|
* @param {string | undefined} media list of media conditions
|
@@ -13,13 +13,14 @@ const NullDependency = require("./NullDependency");
|
|
13
13
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
14
14
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
15
15
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
16
|
+
/** @typedef {import("../css/CssParser").Range} Range */
|
16
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
18
19
|
|
19
20
|
class CssLocalIdentifierDependency extends NullDependency {
|
20
21
|
/**
|
21
22
|
* @param {string} name name
|
22
|
-
* @param {
|
23
|
+
* @param {Range} range range
|
23
24
|
* @param {string=} prefix prefix
|
24
25
|
*/
|
25
26
|
constructor(name, range, prefix = "") {
|
@@ -14,6 +14,7 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
|
|
14
14
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
15
15
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
17
|
+
/** @typedef {import("../css/CssParser").Range} Range */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
18
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
19
20
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
@@ -21,7 +22,7 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
|
|
21
22
|
class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency {
|
22
23
|
/**
|
23
24
|
* @param {string} name name
|
24
|
-
* @param {
|
25
|
+
* @param {Range} range range
|
25
26
|
* @param {string=} prefix prefix
|
26
27
|
* @param {Set<string>=} declaredSet set of declared names (will only be active when in declared set)
|
27
28
|
*/
|
@@ -18,6 +18,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
19
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
20
20
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
21
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
21
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
22
23
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
23
24
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -28,7 +29,7 @@ const getRawDataUrlModule = memoize(() => require("../asset/RawDataUrlModule"));
|
|
28
29
|
class CssUrlDependency extends ModuleDependency {
|
29
30
|
/**
|
30
31
|
* @param {string} request request
|
31
|
-
* @param {
|
32
|
+
* @param {Range} range range of the argument
|
32
33
|
* @param {"string" | "url"} urlType dependency type e.g. url() or string
|
33
34
|
*/
|
34
35
|
constructor(request, range, urlType) {
|
@@ -73,6 +74,10 @@ class CssUrlDependency extends ModuleDependency {
|
|
73
74
|
}
|
74
75
|
}
|
75
76
|
|
77
|
+
/**
|
78
|
+
* @param {string} str string
|
79
|
+
* @returns {string} string in quotes if needed
|
80
|
+
*/
|
76
81
|
const cssEscapeString = str => {
|
77
82
|
let countWhiteOrBracket = 0;
|
78
83
|
let countQuotation = 0;
|
@@ -120,6 +125,7 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
120
125
|
) {
|
121
126
|
const dep = /** @type {CssUrlDependency} */ (dependency);
|
122
127
|
|
128
|
+
/** @type {string | undefined} */
|
123
129
|
let newValue;
|
124
130
|
|
125
131
|
switch (dep.urlType) {
|
@@ -143,7 +149,11 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
143
149
|
break;
|
144
150
|
}
|
145
151
|
|
146
|
-
source.replace(
|
152
|
+
source.replace(
|
153
|
+
dep.range[0],
|
154
|
+
dep.range[1] - 1,
|
155
|
+
/** @type {string} */ (newValue)
|
156
|
+
);
|
147
157
|
}
|
148
158
|
};
|
149
159
|
|
@@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
10
10
|
|
11
11
|
class DelegatedSourceDependency extends ModuleDependency {
|
12
|
+
/**
|
13
|
+
* @param {string} request the request string
|
14
|
+
*/
|
12
15
|
constructor(request) {
|
13
16
|
super(request);
|
14
17
|
}
|
@@ -16,6 +16,7 @@ const NullDependency = require("./NullDependency");
|
|
16
16
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
17
17
|
/** @typedef {import("../Module")} Module */
|
18
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
19
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
19
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
20
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
21
22
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -84,6 +85,11 @@ const getProperty = (moduleGraph, module, exportName, property, runtime) => {
|
|
84
85
|
};
|
85
86
|
|
86
87
|
class ExportsInfoDependency extends NullDependency {
|
88
|
+
/**
|
89
|
+
* @param {Range} range range
|
90
|
+
* @param {TODO} exportName export name
|
91
|
+
* @param {string | null} property property
|
92
|
+
*/
|
87
93
|
constructor(range, exportName, property) {
|
88
94
|
super();
|
89
95
|
this.range = range;
|
@@ -13,13 +13,14 @@ const NullDependency = require("./NullDependency");
|
|
13
13
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
14
14
|
/** @typedef {import("../Dependency")} Dependency */
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
16
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
16
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
18
19
|
/** @typedef {import("./HarmonyAcceptImportDependency")} HarmonyAcceptImportDependency */
|
19
20
|
|
20
21
|
class HarmonyAcceptDependency extends NullDependency {
|
21
22
|
/**
|
22
|
-
* @param {
|
23
|
+
* @param {Range} range expression range
|
23
24
|
* @param {HarmonyAcceptImportDependency[]} dependencies import dependencies
|
24
25
|
* @param {boolean} hasCallback true, if the range wraps an existing callback
|
25
26
|
*/
|
@@ -14,6 +14,9 @@ const NullDependency = require("./NullDependency");
|
|
14
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
15
15
|
|
16
16
|
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
|
17
|
+
/**
|
18
|
+
* @param {string} request the request string
|
19
|
+
*/
|
17
20
|
constructor(request) {
|
18
21
|
super(request, NaN);
|
19
22
|
this.weak = true;
|
@@ -10,12 +10,22 @@ const DynamicExports = require("./DynamicExports");
|
|
10
10
|
const HarmonyCompatibilityDependency = require("./HarmonyCompatibilityDependency");
|
11
11
|
const HarmonyExports = require("./HarmonyExports");
|
12
12
|
|
13
|
+
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
14
|
+
/** @typedef {import("./HarmonyModulesPlugin").HarmonyModulesPluginOptions} HarmonyModulesPluginOptions */
|
15
|
+
|
13
16
|
module.exports = class HarmonyDetectionParserPlugin {
|
17
|
+
/**
|
18
|
+
* @param {HarmonyModulesPluginOptions} options options
|
19
|
+
*/
|
14
20
|
constructor(options) {
|
15
21
|
const { topLevelAwait = false } = options || {};
|
16
22
|
this.topLevelAwait = topLevelAwait;
|
17
23
|
}
|
18
24
|
|
25
|
+
/**
|
26
|
+
* @param {JavascriptParser} parser the parser
|
27
|
+
* @returns {void}
|
28
|
+
*/
|
19
29
|
apply(parser) {
|
20
30
|
parser.hooks.program.tap("HarmonyDetectionParserPlugin", ast => {
|
21
31
|
const isStrictHarmony =
|
@@ -65,12 +75,18 @@ module.exports = class HarmonyDetectionParserPlugin {
|
|
65
75
|
module.buildMeta.async = true;
|
66
76
|
});
|
67
77
|
|
78
|
+
/**
|
79
|
+
* @returns {boolean | undefined} true if in harmony
|
80
|
+
*/
|
68
81
|
const skipInHarmony = () => {
|
69
82
|
if (HarmonyExports.isEnabled(parser.state)) {
|
70
83
|
return true;
|
71
84
|
}
|
72
85
|
};
|
73
86
|
|
87
|
+
/**
|
88
|
+
* @returns {null | undefined} null if in harmony
|
89
|
+
*/
|
74
90
|
const nullInHarmony = () => {
|
75
91
|
if (HarmonyExports.isEnabled(parser.state)) {
|
76
92
|
return null;
|
@@ -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("../javascript/JavascriptParser").Assertions} Assertions */
|
16
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
15
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
17
19
|
|
@@ -23,8 +25,17 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend
|
|
23
25
|
* a.x !== undefined; // if x value statically analyzable
|
24
26
|
*/
|
25
27
|
class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDependency {
|
28
|
+
/**
|
29
|
+
* @param {string} request the request string
|
30
|
+
* @param {number} sourceOrder source order
|
31
|
+
* @param {TODO} ids ids
|
32
|
+
* @param {TODO} name name
|
33
|
+
* @param {Range} range location in source code
|
34
|
+
* @param {Assertions} assertions assertions
|
35
|
+
* @param {string} operator operator
|
36
|
+
*/
|
26
37
|
constructor(request, sourceOrder, ids, name, range, assertions, operator) {
|
27
|
-
super(request, sourceOrder, ids, name, range, false, assertions);
|
38
|
+
super(request, sourceOrder, ids, name, range, false, assertions, []);
|
28
39
|
this.operator = operator;
|
29
40
|
}
|
30
41
|
|
@@ -21,6 +21,9 @@ const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDepe
|
|
21
21
|
const { HarmonyStarExportsList } = HarmonyExportImportedSpecifierDependency;
|
22
22
|
|
23
23
|
module.exports = class HarmonyExportDependencyParserPlugin {
|
24
|
+
/**
|
25
|
+
* @param {import("../../declarations/WebpackOptions").JavascriptParserOptions} options options
|
26
|
+
*/
|
24
27
|
constructor(options) {
|
25
28
|
this.exportPresenceMode =
|
26
29
|
options.reexportExportsPresence !== undefined
|
@@ -18,10 +18,17 @@ const NullDependency = require("./NullDependency");
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
20
20
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
21
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
21
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
22
23
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
23
24
|
|
24
25
|
class HarmonyExportExpressionDependency extends NullDependency {
|
26
|
+
/**
|
27
|
+
* @param {Range} range range
|
28
|
+
* @param {Range} rangeStatement range statement
|
29
|
+
* @param {string} prefix prefix
|
30
|
+
* @param {string | { range: Range, prefix: string, suffix: string }} [declarationId] declaration id
|
31
|
+
*/
|
25
32
|
constructor(range, rangeStatement, prefix, declarationId) {
|
26
33
|
super();
|
27
34
|
this.range = range;
|
@@ -144,6 +151,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla
|
|
144
151
|
`/* harmony default export */ ${dep.prefix}`
|
145
152
|
);
|
146
153
|
} else {
|
154
|
+
/** @type {string} */
|
147
155
|
let content;
|
148
156
|
const name = ConcatenationScope.DEFAULT_EXPORT;
|
149
157
|
if (runtimeTemplate.supportsConst()) {
|
@@ -11,10 +11,15 @@ 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("../javascript/JavascriptParser").Range} Range */
|
14
15
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
15
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
16
17
|
|
17
18
|
class HarmonyExportHeaderDependency extends NullDependency {
|
19
|
+
/**
|
20
|
+
* @param {Range} range range
|
21
|
+
* @param {Range} rangeStatement range statement
|
22
|
+
*/
|
18
23
|
constructor(range, rangeStatement) {
|
19
24
|
super();
|
20
25
|
this.range = range;
|
@@ -36,6 +36,7 @@ const processExportInfo = require("./processExportInfo");
|
|
36
36
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
37
37
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
38
38
|
/** @typedef {import("../WebpackError")} WebpackError */
|
39
|
+
/** @typedef {import("../javascript/JavascriptParser").Assertions} Assertions */
|
39
40
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
40
41
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
41
42
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -332,7 +333,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
332
333
|
* @param {ReadonlyArray<HarmonyExportImportedSpecifierDependency> | Iterable<HarmonyExportImportedSpecifierDependency>} otherStarExports other star exports in the module before this import
|
333
334
|
* @param {number} exportPresenceMode mode of checking export names
|
334
335
|
* @param {HarmonyStarExportsList} allStarExports all star exports in the module
|
335
|
-
* @param {
|
336
|
+
* @param {Assertions=} assertions import assertions
|
336
337
|
*/
|
337
338
|
constructor(
|
338
339
|
request,
|
@@ -19,6 +19,10 @@ const NullDependency = require("./NullDependency");
|
|
19
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
20
20
|
|
21
21
|
class HarmonyExportSpecifierDependency extends NullDependency {
|
22
|
+
/**
|
23
|
+
* @param {TODO} id id
|
24
|
+
* @param {TODO} name name
|
25
|
+
*/
|
22
26
|
constructor(id, name) {
|
23
27
|
super();
|
24
28
|
this.id = id;
|
@@ -5,6 +5,8 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
9
|
+
|
8
10
|
/** @typedef {import("../Parser").ParserState} ParserState */
|
9
11
|
|
10
12
|
/** @type {WeakMap<ParserState, boolean>} */
|
@@ -22,7 +24,7 @@ exports.enable = (parserState, isStrictHarmony) => {
|
|
22
24
|
if (value !== true) {
|
23
25
|
parserState.module.buildMeta.exportsType = "namespace";
|
24
26
|
parserState.module.buildInfo.strict = true;
|
25
|
-
parserState.module.buildInfo.exportsArgument =
|
27
|
+
parserState.module.buildInfo.exportsArgument = RuntimeGlobals.exports;
|
26
28
|
if (isStrictHarmony) {
|
27
29
|
parserState.module.buildMeta.strictHarmonyModule = true;
|
28
30
|
parserState.module.buildInfo.moduleArgument = "__webpack_module__";
|
@@ -24,6 +24,7 @@ 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("../javascript/JavascriptParser").Assertions} Assertions */
|
27
28
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
28
29
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
29
30
|
/** @typedef {import("../util/Hash")} Hash */
|
@@ -55,7 +56,7 @@ class HarmonyImportDependency extends ModuleDependency {
|
|
55
56
|
*
|
56
57
|
* @param {string} request request string
|
57
58
|
* @param {number} sourceOrder source order
|
58
|
-
* @param {
|
59
|
+
* @param {Assertions=} assertions import assertions
|
59
60
|
*/
|
60
61
|
constructor(request, sourceOrder, assertions) {
|
61
62
|
super(request);
|