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
@@ -9,7 +9,13 @@ 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 ModuleHotAcceptDependency extends ModuleDependency {
|
15
|
+
/**
|
16
|
+
* @param {string} request the request string
|
17
|
+
* @param {Range} range location in source code
|
18
|
+
*/
|
13
19
|
constructor(request, range) {
|
14
20
|
super(request);
|
15
21
|
this.range = range;
|
@@ -9,7 +9,13 @@ 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 ModuleHotDeclineDependency extends ModuleDependency {
|
15
|
+
/**
|
16
|
+
* @param {string} request the request string
|
17
|
+
* @param {Range} range location in source code
|
18
|
+
*/
|
13
19
|
constructor(request, range) {
|
14
20
|
super(request);
|
15
21
|
|
@@ -18,6 +18,7 @@ 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("../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 */
|
@@ -37,7 +38,7 @@ class ProvidedDependency extends ModuleDependency {
|
|
37
38
|
* @param {string} request request
|
38
39
|
* @param {string} identifier identifier
|
39
40
|
* @param {string[]} ids ids
|
40
|
-
* @param {
|
41
|
+
* @param {Range} range range
|
41
42
|
*/
|
42
43
|
constructor(request, identifier, ids, range) {
|
43
44
|
super(request);
|
@@ -17,13 +17,14 @@ 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("../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/Hash")} Hash */
|
23
24
|
|
24
25
|
class PureExpressionDependency extends NullDependency {
|
25
26
|
/**
|
26
|
-
* @param {
|
27
|
+
* @param {Range} range the source range
|
27
28
|
*/
|
28
29
|
constructor(range) {
|
29
30
|
super();
|
@@ -9,7 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
10
10
|
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
11
11
|
|
12
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
13
|
+
|
12
14
|
class RequireContextDependency extends ContextDependency {
|
15
|
+
/**
|
16
|
+
* @param {TODO} options options
|
17
|
+
* @param {Range} range range
|
18
|
+
*/
|
13
19
|
constructor(options, range) {
|
14
20
|
super(options);
|
15
21
|
|
@@ -14,8 +14,10 @@ const ContextElementDependency = require("./ContextElementDependency");
|
|
14
14
|
const RequireContextDependency = require("./RequireContextDependency");
|
15
15
|
const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin");
|
16
16
|
|
17
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
17
18
|
/** @typedef {import("../../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
18
19
|
/** @typedef {import("../Compiler")} Compiler */
|
20
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
19
21
|
|
20
22
|
/** @type {ResolveOptions} */
|
21
23
|
const EMPTY_RESOLVE_OPTIONS = {};
|
@@ -46,6 +48,11 @@ class RequireContextPlugin {
|
|
46
48
|
normalModuleFactory
|
47
49
|
);
|
48
50
|
|
51
|
+
/**
|
52
|
+
* @param {Parser} parser parser parser
|
53
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
54
|
+
* @returns {void}
|
55
|
+
*/
|
49
56
|
const handler = (parser, parserOptions) => {
|
50
57
|
if (
|
51
58
|
parserOptions.requireContext !== undefined &&
|
@@ -9,6 +9,10 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
10
10
|
|
11
11
|
class RequireEnsureDependenciesBlock extends AsyncDependenciesBlock {
|
12
|
+
/**
|
13
|
+
* @param {TODO} chunkName chunk name
|
14
|
+
* @param {TODO} loc location info
|
15
|
+
*/
|
12
16
|
constructor(chunkName, loc) {
|
13
17
|
super(chunkName, loc, null);
|
14
18
|
}
|
@@ -13,10 +13,16 @@ 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("../javascript/JavascriptParser").Range} Range */
|
16
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
17
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
18
19
|
|
19
20
|
class RequireEnsureDependency extends NullDependency {
|
21
|
+
/**
|
22
|
+
* @param {Range} range range
|
23
|
+
* @param {Range} contentRange content range
|
24
|
+
* @param {Range} errorHandlerRange error handler range
|
25
|
+
*/
|
20
26
|
constructor(range, contentRange, errorHandlerRange) {
|
21
27
|
super();
|
22
28
|
|
@@ -93,14 +99,14 @@ RequireEnsureDependency.Template = class RequireEnsureDependencyTemplate extends
|
|
93
99
|
source.replace(
|
94
100
|
contentRange[1],
|
95
101
|
errorHandlerRange[0] - 1,
|
96
|
-
|
102
|
+
`).bind(null, ${RuntimeGlobals.require}))['catch'](`
|
97
103
|
);
|
98
104
|
source.replace(errorHandlerRange[1], range[1] - 1, ")");
|
99
105
|
} else {
|
100
106
|
source.replace(
|
101
107
|
contentRange[1],
|
102
108
|
range[1] - 1,
|
103
|
-
`).bind(null,
|
109
|
+
`).bind(null, ${RuntimeGlobals.require}))['catch'](${RuntimeGlobals.uncaughtErrorHandler})`
|
104
110
|
);
|
105
111
|
}
|
106
112
|
}
|
@@ -10,6 +10,9 @@ const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
const NullDependency = require("./NullDependency");
|
11
11
|
|
12
12
|
class RequireEnsureItemDependency extends ModuleDependency {
|
13
|
+
/**
|
14
|
+
* @param {string} request the request string
|
15
|
+
*/
|
13
16
|
constructor(request) {
|
14
17
|
super(request);
|
15
18
|
}
|
@@ -19,9 +19,18 @@ const {
|
|
19
19
|
toConstantDependency
|
20
20
|
} = require("../javascript/JavascriptParserHelpers");
|
21
21
|
|
22
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
23
|
+
/** @typedef {import("../Compiler")} Compiler */
|
24
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
25
|
+
|
22
26
|
const PLUGIN_NAME = "RequireEnsurePlugin";
|
23
27
|
|
24
28
|
class RequireEnsurePlugin {
|
29
|
+
/**
|
30
|
+
* Apply the plugin
|
31
|
+
* @param {Compiler} compiler the compiler instance
|
32
|
+
* @returns {void}
|
33
|
+
*/
|
25
34
|
apply(compiler) {
|
26
35
|
compiler.hooks.compilation.tap(
|
27
36
|
PLUGIN_NAME,
|
@@ -40,6 +49,11 @@ class RequireEnsurePlugin {
|
|
40
49
|
new RequireEnsureDependency.Template()
|
41
50
|
);
|
42
51
|
|
52
|
+
/**
|
53
|
+
* @param {Parser} parser parser parser
|
54
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
55
|
+
* @returns {void}
|
56
|
+
*/
|
43
57
|
const handler = (parser, parserOptions) => {
|
44
58
|
if (
|
45
59
|
parserOptions.requireEnsure !== undefined &&
|
@@ -12,10 +12,14 @@ 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 RequireHeaderDependency extends NullDependency {
|
20
|
+
/**
|
21
|
+
* @param {Range} range range
|
22
|
+
*/
|
19
23
|
constructor(range) {
|
20
24
|
super();
|
21
25
|
if (!Array.isArray(range)) throw new Error("range must be valid");
|
@@ -55,7 +59,7 @@ RequireHeaderDependency.Template = class RequireHeaderDependencyTemplate extends
|
|
55
59
|
apply(dependency, source, { runtimeRequirements }) {
|
56
60
|
const dep = /** @type {RequireHeaderDependency} */ (dependency);
|
57
61
|
runtimeRequirements.add(RuntimeGlobals.require);
|
58
|
-
source.replace(dep.range[0], dep.range[1] - 1,
|
62
|
+
source.replace(dep.range[0], dep.range[1] - 1, RuntimeGlobals.require);
|
59
63
|
}
|
60
64
|
};
|
61
65
|
|
@@ -14,9 +14,14 @@ 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("../javascript/JavascriptParser").Range} Range */
|
17
18
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
18
19
|
|
19
20
|
class RequireIncludeDependency extends ModuleDependency {
|
21
|
+
/**
|
22
|
+
* @param {string} request the request string
|
23
|
+
* @param {Range} range location in source code
|
24
|
+
*/
|
20
25
|
constructor(request, range) {
|
21
26
|
super(request);
|
22
27
|
|
@@ -14,6 +14,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
14
14
|
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
15
15
|
|
16
16
|
module.exports = class RequireIncludeDependencyParserPlugin {
|
17
|
+
/**
|
18
|
+
* @param {boolean} warn true: warn about deprecation, false: don't warn
|
19
|
+
*/
|
17
20
|
constructor(warn) {
|
18
21
|
this.warn = warn;
|
19
22
|
}
|
@@ -12,9 +12,18 @@ const {
|
|
12
12
|
const RequireIncludeDependency = require("./RequireIncludeDependency");
|
13
13
|
const RequireIncludeDependencyParserPlugin = require("./RequireIncludeDependencyParserPlugin");
|
14
14
|
|
15
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
16
|
+
/** @typedef {import("../Compiler")} Compiler */
|
17
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
18
|
+
|
15
19
|
const PLUGIN_NAME = "RequireIncludePlugin";
|
16
20
|
|
17
21
|
class RequireIncludePlugin {
|
22
|
+
/**
|
23
|
+
* Apply the plugin
|
24
|
+
* @param {Compiler} compiler the compiler instance
|
25
|
+
* @returns {void}
|
26
|
+
*/
|
18
27
|
apply(compiler) {
|
19
28
|
compiler.hooks.compilation.tap(
|
20
29
|
PLUGIN_NAME,
|
@@ -28,6 +37,11 @@ class RequireIncludePlugin {
|
|
28
37
|
new RequireIncludeDependency.Template()
|
29
38
|
);
|
30
39
|
|
40
|
+
/**
|
41
|
+
* @param {Parser} parser parser parser
|
42
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
43
|
+
* @returns {void}
|
44
|
+
*/
|
31
45
|
const handler = (parser, parserOptions) => {
|
32
46
|
if (parserOptions.requireInclude === false) return;
|
33
47
|
const warn = parserOptions.requireInclude === undefined;
|
@@ -9,10 +9,18 @@ const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
10
10
|
const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId");
|
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 */
|
15
|
+
/** @typedef {import("./ContextDependency").ContextDependencyOptions} ContextDependencyOptions */
|
14
16
|
|
15
17
|
class RequireResolveContextDependency extends ContextDependency {
|
18
|
+
/**
|
19
|
+
* @param {ContextDependencyOptions} options options
|
20
|
+
* @param {Range} range range
|
21
|
+
* @param {Range} valueRange value range
|
22
|
+
* @param {TODO} context context
|
23
|
+
*/
|
16
24
|
constructor(options, range, valueRange, context) {
|
17
25
|
super(options, context);
|
18
26
|
|
@@ -12,9 +12,15 @@ const ModuleDependencyAsId = require("./ModuleDependencyTemplateAsId");
|
|
12
12
|
|
13
13
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
14
14
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
15
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
15
16
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
16
17
|
|
17
18
|
class RequireResolveDependency extends ModuleDependency {
|
19
|
+
/**
|
20
|
+
* @param {string} request the request string
|
21
|
+
* @param {Range} range location in source code
|
22
|
+
* @param {string} [context] context
|
23
|
+
*/
|
18
24
|
constructor(request, range, context) {
|
19
25
|
super(request);
|
20
26
|
|
@@ -11,10 +11,14 @@ 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 RequireResolveHeaderDependency extends NullDependency {
|
19
|
+
/**
|
20
|
+
* @param {Range} range range
|
21
|
+
*/
|
18
22
|
constructor(range) {
|
19
23
|
super();
|
20
24
|
|
@@ -20,7 +20,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
20
20
|
const ConstDependency = require("./ConstDependency");
|
21
21
|
const SystemRuntimeModule = require("./SystemRuntimeModule");
|
22
22
|
|
23
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
23
24
|
/** @typedef {import("../Compiler")} Compiler */
|
25
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
24
26
|
|
25
27
|
const PLUGIN_NAME = "SystemPlugin";
|
26
28
|
|
@@ -46,6 +48,11 @@ class SystemPlugin {
|
|
46
48
|
compilation.addRuntimeModule(chunk, new SystemRuntimeModule());
|
47
49
|
});
|
48
50
|
|
51
|
+
/**
|
52
|
+
* @param {Parser} parser parser parser
|
53
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
54
|
+
* @returns {void}
|
55
|
+
*/
|
49
56
|
const handler = (parser, parserOptions) => {
|
50
57
|
if (parserOptions.system === undefined || !parserOptions.system) {
|
51
58
|
return;
|
@@ -105,7 +112,9 @@ class SystemPlugin {
|
|
105
112
|
|
106
113
|
return parser.hooks.importCall.call({
|
107
114
|
type: "ImportExpression",
|
108
|
-
source:
|
115
|
+
source:
|
116
|
+
/** @type {import("estree").Literal} */
|
117
|
+
(expr.arguments[0]),
|
109
118
|
loc: expr.loc,
|
110
119
|
range: expr.range
|
111
120
|
});
|
@@ -22,6 +22,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
22
22
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
23
23
|
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
24
24
|
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
25
|
+
/** @typedef {import("../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/Hash")} Hash */
|
@@ -32,8 +33,8 @@ const getRawDataUrlModule = memoize(() => require("../asset/RawDataUrlModule"));
|
|
32
33
|
class URLDependency extends ModuleDependency {
|
33
34
|
/**
|
34
35
|
* @param {string} request request
|
35
|
-
* @param {
|
36
|
-
* @param {
|
36
|
+
* @param {Range} range range of the arguments of new URL( |> ... <| )
|
37
|
+
* @param {Range} outerRange range of the full |> new URL(...) <|
|
37
38
|
* @param {boolean=} relative use relative urls instead of absolute with base uri
|
38
39
|
*/
|
39
40
|
constructor(request, range, outerRange, relative) {
|
@@ -16,9 +16,11 @@ const InnerGraph = require("../optimize/InnerGraph");
|
|
16
16
|
const URLDependency = require("./URLDependency");
|
17
17
|
|
18
18
|
/** @typedef {import("estree").NewExpression} NewExpressionNode */
|
19
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
19
20
|
/** @typedef {import("../Compiler")} Compiler */
|
20
21
|
/** @typedef {import("../NormalModule")} NormalModule */
|
21
22
|
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
23
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
22
24
|
|
23
25
|
const PLUGIN_NAME = "URLPlugin";
|
24
26
|
|
@@ -43,9 +45,11 @@ class URLPlugin {
|
|
43
45
|
const getUrl = module => {
|
44
46
|
return pathToFileURL(module.resource);
|
45
47
|
};
|
48
|
+
|
46
49
|
/**
|
47
|
-
* @param {
|
48
|
-
* @param {
|
50
|
+
* @param {Parser} parser parser parser
|
51
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
52
|
+
* @returns {void}
|
49
53
|
*/
|
50
54
|
const parserCallback = (parser, parserOptions) => {
|
51
55
|
if (parserOptions.url === false) return;
|
@@ -77,9 +81,7 @@ class URLPlugin {
|
|
77
81
|
)
|
78
82
|
return;
|
79
83
|
|
80
|
-
|
81
|
-
|
82
|
-
return request;
|
84
|
+
return parser.evaluateExpression(arg1).asString();
|
83
85
|
};
|
84
86
|
|
85
87
|
parser.hooks.canRename.for("URL").tap(PLUGIN_NAME, approve);
|
@@ -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 UnsupportedDependency extends NullDependency {
|
19
|
+
/**
|
20
|
+
* @param {string} request the request string
|
21
|
+
* @param {Range} range location in source code
|
22
|
+
*/
|
18
23
|
constructor(request, range) {
|
19
24
|
super();
|
20
25
|
|
@@ -17,6 +17,12 @@ const ModuleDependency = require("./ModuleDependency");
|
|
17
17
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
18
18
|
|
19
19
|
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
20
|
+
/**
|
21
|
+
* @param {string} exportName export name
|
22
|
+
* @param {string} request request
|
23
|
+
* @param {string} name name
|
24
|
+
* @param {TODO} valueType value type
|
25
|
+
*/
|
20
26
|
constructor(exportName, request, name, valueType) {
|
21
27
|
super(request);
|
22
28
|
/** @type {string} */
|
@@ -15,9 +15,14 @@ const ModuleDependency = require("./ModuleDependency");
|
|
15
15
|
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
16
16
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
17
17
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
18
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
18
19
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
19
20
|
|
20
21
|
class WebpackIsIncludedDependency extends ModuleDependency {
|
22
|
+
/**
|
23
|
+
* @param {string} request the request string
|
24
|
+
* @param {Range} range location in source code
|
25
|
+
*/
|
21
26
|
constructor(request, range) {
|
22
27
|
super(request);
|
23
28
|
|
@@ -18,6 +18,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
19
19
|
/** @typedef {import("../Entrypoint")} Entrypoint */
|
20
20
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
21
|
+
/** @typedef {import("../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 */
|
@@ -26,7 +27,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
26
27
|
class WorkerDependency extends ModuleDependency {
|
27
28
|
/**
|
28
29
|
* @param {string} request request
|
29
|
-
* @param {
|
30
|
+
* @param {Range} range range
|
30
31
|
* @param {Object} workerDependencyOptions options
|
31
32
|
* @param {string} workerDependencyOptions.publicPath public path for the worker
|
32
33
|
*/
|
@@ -30,17 +30,21 @@ const WorkerDependency = require("./WorkerDependency");
|
|
30
30
|
/** @typedef {import("estree").Pattern} Pattern */
|
31
31
|
/** @typedef {import("estree").Property} Property */
|
32
32
|
/** @typedef {import("estree").SpreadElement} SpreadElement */
|
33
|
+
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
33
34
|
/** @typedef {import("../Compiler")} Compiler */
|
34
35
|
/** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */
|
35
36
|
/** @typedef {import("../Parser").ParserState} ParserState */
|
36
37
|
/** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
|
37
38
|
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
39
|
+
/** @typedef {import("../javascript/JavascriptParser")} Parser */
|
38
40
|
/** @typedef {import("./HarmonyImportDependencyParserPlugin").HarmonySettings} HarmonySettings */
|
39
41
|
|
40
42
|
const getUrl = module => {
|
41
43
|
return pathToFileURL(module.resource).toString();
|
42
44
|
};
|
43
45
|
|
46
|
+
const WorkerSpecifierTag = Symbol("worker specifier tag");
|
47
|
+
|
44
48
|
const DEFAULT_SYNTAX = [
|
45
49
|
"Worker",
|
46
50
|
"SharedWorker",
|
@@ -169,8 +173,9 @@ class WorkerPlugin {
|
|
169
173
|
};
|
170
174
|
|
171
175
|
/**
|
172
|
-
* @param {
|
173
|
-
* @param {
|
176
|
+
* @param {Parser} parser parser parser
|
177
|
+
* @param {JavascriptParserOptions} parserOptions parserOptions
|
178
|
+
* @returns {void}
|
174
179
|
*/
|
175
180
|
const parserPlugin = (parser, parserOptions) => {
|
176
181
|
if (parserOptions.worker === false) return;
|
@@ -378,7 +383,29 @@ class WorkerPlugin {
|
|
378
383
|
return true;
|
379
384
|
};
|
380
385
|
const processItem = item => {
|
381
|
-
if (
|
386
|
+
if (
|
387
|
+
item.startsWith("*") &&
|
388
|
+
item.includes(".") &&
|
389
|
+
item.endsWith("()")
|
390
|
+
) {
|
391
|
+
const firstDot = item.indexOf(".");
|
392
|
+
const pattern = item.slice(1, firstDot);
|
393
|
+
const itemMembers = item.slice(firstDot + 1, -2);
|
394
|
+
|
395
|
+
parser.hooks.pattern.for(pattern).tap(PLUGIN_NAME, pattern => {
|
396
|
+
parser.tagVariable(pattern.name, WorkerSpecifierTag);
|
397
|
+
return true;
|
398
|
+
});
|
399
|
+
parser.hooks.callMemberChain
|
400
|
+
.for(WorkerSpecifierTag)
|
401
|
+
.tap(PLUGIN_NAME, (expression, members) => {
|
402
|
+
if (itemMembers !== members.join(".")) {
|
403
|
+
return;
|
404
|
+
}
|
405
|
+
|
406
|
+
return handleNewWorker(expression);
|
407
|
+
});
|
408
|
+
} else if (item.endsWith("()")) {
|
382
409
|
parser.hooks.call
|
383
410
|
.for(item.slice(0, -2))
|
384
411
|
.tap(PLUGIN_NAME, handleNewWorker);
|
@@ -5,6 +5,13 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
+
/** @typedef {import("estree").Expression} Expression */
|
9
|
+
/** @typedef {import("estree").SpreadElement} SpreadElement */
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @param {Expression} expr expressions
|
13
|
+
* @returns {{fn: TODO, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined }} function expression with additional information
|
14
|
+
*/
|
8
15
|
module.exports = expr => {
|
9
16
|
// <FunctionExpression>
|
10
17
|
if (
|
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
"use strict";
|
6
6
|
|
7
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
7
8
|
const RuntimeModule = require("../RuntimeModule");
|
8
9
|
|
9
10
|
class ExportWebpackRequireRuntimeModule extends RuntimeModule {
|
@@ -22,7 +23,7 @@ class ExportWebpackRequireRuntimeModule extends RuntimeModule {
|
|
22
23
|
* @returns {string} runtime code
|
23
24
|
*/
|
24
25
|
generate() {
|
25
|
-
return
|
26
|
+
return `export default ${RuntimeGlobals.require};`;
|
26
27
|
}
|
27
28
|
}
|
28
29
|
|