webpack 5.101.3 → 5.102.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.
- package/README.md +21 -26
- package/lib/APIPlugin.js +30 -36
- package/lib/AsyncDependenciesBlock.js +1 -4
- package/lib/BannerPlugin.js +0 -1
- package/lib/Cache.js +7 -6
- package/lib/CacheFacade.js +0 -1
- package/lib/Chunk.js +49 -31
- package/lib/ChunkGraph.js +35 -25
- package/lib/ChunkGroup.js +8 -10
- package/lib/ChunkTemplate.js +1 -1
- package/lib/CleanPlugin.js +3 -3
- package/lib/CodeGenerationResults.js +2 -1
- package/lib/CompatibilityPlugin.js +29 -12
- package/lib/Compilation.js +204 -185
- package/lib/Compiler.js +36 -35
- package/lib/ConcatenationScope.js +6 -1
- package/lib/ConditionalInitFragment.js +1 -1
- package/lib/ConstPlugin.js +6 -5
- package/lib/ContextExclusionPlugin.js +0 -1
- package/lib/ContextModule.js +22 -20
- package/lib/ContextModuleFactory.js +30 -11
- package/lib/ContextReplacementPlugin.js +38 -15
- package/lib/DefinePlugin.js +4 -8
- package/lib/DelegatedModule.js +7 -11
- package/lib/DependenciesBlock.js +0 -2
- package/lib/Dependency.js +9 -11
- package/lib/DependencyTemplates.js +1 -3
- package/lib/DllModule.js +1 -7
- package/lib/DllReferencePlugin.js +2 -4
- package/lib/DynamicEntryPlugin.js +0 -2
- package/lib/EntryOptionPlugin.js +0 -5
- package/lib/EnvironmentNotSupportAsyncWarning.js +0 -3
- package/lib/EvalDevToolModulePlugin.js +4 -3
- package/lib/EvalSourceMapDevToolPlugin.js +3 -4
- package/lib/ExportsInfo.js +50 -49
- package/lib/ExternalModule.js +84 -52
- package/lib/ExternalModuleFactoryPlugin.js +27 -7
- package/lib/ExternalsPlugin.js +24 -17
- package/lib/FileSystemInfo.js +96 -78
- package/lib/FlagDependencyUsagePlugin.js +3 -4
- package/lib/Generator.js +2 -13
- package/lib/GraphHelpers.js +0 -3
- package/lib/HookWebpackError.js +0 -2
- package/lib/HotModuleReplacementPlugin.js +22 -24
- package/lib/HotUpdateChunk.js +0 -3
- package/lib/IgnorePlugin.js +5 -2
- package/lib/InitFragment.js +41 -29
- package/lib/InvalidDependenciesModuleWarning.js +0 -1
- package/lib/LibManifestPlugin.js +4 -6
- package/lib/LoaderOptionsPlugin.js +1 -10
- package/lib/MainTemplate.js +8 -19
- package/lib/Module.js +32 -20
- package/lib/ModuleFactory.js +1 -1
- package/lib/ModuleFilenameHelpers.js +41 -24
- package/lib/ModuleGraph.js +30 -16
- package/lib/ModuleInfoHeaderPlugin.js +0 -1
- package/lib/ModuleTemplate.js +0 -2
- package/lib/ModuleTypeConstants.js +11 -1
- package/lib/MultiCompiler.js +23 -15
- package/lib/MultiWatching.js +6 -10
- package/lib/NodeStuffPlugin.js +2 -10
- package/lib/NormalModule.js +145 -88
- package/lib/NormalModuleFactory.js +59 -40
- package/lib/OptionsApply.js +1 -1
- package/lib/Parser.js +1 -1
- package/lib/ProgressPlugin.js +6 -10
- package/lib/ProvidePlugin.js +5 -7
- package/lib/RawModule.js +1 -6
- package/lib/RecordIdsPlugin.js +10 -6
- package/lib/ResolverFactory.js +0 -2
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimeModule.js +1 -3
- package/lib/RuntimePlugin.js +26 -22
- package/lib/RuntimeTemplate.js +12 -11
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -2
- package/lib/SourceMapDevToolPlugin.js +6 -11
- package/lib/Stats.js +0 -1
- package/lib/Template.js +6 -11
- package/lib/TemplatedPathPlugin.js +2 -1
- package/lib/WatchIgnorePlugin.js +2 -3
- package/lib/Watching.js +15 -15
- package/lib/WebpackIsIncludedPlugin.js +0 -2
- package/lib/WebpackOptionsApply.js +74 -107
- package/lib/asset/AssetBytesGenerator.js +166 -0
- package/lib/asset/AssetBytesParser.js +37 -0
- package/lib/asset/AssetGenerator.js +20 -34
- package/lib/asset/AssetModulesPlugin.js +34 -16
- package/lib/asset/AssetParser.js +7 -3
- package/lib/asset/AssetSourceGenerator.js +1 -1
- package/lib/asset/RawDataUrlModule.js +3 -2
- package/lib/async-modules/AsyncModuleHelpers.js +6 -4
- package/lib/buildChunkGraph.js +0 -1
- package/lib/cache/MemoryCachePlugin.js +0 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +0 -2
- package/lib/cache/PackFileCacheStrategy.js +14 -1
- package/lib/cache/ResolverCachePlugin.js +9 -15
- package/lib/config/defaults.js +155 -21
- package/lib/config/normalization.js +18 -3
- package/lib/container/ContainerEntryDependency.js +0 -1
- package/lib/container/ContainerEntryModule.js +3 -7
- package/lib/container/ContainerPlugin.js +1 -2
- package/lib/container/ContainerReferencePlugin.js +0 -1
- package/lib/container/FallbackDependency.js +2 -1
- package/lib/container/FallbackModule.js +6 -7
- package/lib/container/ModuleFederationPlugin.js +0 -1
- package/lib/container/RemoteModule.js +8 -8
- package/lib/container/RemoteRuntimeModule.js +2 -2
- package/lib/css/CssGenerator.js +3 -6
- package/lib/css/CssLoadingRuntimeModule.js +6 -9
- package/lib/css/CssModulesPlugin.js +11 -13
- package/lib/css/CssParser.js +3 -3
- package/lib/css/walkCssTokens.js +1 -1
- package/lib/debug/ProfilingPlugin.js +35 -8
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -17
- package/lib/dependencies/AMDPlugin.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -2
- package/lib/dependencies/CachedConstDependency.js +0 -4
- package/lib/dependencies/CommonJsExportRequireDependency.js +20 -14
- package/lib/dependencies/CommonJsExportsDependency.js +2 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +20 -5
- package/lib/dependencies/CommonJsFullRequireDependency.js +6 -4
- package/lib/dependencies/CommonJsImportsParserPlugin.js +16 -7
- package/lib/dependencies/CommonJsRequireContextDependency.js +1 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +4 -4
- package/lib/dependencies/ConstDependency.js +2 -2
- package/lib/dependencies/ContextDependency.js +9 -4
- package/lib/dependencies/ContextDependencyHelpers.js +2 -2
- package/lib/dependencies/ContextDependencyTemplateAsId.js +9 -9
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +9 -9
- package/lib/dependencies/ContextElementDependency.js +22 -11
- package/lib/dependencies/CssIcssImportDependency.js +0 -2
- package/lib/dependencies/CssIcssSymbolDependency.js +2 -2
- package/lib/dependencies/CssImportDependency.js +0 -8
- package/lib/dependencies/CssLocalIdentifierDependency.js +3 -4
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -2
- package/lib/dependencies/CssUrlDependency.js +0 -6
- package/lib/dependencies/ExportsInfoDependency.js +7 -9
- package/lib/dependencies/ExternalModuleDependency.js +0 -3
- package/lib/dependencies/ExternalModuleInitFragment.js +1 -1
- package/lib/dependencies/HarmonyAcceptDependency.js +1 -1
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +0 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +0 -14
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +3 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +4 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +29 -35
- package/lib/dependencies/HarmonyImportDependency.js +30 -14
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +20 -23
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +0 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +46 -31
- package/lib/dependencies/HarmonyModulesPlugin.js +3 -3
- package/lib/dependencies/ImportDependency.js +18 -6
- package/lib/dependencies/ImportEagerDependency.js +2 -3
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +8 -5
- package/lib/dependencies/ImportMetaContextPlugin.js +0 -1
- package/lib/dependencies/ImportMetaPlugin.js +2 -1
- package/lib/dependencies/ImportParserPlugin.js +288 -45
- package/lib/dependencies/ImportWeakDependency.js +2 -3
- package/lib/dependencies/JsonExportsDependency.js +0 -1
- package/lib/dependencies/LoaderDependency.js +0 -3
- package/lib/dependencies/LoaderImportDependency.js +0 -3
- package/lib/dependencies/LoaderPlugin.js +11 -5
- package/lib/dependencies/ModuleDecoratorDependency.js +2 -4
- package/lib/dependencies/ModuleDependency.js +3 -9
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/ProvidedDependency.js +6 -8
- package/lib/dependencies/PureExpressionDependency.js +0 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +0 -1
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -2
- package/lib/dependencies/RequireIncludeDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +2 -2
- package/lib/dependencies/RuntimeRequirementsDependency.js +2 -3
- package/lib/dependencies/StaticExportsDependency.js +3 -5
- package/lib/dependencies/URLDependency.js +2 -7
- package/lib/dependencies/URLPlugin.js +1 -2
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +2 -2
- package/lib/dependencies/WebAssemblyImportDependency.js +2 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -3
- package/lib/dependencies/WorkerDependency.js +2 -3
- package/lib/dependencies/WorkerPlugin.js +3 -9
- package/lib/dependencies/processExportInfo.js +2 -3
- package/lib/esm/ModuleChunkFormatPlugin.js +0 -3
- package/lib/esm/ModuleChunkLoadingPlugin.js +2 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -7
- package/lib/hmr/LazyCompilationPlugin.js +6 -4
- package/lib/hmr/lazyCompilationBackend.js +13 -10
- package/lib/ids/DeterministicChunkIdsPlugin.js +0 -1
- package/lib/ids/NamedChunkIdsPlugin.js +1 -6
- package/lib/ids/NamedModuleIdsPlugin.js +1 -5
- package/lib/ids/NaturalChunkIdsPlugin.js +0 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +0 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +0 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +0 -1
- package/lib/ids/SyncModuleIdsPlugin.js +4 -3
- package/lib/index.js +8 -7
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -1
- package/lib/javascript/BasicEvaluatedExpression.js +13 -6
- package/lib/javascript/ChunkFormatHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +0 -1
- package/lib/javascript/JavascriptGenerator.js +2 -3
- package/lib/javascript/JavascriptModulesPlugin.js +44 -21
- package/lib/javascript/JavascriptParser.js +119 -54
- package/lib/javascript/JavascriptParserHelpers.js +2 -2
- package/lib/javascript/StartupHelpers.js +2 -4
- package/lib/json/JsonData.js +1 -1
- package/lib/json/JsonGenerator.js +4 -5
- package/lib/json/JsonModulesPlugin.js +0 -3
- package/lib/json/JsonParser.js +4 -2
- package/lib/library/AbstractLibraryPlugin.js +2 -2
- package/lib/library/AmdLibraryPlugin.js +0 -1
- package/lib/library/AssignLibraryPlugin.js +23 -12
- package/lib/library/EnableLibraryPlugin.js +7 -11
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -20
- package/lib/library/JsonpLibraryPlugin.js +5 -2
- package/lib/library/ModuleLibraryPlugin.js +88 -43
- package/lib/library/SystemLibraryPlugin.js +0 -1
- package/lib/library/UmdLibraryPlugin.js +12 -18
- package/lib/logging/Logger.js +12 -10
- package/lib/logging/createConsoleLogger.js +15 -14
- package/lib/logging/truncateArgs.js +1 -1
- package/lib/node/CommonJsChunkLoadingPlugin.js +2 -1
- package/lib/node/NodeWatchFileSystem.js +4 -4
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/RequireChunkLoadingRuntimeModule.js +5 -2
- package/lib/node/nodeConsole.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +2 -0
- package/lib/optimize/ConcatenatedModule.js +142 -100
- package/lib/optimize/InnerGraph.js +17 -11
- package/lib/optimize/InnerGraphPlugin.js +0 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +3 -4
- package/lib/optimize/RuntimeChunkPlugin.js +0 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +3 -10
- package/lib/optimize/SplitChunksPlugin.js +46 -40
- package/lib/performance/SizeLimitsPlugin.js +2 -1
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +5 -7
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +0 -2
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +0 -1
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +0 -2
- package/lib/rules/ObjectMatcherRulePlugin.js +0 -1
- package/lib/rules/RuleSetCompiler.js +8 -6
- package/lib/runtime/BaseUriRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +0 -1
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +8 -9
- package/lib/runtime/LoadScriptRuntimeModule.js +0 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +1 -1
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/StartupEntrypointRuntimeModule.js +0 -1
- package/lib/runtime/SystemContextRuntimeModule.js +0 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +64 -0
- package/lib/schemes/DataUriPlugin.js +2 -28
- package/lib/schemes/FileUriPlugin.js +5 -2
- package/lib/schemes/HttpUriPlugin.js +4 -2
- package/lib/schemes/VirtualUrlPlugin.js +11 -11
- package/lib/serialization/NullPrototypeObjectSerializer.js +5 -3
- package/lib/serialization/ObjectMiddleware.js +30 -19
- package/lib/serialization/SerializerMiddleware.js +1 -3
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedModule.js +3 -5
- package/lib/sharing/ConsumeSharedPlugin.js +2 -4
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -6
- package/lib/sharing/ProvideSharedModule.js +3 -7
- package/lib/sharing/SharePlugin.js +0 -2
- package/lib/sharing/ShareRuntimeModule.js +4 -1
- package/lib/sharing/resolveMatchedConfigs.js +14 -6
- package/lib/sharing/utils.js +0 -6
- package/lib/stats/DefaultStatsFactoryPlugin.js +178 -94
- package/lib/stats/DefaultStatsPresetPlugin.js +15 -9
- package/lib/stats/DefaultStatsPrinterPlugin.js +77 -113
- package/lib/stats/StatsFactory.js +14 -11
- package/lib/url/URLParserPlugin.js +2 -4
- package/lib/util/ArrayHelpers.js +4 -4
- package/lib/util/AsyncQueue.js +1 -0
- package/lib/util/LazySet.js +2 -2
- package/lib/util/StackedCacheMap.js +0 -2
- package/lib/util/TupleSet.js +9 -4
- package/lib/util/URLAbsoluteSpecifier.js +0 -1
- package/lib/util/WeakTupleMap.js +1 -1
- package/lib/util/chainedImports.js +3 -1
- package/lib/util/cleverMerge.js +15 -18
- package/lib/util/comparators.js +2 -4
- package/lib/util/compileBooleanMatcher.js +11 -9
- package/lib/util/concatenate.js +1 -2
- package/lib/util/create-schema-validation.js +0 -1
- package/lib/util/dataURL.js +39 -0
- package/lib/util/deprecation.js +29 -31
- package/lib/util/deterministicGrouping.js +34 -30
- package/lib/util/extractSourceMap.js +319 -0
- package/lib/util/findGraphRoots.js +15 -5
- package/lib/util/fs.js +29 -8
- package/lib/util/semver.js +9 -8
- package/lib/util/smartGrouping.js +41 -26
- package/lib/util/traverseDestructuringAssignmentProperties.js +45 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +3 -2
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +5 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +2 -13
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +2 -9
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +6 -4
- package/lib/wasm-sync/WebAssemblyGenerator.js +1 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +2 -7
- package/lib/wasm-sync/WebAssemblyParser.js +1 -4
- package/lib/web/JsonpChunkLoadingPlugin.js +2 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -1
- package/lib/web/JsonpTemplatePlugin.js +0 -1
- package/lib/webpack.js +21 -8
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +2 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +12 -12
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +77 -93
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +4 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/ProgressPlugin.json +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +5 -1
- package/schemas/plugins/schemes/VirtualUrlPlugin.json +3 -3
- package/types.d.ts +1129 -530
- package/SECURITY.md +0 -9
|
@@ -38,6 +38,14 @@ const RequireResolveHeaderDependency = require("./RequireResolveHeaderDependency
|
|
|
38
38
|
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
|
39
39
|
/** @typedef {import("../javascript/JavascriptParser").ImportSource} ImportSource */
|
|
40
40
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
41
|
+
/** @typedef {import("../javascript/JavascriptParser").Members} Members */
|
|
42
|
+
/** @typedef {import("../javascript/JavascriptParser").CalleeMembers} CalleeMembers */
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @typedef {object} CommonJsImportSettings
|
|
46
|
+
* @property {string=} name
|
|
47
|
+
* @property {string} context
|
|
48
|
+
*/
|
|
41
49
|
|
|
42
50
|
const createRequireSpecifierTag = Symbol("createRequire");
|
|
43
51
|
const createdRequireIdentifierTag = Symbol("createRequire()");
|
|
@@ -58,10 +66,11 @@ class CommonJsImportsParserPlugin {
|
|
|
58
66
|
*/
|
|
59
67
|
apply(parser) {
|
|
60
68
|
const options = this.options;
|
|
61
|
-
|
|
62
69
|
const getContext = () => {
|
|
63
70
|
if (parser.currentTagData) {
|
|
64
|
-
const { context } =
|
|
71
|
+
const { context } =
|
|
72
|
+
/** @type {CommonJsImportSettings} */
|
|
73
|
+
(parser.currentTagData);
|
|
65
74
|
return context;
|
|
66
75
|
}
|
|
67
76
|
};
|
|
@@ -69,7 +78,7 @@ class CommonJsImportsParserPlugin {
|
|
|
69
78
|
// #region metadata
|
|
70
79
|
/**
|
|
71
80
|
* @param {string} expression expression
|
|
72
|
-
* @param {() =>
|
|
81
|
+
* @param {() => Members} getMembers get members
|
|
73
82
|
*/
|
|
74
83
|
const tapRequireExpression = (expression, getMembers) => {
|
|
75
84
|
parser.hooks.typeof
|
|
@@ -366,9 +375,9 @@ class CommonJsImportsParserPlugin {
|
|
|
366
375
|
// #region Require with property access
|
|
367
376
|
/**
|
|
368
377
|
* @param {Expression} expr expression
|
|
369
|
-
* @param {
|
|
378
|
+
* @param {CalleeMembers} calleeMembers callee members
|
|
370
379
|
* @param {CallExpression} callExpr call expression
|
|
371
|
-
* @param {
|
|
380
|
+
* @param {Members} members members
|
|
372
381
|
* @param {Range[]} memberRanges member ranges
|
|
373
382
|
* @returns {boolean | void} true when handled
|
|
374
383
|
*/
|
|
@@ -402,9 +411,9 @@ class CommonJsImportsParserPlugin {
|
|
|
402
411
|
};
|
|
403
412
|
/**
|
|
404
413
|
* @param {CallExpression} expr expression
|
|
405
|
-
* @param {
|
|
414
|
+
* @param {CalleeMembers} calleeMembers callee members
|
|
406
415
|
* @param {CallExpression} callExpr call expression
|
|
407
|
-
* @param {
|
|
416
|
+
* @param {Members} members members
|
|
408
417
|
* @param {Range[]} memberRanges member ranges
|
|
409
418
|
* @returns {boolean | void} true when handled
|
|
410
419
|
*/
|
|
@@ -20,7 +20,7 @@ class CommonJsRequireContextDependency extends ContextDependency {
|
|
|
20
20
|
* @param {Range} range location in source code
|
|
21
21
|
* @param {Range | undefined} valueRange location of the require call
|
|
22
22
|
* @param {boolean | string } inShorthand true or name
|
|
23
|
-
* @param {string} context context
|
|
23
|
+
* @param {string=} context context
|
|
24
24
|
*/
|
|
25
25
|
constructor(options, range, valueRange, inShorthand, context) {
|
|
26
26
|
super(options, context);
|
|
@@ -13,10 +13,10 @@ const NullDependency = require("./NullDependency");
|
|
|
13
13
|
|
|
14
14
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
15
15
|
/** @typedef {import("../Dependency")} Dependency */
|
|
16
|
-
/** @typedef {import("../Dependency").
|
|
17
|
-
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
|
|
16
|
+
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
18
17
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
19
18
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
19
|
+
/** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
|
|
20
20
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
21
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
@@ -27,7 +27,7 @@ class CommonJsSelfReferenceDependency extends NullDependency {
|
|
|
27
27
|
/**
|
|
28
28
|
* @param {Range} range range
|
|
29
29
|
* @param {CommonJSDependencyBaseKeywords} base base
|
|
30
|
-
* @param {
|
|
30
|
+
* @param {ExportInfoName[]} names names
|
|
31
31
|
* @param {boolean} call is a call
|
|
32
32
|
*/
|
|
33
33
|
constructor(range, base, names, call) {
|
|
@@ -57,7 +57,7 @@ class CommonJsSelfReferenceDependency extends NullDependency {
|
|
|
57
57
|
* Returns list of exports referenced by this dependency
|
|
58
58
|
* @param {ModuleGraph} moduleGraph module graph
|
|
59
59
|
* @param {RuntimeSpec} runtime the runtime for which the module is analysed
|
|
60
|
-
* @returns {
|
|
60
|
+
* @returns {ReferencedExports} referenced exports
|
|
61
61
|
*/
|
|
62
62
|
getReferencedExports(moduleGraph, runtime) {
|
|
63
63
|
return [this.call ? this.names.slice(0, -1) : this.names];
|
|
@@ -9,7 +9,7 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const NullDependency = require("./NullDependency");
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
|
-
/** @typedef {import("
|
|
12
|
+
/** @typedef {import("./NullDependency").RawRuntimeRequirements} RawRuntimeRequirements */
|
|
13
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
14
14
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
@@ -24,7 +24,7 @@ class ConstDependency extends NullDependency {
|
|
|
24
24
|
/**
|
|
25
25
|
* @param {string} expression the expression
|
|
26
26
|
* @param {number | Range} range the source range
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {RawRuntimeRequirements | null=} runtimeRequirements runtime requirements
|
|
28
28
|
*/
|
|
29
29
|
constructor(expression, range, runtimeRequirements) {
|
|
30
30
|
super();
|
|
@@ -10,6 +10,7 @@ const DependencyTemplate = require("../DependencyTemplate");
|
|
|
10
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
11
|
const memoize = require("../util/memoize");
|
|
12
12
|
|
|
13
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
13
14
|
/** @typedef {import("../ContextModule").ContextOptions} ContextOptions */
|
|
14
15
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
|
15
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
@@ -23,8 +24,10 @@ const getCriticalDependencyWarning = memoize(() =>
|
|
|
23
24
|
|
|
24
25
|
/** @typedef {ContextOptions & { request: string }} ContextDependencyOptions */
|
|
25
26
|
|
|
27
|
+
/** @typedef {{ value: string, range: Range }[]} Replaces */
|
|
28
|
+
|
|
26
29
|
/**
|
|
27
|
-
* @param {RegExp | null | undefined} r regexp
|
|
30
|
+
* @param {RegExp | false | null | undefined} r regexp
|
|
28
31
|
* @returns {string} stringified regexp
|
|
29
32
|
*/
|
|
30
33
|
const regExpToString = (r) => (r ? String(r) : "");
|
|
@@ -45,18 +48,22 @@ class ContextDependency extends Dependency {
|
|
|
45
48
|
|
|
46
49
|
if (
|
|
47
50
|
this.options &&
|
|
51
|
+
this.options.regExp &&
|
|
48
52
|
(this.options.regExp.global || this.options.regExp.sticky)
|
|
49
53
|
) {
|
|
50
54
|
this.options = { ...this.options, regExp: null };
|
|
51
55
|
this.hadGlobalOrStickyRegExp = true;
|
|
52
56
|
}
|
|
53
57
|
|
|
58
|
+
/** @type {string | undefined} */
|
|
54
59
|
this.request = undefined;
|
|
60
|
+
/** @type {Range | undefined} */
|
|
55
61
|
this.range = undefined;
|
|
62
|
+
/** @type {Range | undefined} */
|
|
56
63
|
this.valueRange = undefined;
|
|
57
64
|
/** @type {boolean | string | undefined} */
|
|
58
65
|
this.inShorthand = undefined;
|
|
59
|
-
|
|
66
|
+
/** @type {Replaces | undefined} */
|
|
60
67
|
this.replaces = undefined;
|
|
61
68
|
this._requestContext = context;
|
|
62
69
|
}
|
|
@@ -141,7 +148,6 @@ class ContextDependency extends Dependency {
|
|
|
141
148
|
write(this._requestContext);
|
|
142
149
|
write(this.range);
|
|
143
150
|
write(this.valueRange);
|
|
144
|
-
write(this.prepend);
|
|
145
151
|
write(this.replaces);
|
|
146
152
|
|
|
147
153
|
super.serialize(context);
|
|
@@ -161,7 +167,6 @@ class ContextDependency extends Dependency {
|
|
|
161
167
|
this._requestContext = read();
|
|
162
168
|
this.range = read();
|
|
163
169
|
this.valueRange = read();
|
|
164
|
-
this.prepend = read();
|
|
165
170
|
this.replaces = read();
|
|
166
171
|
|
|
167
172
|
super.deserialize(context);
|
|
@@ -9,13 +9,13 @@ const { parseResource } = require("../util/identifier");
|
|
|
9
9
|
|
|
10
10
|
/** @typedef {import("estree").Expression} Expression */
|
|
11
11
|
/** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */
|
|
12
|
-
/** @typedef {import("../../declarations/WebpackOptions").ModuleOptionsNormalized} ModuleOptions */
|
|
13
12
|
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
|
14
13
|
/** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */
|
|
15
14
|
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
|
|
16
15
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
17
16
|
/** @typedef {import("./ContextDependency")} ContextDependency */
|
|
18
17
|
/** @typedef {import("./ContextDependency").ContextDependencyOptions} ContextDependencyOptions */
|
|
18
|
+
/** @typedef {import("./ContextDependency").Replaces} Replaces */
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Escapes regular expression metacharacters
|
|
@@ -119,7 +119,7 @@ module.exports.create = (
|
|
|
119
119
|
);
|
|
120
120
|
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
|
121
121
|
|
|
122
|
-
/** @type {
|
|
122
|
+
/** @type {Replaces} */
|
|
123
123
|
const replaces = [];
|
|
124
124
|
const parts = /** @type {BasicEvaluatedExpression[]} */ (param.parts);
|
|
125
125
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
const ContextDependency = require("./ContextDependency");
|
|
9
9
|
|
|
10
10
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
11
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
11
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
12
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
13
14
|
|
|
@@ -28,11 +29,13 @@ class ContextDependencyTemplateAsId extends ContextDependency.Template {
|
|
|
28
29
|
const moduleExports = runtimeTemplate.moduleExports({
|
|
29
30
|
module,
|
|
30
31
|
chunkGraph,
|
|
31
|
-
request: dep.request,
|
|
32
|
+
request: /** @type {string} */ (dep.request),
|
|
32
33
|
weak: dep.weak,
|
|
33
34
|
runtimeRequirements
|
|
34
35
|
});
|
|
35
36
|
|
|
37
|
+
const range = /** @type {Range} */ (dep.range);
|
|
38
|
+
|
|
36
39
|
if (module) {
|
|
37
40
|
if (dep.valueRange) {
|
|
38
41
|
if (Array.isArray(dep.replaces)) {
|
|
@@ -41,21 +44,18 @@ class ContextDependencyTemplateAsId extends ContextDependency.Template {
|
|
|
41
44
|
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
|
-
|
|
47
|
+
|
|
48
|
+
source.replace(dep.valueRange[1], range[1] - 1, ")");
|
|
45
49
|
source.replace(
|
|
46
|
-
|
|
50
|
+
range[0],
|
|
47
51
|
dep.valueRange[0] - 1,
|
|
48
52
|
`${moduleExports}.resolve(`
|
|
49
53
|
);
|
|
50
54
|
} else {
|
|
51
|
-
source.replace(
|
|
52
|
-
dep.range[0],
|
|
53
|
-
dep.range[1] - 1,
|
|
54
|
-
`${moduleExports}.resolve`
|
|
55
|
-
);
|
|
55
|
+
source.replace(range[0], range[1] - 1, `${moduleExports}.resolve`);
|
|
56
56
|
}
|
|
57
57
|
} else {
|
|
58
|
-
source.replace(
|
|
58
|
+
source.replace(range[0], range[1] - 1, moduleExports);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
const ContextDependency = require("./ContextDependency");
|
|
9
9
|
|
|
10
10
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
11
|
+
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
11
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
12
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
13
14
|
|
|
@@ -27,13 +28,16 @@ class ContextDependencyTemplateAsRequireCall extends ContextDependency.Template
|
|
|
27
28
|
let moduleExports = runtimeTemplate.moduleExports({
|
|
28
29
|
module: moduleGraph.getModule(dep),
|
|
29
30
|
chunkGraph,
|
|
30
|
-
request: dep.request,
|
|
31
|
+
request: /** @type {string} */ (dep.request),
|
|
31
32
|
runtimeRequirements
|
|
32
33
|
});
|
|
33
34
|
|
|
34
35
|
if (dep.inShorthand) {
|
|
35
36
|
moduleExports = `${dep.inShorthand}: ${moduleExports}`;
|
|
36
37
|
}
|
|
38
|
+
|
|
39
|
+
const range = /** @type {Range} */ (dep.range);
|
|
40
|
+
|
|
37
41
|
if (moduleGraph.getModule(dep)) {
|
|
38
42
|
if (dep.valueRange) {
|
|
39
43
|
if (Array.isArray(dep.replaces)) {
|
|
@@ -42,17 +46,13 @@ class ContextDependencyTemplateAsRequireCall extends ContextDependency.Template
|
|
|
42
46
|
source.replace(rep.range[0], rep.range[1] - 1, rep.value);
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
|
-
source.replace(dep.valueRange[1],
|
|
46
|
-
source.replace(
|
|
47
|
-
dep.range[0],
|
|
48
|
-
dep.valueRange[0] - 1,
|
|
49
|
-
`${moduleExports}(`
|
|
50
|
-
);
|
|
49
|
+
source.replace(dep.valueRange[1], range[1] - 1, ")");
|
|
50
|
+
source.replace(range[0], dep.valueRange[0] - 1, `${moduleExports}(`);
|
|
51
51
|
} else {
|
|
52
|
-
source.replace(
|
|
52
|
+
source.replace(range[0], range[1] - 1, moduleExports);
|
|
53
53
|
}
|
|
54
54
|
} else {
|
|
55
|
-
source.replace(
|
|
55
|
+
source.replace(range[0], range[1] - 1, moduleExports);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -10,9 +10,9 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
10
10
|
const ModuleDependency = require("./ModuleDependency");
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("../ContextModule")} ContextModule */
|
|
13
|
-
/** @typedef {import("../Dependency").
|
|
13
|
+
/** @typedef {import("../Dependency").RawReferencedExports} RawReferencedExports */
|
|
14
|
+
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
14
15
|
/** @typedef {import("../Module")} Module */
|
|
15
|
-
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
17
17
|
/** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
|
|
18
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
@@ -25,7 +25,7 @@ class ContextElementDependency extends ModuleDependency {
|
|
|
25
25
|
* @param {string | undefined} userRequest user request
|
|
26
26
|
* @param {string | undefined} typePrefix type prefix
|
|
27
27
|
* @param {string} category category
|
|
28
|
-
* @param {
|
|
28
|
+
* @param {RawReferencedExports | null=} referencedExports referenced exports
|
|
29
29
|
* @param {string=} context context
|
|
30
30
|
* @param {ImportAttributes=} attributes import assertions
|
|
31
31
|
*/
|
|
@@ -39,16 +39,16 @@ class ContextElementDependency extends ModuleDependency {
|
|
|
39
39
|
attributes
|
|
40
40
|
) {
|
|
41
41
|
super(request);
|
|
42
|
-
this.referencedExports = referencedExports;
|
|
43
|
-
this._typePrefix = typePrefix;
|
|
44
|
-
this._category = category;
|
|
45
|
-
this._context = context || undefined;
|
|
46
42
|
|
|
47
43
|
if (userRequest) {
|
|
48
44
|
this.userRequest = userRequest;
|
|
49
45
|
}
|
|
50
46
|
|
|
51
|
-
this.
|
|
47
|
+
this._typePrefix = typePrefix;
|
|
48
|
+
this._category = category;
|
|
49
|
+
this.referencedExports = referencedExports;
|
|
50
|
+
this._context = context || undefined;
|
|
51
|
+
this.attributes = attributes;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
get type() {
|
|
@@ -63,11 +63,22 @@ class ContextElementDependency extends ModuleDependency {
|
|
|
63
63
|
return this._category;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
/**
|
|
67
|
+
* @returns {string | null} an identifier to merge equal requests
|
|
68
|
+
*/
|
|
69
|
+
getResourceIdentifier() {
|
|
70
|
+
let str = super.getResourceIdentifier();
|
|
71
|
+
if (this.attributes !== undefined) {
|
|
72
|
+
str += JSON.stringify(this.attributes);
|
|
73
|
+
}
|
|
74
|
+
return str;
|
|
75
|
+
}
|
|
76
|
+
|
|
66
77
|
/**
|
|
67
78
|
* Returns list of exports referenced by this dependency
|
|
68
79
|
* @param {ModuleGraph} moduleGraph module graph
|
|
69
80
|
* @param {RuntimeSpec} runtime the runtime for which the module is analysed
|
|
70
|
-
* @returns {
|
|
81
|
+
* @returns {ReferencedExports} referenced exports
|
|
71
82
|
*/
|
|
72
83
|
getReferencedExports(moduleGraph, runtime) {
|
|
73
84
|
if (!this.referencedExports) return Dependency.EXPORTS_OBJECT_REFERENCED;
|
|
@@ -110,7 +121,7 @@ class ContextElementDependency extends ModuleDependency {
|
|
|
110
121
|
write(this._typePrefix);
|
|
111
122
|
write(this._category);
|
|
112
123
|
write(this.referencedExports);
|
|
113
|
-
write(this.
|
|
124
|
+
write(this.attributes);
|
|
114
125
|
super.serialize(context);
|
|
115
126
|
}
|
|
116
127
|
|
|
@@ -122,7 +133,7 @@ class ContextElementDependency extends ModuleDependency {
|
|
|
122
133
|
this._typePrefix = read();
|
|
123
134
|
this._category = read();
|
|
124
135
|
this.referencedExports = read();
|
|
125
|
-
this.
|
|
136
|
+
this.attributes = read();
|
|
126
137
|
super.deserialize(context);
|
|
127
138
|
}
|
|
128
139
|
}
|
|
@@ -12,10 +12,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
12
12
|
|
|
13
13
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
14
14
|
/** @typedef {import("../Dependency")} Dependency */
|
|
15
|
-
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
16
15
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
17
16
|
/** @typedef {import("../Module")} Module */
|
|
18
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
19
17
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
20
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
21
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
@@ -11,7 +11,7 @@ const NullDependency = require("./NullDependency");
|
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
13
13
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
14
|
-
/** @typedef {import("../Dependency").
|
|
14
|
+
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
15
15
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
16
16
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
17
17
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
@@ -77,7 +77,7 @@ class CssIcssSymbolDependency extends NullDependency {
|
|
|
77
77
|
* Returns list of exports referenced by this dependency
|
|
78
78
|
* @param {ModuleGraph} moduleGraph module graph
|
|
79
79
|
* @param {RuntimeSpec} runtime the runtime for which the module is analysed
|
|
80
|
-
* @returns {
|
|
80
|
+
* @returns {ReferencedExports} referenced exports
|
|
81
81
|
*/
|
|
82
82
|
getReferencedExports(moduleGraph, runtime) {
|
|
83
83
|
return [[this.name]];
|
|
@@ -9,19 +9,11 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
|
-
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
13
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
14
|
-
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
15
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
16
|
-
/** @typedef {import("../Module")} Module */
|
|
17
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
18
|
-
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
|
19
|
-
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
|
20
14
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
21
15
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
23
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
24
|
-
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
25
17
|
|
|
26
18
|
class CssImportDependency extends ModuleDependency {
|
|
27
19
|
/**
|
|
@@ -15,7 +15,6 @@ const NullDependency = require("./NullDependency");
|
|
|
15
15
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
16
16
|
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
|
|
17
17
|
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorLocalIdentName} CssGeneratorLocalIdentName */
|
|
18
|
-
/** @typedef {import("../../declarations/WebpackOptions").HashFunction} HashFunction */
|
|
19
18
|
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
20
19
|
/** @typedef {import("../CssModule")} CssModule */
|
|
21
20
|
/** @typedef {import("../Dependency")} Dependency */
|
|
@@ -23,7 +22,6 @@ const NullDependency = require("./NullDependency");
|
|
|
23
22
|
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
24
23
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
25
24
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
26
|
-
/** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */
|
|
27
25
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
|
28
26
|
/** @typedef {import("../css/CssGenerator")} CssGenerator */
|
|
29
27
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
@@ -48,12 +46,13 @@ const getLocalIdent = (local, module, chunkGraph, runtimeTemplate) => {
|
|
|
48
46
|
const relativeResourcePath = makePathsRelative(
|
|
49
47
|
/** @type {string} */
|
|
50
48
|
(module.context),
|
|
51
|
-
|
|
49
|
+
/** @type {string} */
|
|
50
|
+
(module.getResource()),
|
|
52
51
|
runtimeTemplate.compilation.compiler.root
|
|
53
52
|
);
|
|
54
53
|
const { hashFunction, hashDigest, hashDigestLength, hashSalt, uniqueName } =
|
|
55
54
|
runtimeTemplate.outputOptions;
|
|
56
|
-
const hash = createHash(
|
|
55
|
+
const hash = createHash(hashFunction);
|
|
57
56
|
|
|
58
57
|
if (hashSalt) {
|
|
59
58
|
hash.update(hashSalt);
|
|
@@ -11,7 +11,7 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
|
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
13
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
14
|
-
/** @typedef {import("../Dependency").
|
|
14
|
+
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
15
15
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
17
17
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
@@ -60,7 +60,7 @@ class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency {
|
|
|
60
60
|
* Returns list of exports referenced by this dependency
|
|
61
61
|
* @param {ModuleGraph} moduleGraph module graph
|
|
62
62
|
* @param {RuntimeSpec} runtime the runtime for which the module is analysed
|
|
63
|
-
* @returns {
|
|
63
|
+
* @returns {ReferencedExports} referenced exports
|
|
64
64
|
*/
|
|
65
65
|
getReferencedExports(moduleGraph, runtime) {
|
|
66
66
|
if (this.declaredSet && !this.declaredSet.has(this.name)) {
|
|
@@ -11,20 +11,14 @@ const memoize = require("../util/memoize");
|
|
|
11
11
|
const ModuleDependency = require("./ModuleDependency");
|
|
12
12
|
|
|
13
13
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
14
|
-
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
15
14
|
/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */
|
|
16
15
|
/** @typedef {import("../Dependency")} Dependency */
|
|
17
|
-
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
18
16
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
19
17
|
/** @typedef {import("../Module")} Module */
|
|
20
18
|
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
|
21
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
22
|
-
/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */
|
|
23
|
-
/** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */
|
|
24
19
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
25
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
26
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
27
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
28
22
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
29
23
|
|
|
30
24
|
const getIgnoredRawDataUrlModule = memoize(
|
|
@@ -10,16 +10,14 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
10
10
|
const NullDependency = require("./NullDependency");
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
|
-
/** @typedef {import("../ChunkGraph")} ChunkGraph */
|
|
14
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
15
|
-
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
16
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
17
15
|
/** @typedef {import("../Module")} Module */
|
|
18
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
17
|
+
/** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
|
|
19
18
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
20
19
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
21
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
22
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
23
21
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
24
22
|
|
|
25
23
|
/**
|
|
@@ -30,13 +28,13 @@ const NullDependency = require("./NullDependency");
|
|
|
30
28
|
/**
|
|
31
29
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
32
30
|
* @param {Module} module the module
|
|
33
|
-
* @param {
|
|
31
|
+
* @param {ExportInfoName[] | null} exportName_ name of the export if any
|
|
34
32
|
* @param {string | null} property name of the requested property
|
|
35
33
|
* @param {RuntimeSpec} runtime for which runtime
|
|
36
|
-
* @returns {undefined | null |
|
|
34
|
+
* @returns {undefined | null | boolean | ExportInfoName[]} value of the property
|
|
37
35
|
*/
|
|
38
|
-
const getProperty = (moduleGraph, module,
|
|
39
|
-
if (!
|
|
36
|
+
const getProperty = (moduleGraph, module, exportName_, property, runtime) => {
|
|
37
|
+
if (!exportName_) {
|
|
40
38
|
switch (property) {
|
|
41
39
|
case "usedExports": {
|
|
42
40
|
const usedExports = moduleGraph
|
|
@@ -53,7 +51,7 @@ const getProperty = (moduleGraph, module, _exportName, property, runtime) => {
|
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
|
-
const exportName = /** @type {
|
|
54
|
+
const exportName = /** @type {ExportInfoName[]} */ (exportName_);
|
|
57
55
|
switch (property) {
|
|
58
56
|
case "canMangle": {
|
|
59
57
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
@@ -92,7 +90,7 @@ const getProperty = (moduleGraph, module, _exportName, property, runtime) => {
|
|
|
92
90
|
class ExportsInfoDependency extends NullDependency {
|
|
93
91
|
/**
|
|
94
92
|
* @param {Range} range range
|
|
95
|
-
* @param {
|
|
93
|
+
* @param {ExportInfoName[] | null} exportName export name
|
|
96
94
|
* @param {string | null} property property
|
|
97
95
|
*/
|
|
98
96
|
constructor(range, exportName, property) {
|
|
@@ -11,13 +11,10 @@ const ExternalModuleInitFragment = require("./ExternalModuleInitFragment");
|
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
14
|
-
/** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */
|
|
15
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
16
|
-
/** @typedef {import("../javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */
|
|
17
15
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
18
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
19
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
20
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
21
18
|
|
|
22
19
|
class ExternalModuleDependency extends CachedConstDependency {
|
|
23
20
|
/**
|
|
@@ -20,7 +20,7 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
20
20
|
class ExternalModuleInitFragment extends InitFragment {
|
|
21
21
|
/**
|
|
22
22
|
* @param {string} importedModule imported module
|
|
23
|
-
* @param {
|
|
23
|
+
* @param {{ name: string, value?: string }[] | ImportSpecifiers} specifiers import specifiers
|
|
24
24
|
* @param {string=} defaultImport default import
|
|
25
25
|
*/
|
|
26
26
|
constructor(importedModule, specifiers, defaultImport) {
|
|
@@ -120,7 +120,7 @@ HarmonyAcceptDependency.Template = class HarmonyAcceptDependencyTemplate extends
|
|
|
120
120
|
for (const d of module.dependencies) {
|
|
121
121
|
if (deferDependency && noDeferredDependency) break;
|
|
122
122
|
if (isRelatedHarmonyImportDependency(dependency, d)) {
|
|
123
|
-
if (d.defer) {
|
|
123
|
+
if (/** @type {HarmonyImportDependency} */ (d).defer) {
|
|
124
124
|
deferDependency = /** @type {HarmonyImportDependency} */ (d);
|
|
125
125
|
} else {
|
|
126
126
|
noDeferredDependency = /** @type {HarmonyImportDependency} */ (d);
|
|
@@ -9,10 +9,6 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const HarmonyImportDependency = require("./HarmonyImportDependency");
|
|
10
10
|
const NullDependency = require("./NullDependency");
|
|
11
11
|
|
|
12
|
-
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
13
|
-
/** @typedef {import("../Dependency")} Dependency */
|
|
14
|
-
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
15
|
-
|
|
16
12
|
class HarmonyAcceptImportDependency extends HarmonyImportDependency {
|
|
17
13
|
/**
|
|
18
14
|
* @param {string} request the request string
|
|
@@ -14,7 +14,6 @@ const NullDependency = require("./NullDependency");
|
|
|
14
14
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
15
15
|
/** @typedef {import("../Dependency")} Dependency */
|
|
16
16
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
17
|
-
/** @typedef {import("../Module")} Module */
|
|
18
17
|
/** @typedef {import("../Module").BuildMeta} BuildMeta */
|
|
19
18
|
|
|
20
19
|
class HarmonyCompatibilityDependency extends NullDependency {
|