webpack 5.59.0 → 5.94.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 +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- 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 +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
package/lib/Module.js
CHANGED
@@ -18,20 +18,28 @@ const makeSerializable = require("./util/makeSerializable");
|
|
18
18
|
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
19
19
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */
|
20
20
|
/** @typedef {import("./Chunk")} Chunk */
|
21
|
+
/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */
|
21
22
|
/** @typedef {import("./ChunkGroup")} ChunkGroup */
|
23
|
+
/** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
|
22
24
|
/** @typedef {import("./Compilation")} Compilation */
|
25
|
+
/** @typedef {import("./Compilation").AssetInfo} AssetInfo */
|
26
|
+
/** @typedef {import("./Compilation").ValueCacheVersion} ValueCacheVersion */
|
23
27
|
/** @typedef {import("./ConcatenationScope")} ConcatenationScope */
|
24
28
|
/** @typedef {import("./Dependency")} Dependency */
|
25
29
|
/** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
|
26
30
|
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
|
27
31
|
/** @typedef {import("./ExportsInfo").UsageStateType} UsageStateType */
|
28
32
|
/** @typedef {import("./FileSystemInfo")} FileSystemInfo */
|
33
|
+
/** @typedef {import("./FileSystemInfo").Snapshot} Snapshot */
|
29
34
|
/** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
|
35
|
+
/** @typedef {import("./ModuleTypeConstants").ModuleTypes} ModuleTypes */
|
30
36
|
/** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
|
31
37
|
/** @typedef {import("./RequestShortener")} RequestShortener */
|
32
38
|
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
33
39
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
34
40
|
/** @typedef {import("./WebpackError")} WebpackError */
|
41
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
42
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
35
43
|
/** @typedef {import("./util/Hash")} Hash */
|
36
44
|
/** @template T @typedef {import("./util/LazySet")<T>} LazySet<T> */
|
37
45
|
/** @template T @typedef {import("./util/SortableSet")<T>} SortableSet<T> */
|
@@ -39,7 +47,7 @@ const makeSerializable = require("./util/makeSerializable");
|
|
39
47
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
40
48
|
|
41
49
|
/**
|
42
|
-
* @typedef {
|
50
|
+
* @typedef {object} SourceContext
|
43
51
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
44
52
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
45
53
|
* @property {ModuleGraph} moduleGraph the module graph
|
@@ -48,38 +56,45 @@ const makeSerializable = require("./util/makeSerializable");
|
|
48
56
|
* @property {string=} type the type of source that should be generated
|
49
57
|
*/
|
50
58
|
|
59
|
+
// TODO webpack 6: compilation will be required in CodeGenerationContext
|
51
60
|
/**
|
52
|
-
* @typedef {
|
61
|
+
* @typedef {object} CodeGenerationContext
|
53
62
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
54
63
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
55
64
|
* @property {ModuleGraph} moduleGraph the module graph
|
56
65
|
* @property {ChunkGraph} chunkGraph the chunk graph
|
57
66
|
* @property {RuntimeSpec} runtime the runtimes code should be generated for
|
58
67
|
* @property {ConcatenationScope=} concatenationScope when in concatenated module, information about other concatenated modules
|
68
|
+
* @property {CodeGenerationResults | undefined} codeGenerationResults code generation results of other modules (need to have a codeGenerationDependency to use that)
|
69
|
+
* @property {Compilation=} compilation the compilation
|
70
|
+
* @property {ReadonlySet<string>=} sourceTypes source types
|
59
71
|
*/
|
60
72
|
|
61
73
|
/**
|
62
|
-
* @typedef {
|
74
|
+
* @typedef {object} ConcatenationBailoutReasonContext
|
63
75
|
* @property {ModuleGraph} moduleGraph the module graph
|
64
76
|
* @property {ChunkGraph} chunkGraph the chunk graph
|
65
77
|
*/
|
66
78
|
|
79
|
+
/** @typedef {Set<string>} RuntimeRequirements */
|
80
|
+
/** @typedef {ReadonlySet<string>} ReadOnlyRuntimeRequirements */
|
81
|
+
|
67
82
|
/**
|
68
|
-
* @typedef {
|
83
|
+
* @typedef {object} CodeGenerationResult
|
69
84
|
* @property {Map<string, Source>} sources the resulting sources for all source types
|
70
85
|
* @property {Map<string, any>=} data the resulting data for all source types
|
71
|
-
* @property {
|
86
|
+
* @property {ReadOnlyRuntimeRequirements | null} runtimeRequirements the runtime requirements
|
72
87
|
* @property {string=} hash a hash of the code generation result (will be automatically calculated from sources and runtimeRequirements if not provided)
|
73
88
|
*/
|
74
89
|
|
75
90
|
/**
|
76
|
-
* @typedef {
|
91
|
+
* @typedef {object} LibIdentOptions
|
77
92
|
* @property {string} context absolute context path to which lib ident is relative to
|
78
|
-
* @property {
|
93
|
+
* @property {object=} associatedObjectForCache object for caching
|
79
94
|
*/
|
80
95
|
|
81
96
|
/**
|
82
|
-
* @typedef {
|
97
|
+
* @typedef {object} KnownBuildMeta
|
83
98
|
* @property {string=} moduleArgument
|
84
99
|
* @property {string=} exportsArgument
|
85
100
|
* @property {boolean=} strict
|
@@ -92,13 +107,38 @@ const makeSerializable = require("./util/makeSerializable");
|
|
92
107
|
*/
|
93
108
|
|
94
109
|
/**
|
95
|
-
* @typedef {
|
110
|
+
* @typedef {object} KnownBuildInfo
|
111
|
+
* @property {boolean=} cacheable
|
112
|
+
* @property {boolean=} parsed
|
113
|
+
* @property {LazySet<string>=} fileDependencies
|
114
|
+
* @property {LazySet<string>=} contextDependencies
|
115
|
+
* @property {LazySet<string>=} missingDependencies
|
116
|
+
* @property {LazySet<string>=} buildDependencies
|
117
|
+
* @property {(Map<string, ValueCacheVersion>)=} valueDependencies
|
118
|
+
* @property {TODO=} hash
|
119
|
+
* @property {Record<string, Source>=} assets
|
120
|
+
* @property {Map<string, AssetInfo | undefined>=} assetsInfo
|
121
|
+
* @property {(Snapshot | null)=} snapshot
|
122
|
+
*/
|
123
|
+
|
124
|
+
/**
|
125
|
+
* @typedef {object} NeedBuildContext
|
96
126
|
* @property {Compilation} compilation
|
97
127
|
* @property {FileSystemInfo} fileSystemInfo
|
98
128
|
* @property {Map<string, string | Set<string>>} valueCacheVersions
|
99
129
|
*/
|
100
130
|
|
101
131
|
/** @typedef {KnownBuildMeta & Record<string, any>} BuildMeta */
|
132
|
+
/** @typedef {KnownBuildInfo & Record<string, any>} BuildInfo */
|
133
|
+
|
134
|
+
/**
|
135
|
+
* @typedef {object} FactoryMeta
|
136
|
+
* @property {boolean=} sideEffectFree
|
137
|
+
*/
|
138
|
+
|
139
|
+
/** @typedef {Set<string>} SourceTypes */
|
140
|
+
|
141
|
+
/** @typedef {{ factoryMeta: FactoryMeta | undefined, resolveOptions: ResolveOptions | undefined }} UnsafeCacheData */
|
102
142
|
|
103
143
|
const EMPTY_RESOLVE_OPTIONS = {};
|
104
144
|
|
@@ -108,12 +148,16 @@ const DEFAULT_TYPES_UNKNOWN = new Set(["unknown"]);
|
|
108
148
|
const DEFAULT_TYPES_JS = new Set(["javascript"]);
|
109
149
|
|
110
150
|
const deprecatedNeedRebuild = util.deprecate(
|
111
|
-
|
112
|
-
|
151
|
+
/**
|
152
|
+
* @param {Module} module the module
|
153
|
+
* @param {NeedBuildContext} context context info
|
154
|
+
* @returns {boolean} true, when rebuild is needed
|
155
|
+
*/
|
156
|
+
(module, context) =>
|
157
|
+
module.needRebuild(
|
113
158
|
context.fileSystemInfo.getDeprecatedFileTimestamps(),
|
114
159
|
context.fileSystemInfo.getDeprecatedContextTimestamps()
|
115
|
-
)
|
116
|
-
},
|
160
|
+
),
|
117
161
|
"Module.needRebuild is deprecated in favor of Module.needBuild",
|
118
162
|
"DEP_WEBPACK_MODULE_NEED_REBUILD"
|
119
163
|
);
|
@@ -122,14 +166,14 @@ const deprecatedNeedRebuild = util.deprecate(
|
|
122
166
|
|
123
167
|
class Module extends DependenciesBlock {
|
124
168
|
/**
|
125
|
-
* @param {
|
126
|
-
* @param {string=} context an optional context
|
127
|
-
* @param {string=} layer an optional layer in which the module is
|
169
|
+
* @param {ModuleTypes | ""} type the module type, when deserializing the type is not known and is an empty string
|
170
|
+
* @param {(string | null)=} context an optional context
|
171
|
+
* @param {(string | null)=} layer an optional layer in which the module is
|
128
172
|
*/
|
129
173
|
constructor(type, context = null, layer = null) {
|
130
174
|
super();
|
131
175
|
|
132
|
-
/** @type {
|
176
|
+
/** @type {ModuleTypes} */
|
133
177
|
this.type = type;
|
134
178
|
/** @type {string | null} */
|
135
179
|
this.context = context;
|
@@ -143,9 +187,9 @@ class Module extends DependenciesBlock {
|
|
143
187
|
this.debugId = debugId++;
|
144
188
|
|
145
189
|
// Info from Factory
|
146
|
-
/** @type {ResolveOptions} */
|
190
|
+
/** @type {ResolveOptions | undefined} */
|
147
191
|
this.resolveOptions = EMPTY_RESOLVE_OPTIONS;
|
148
|
-
/** @type {
|
192
|
+
/** @type {FactoryMeta | undefined} */
|
149
193
|
this.factoryMeta = undefined;
|
150
194
|
// TODO refactor this -> options object filled from Factory
|
151
195
|
// TODO webpack 6: use an enum
|
@@ -159,16 +203,21 @@ class Module extends DependenciesBlock {
|
|
159
203
|
this._warnings = undefined;
|
160
204
|
/** @type {WebpackError[] | undefined} */
|
161
205
|
this._errors = undefined;
|
162
|
-
/** @type {BuildMeta} */
|
206
|
+
/** @type {BuildMeta | undefined} */
|
163
207
|
this.buildMeta = undefined;
|
164
|
-
/** @type {
|
208
|
+
/** @type {BuildInfo | undefined} */
|
165
209
|
this.buildInfo = undefined;
|
166
210
|
/** @type {Dependency[] | undefined} */
|
167
211
|
this.presentationalDependencies = undefined;
|
212
|
+
/** @type {Dependency[] | undefined} */
|
213
|
+
this.codeGenerationDependencies = undefined;
|
168
214
|
}
|
169
215
|
|
170
216
|
// TODO remove in webpack 6
|
171
217
|
// BACKWARD-COMPAT START
|
218
|
+
/**
|
219
|
+
* @returns {ModuleId | null} module id
|
220
|
+
*/
|
172
221
|
get id() {
|
173
222
|
return ChunkGraph.getChunkGraphForModule(
|
174
223
|
this,
|
@@ -177,6 +226,9 @@ class Module extends DependenciesBlock {
|
|
177
226
|
).getModuleId(this);
|
178
227
|
}
|
179
228
|
|
229
|
+
/**
|
230
|
+
* @param {ModuleId} value value
|
231
|
+
*/
|
180
232
|
set id(value) {
|
181
233
|
if (value === "") {
|
182
234
|
this.needId = false;
|
@@ -227,6 +279,9 @@ class Module extends DependenciesBlock {
|
|
227
279
|
).setProfile(this, value);
|
228
280
|
}
|
229
281
|
|
282
|
+
/**
|
283
|
+
* @returns {number | null} the pre order index
|
284
|
+
*/
|
230
285
|
get index() {
|
231
286
|
return ModuleGraph.getModuleGraphForModule(
|
232
287
|
this,
|
@@ -235,6 +290,9 @@ class Module extends DependenciesBlock {
|
|
235
290
|
).getPreOrderIndex(this);
|
236
291
|
}
|
237
292
|
|
293
|
+
/**
|
294
|
+
* @param {number} value the pre order index
|
295
|
+
*/
|
238
296
|
set index(value) {
|
239
297
|
ModuleGraph.getModuleGraphForModule(
|
240
298
|
this,
|
@@ -243,6 +301,9 @@ class Module extends DependenciesBlock {
|
|
243
301
|
).setPreOrderIndex(this, value);
|
244
302
|
}
|
245
303
|
|
304
|
+
/**
|
305
|
+
* @returns {number | null} the post order index
|
306
|
+
*/
|
246
307
|
get index2() {
|
247
308
|
return ModuleGraph.getModuleGraphForModule(
|
248
309
|
this,
|
@@ -251,6 +312,9 @@ class Module extends DependenciesBlock {
|
|
251
312
|
).getPostOrderIndex(this);
|
252
313
|
}
|
253
314
|
|
315
|
+
/**
|
316
|
+
* @param {number} value the post order index
|
317
|
+
*/
|
254
318
|
set index2(value) {
|
255
319
|
ModuleGraph.getModuleGraphForModule(
|
256
320
|
this,
|
@@ -259,6 +323,9 @@ class Module extends DependenciesBlock {
|
|
259
323
|
).setPostOrderIndex(this, value);
|
260
324
|
}
|
261
325
|
|
326
|
+
/**
|
327
|
+
* @returns {number | null} the depth
|
328
|
+
*/
|
262
329
|
get depth() {
|
263
330
|
return ModuleGraph.getModuleGraphForModule(
|
264
331
|
this,
|
@@ -267,6 +334,9 @@ class Module extends DependenciesBlock {
|
|
267
334
|
).getDepth(this);
|
268
335
|
}
|
269
336
|
|
337
|
+
/**
|
338
|
+
* @param {number} value the depth
|
339
|
+
*/
|
270
340
|
set depth(value) {
|
271
341
|
ModuleGraph.getModuleGraphForModule(
|
272
342
|
this,
|
@@ -275,6 +345,9 @@ class Module extends DependenciesBlock {
|
|
275
345
|
).setDepth(this, value);
|
276
346
|
}
|
277
347
|
|
348
|
+
/**
|
349
|
+
* @returns {Module | null | undefined} issuer
|
350
|
+
*/
|
278
351
|
get issuer() {
|
279
352
|
return ModuleGraph.getModuleGraphForModule(
|
280
353
|
this,
|
@@ -283,6 +356,9 @@ class Module extends DependenciesBlock {
|
|
283
356
|
).getIssuer(this);
|
284
357
|
}
|
285
358
|
|
359
|
+
/**
|
360
|
+
* @param {Module | null} value issuer
|
361
|
+
*/
|
286
362
|
set issuer(value) {
|
287
363
|
ModuleGraph.getModuleGraphForModule(
|
288
364
|
this,
|
@@ -321,6 +397,10 @@ class Module extends DependenciesBlock {
|
|
321
397
|
);
|
322
398
|
}
|
323
399
|
|
400
|
+
/**
|
401
|
+
* @param {Chunk} chunk the chunk
|
402
|
+
* @returns {boolean} true, when the module was added
|
403
|
+
*/
|
324
404
|
addChunk(chunk) {
|
325
405
|
const chunkGraph = ChunkGraph.getChunkGraphForModule(
|
326
406
|
this,
|
@@ -332,6 +412,10 @@ class Module extends DependenciesBlock {
|
|
332
412
|
return true;
|
333
413
|
}
|
334
414
|
|
415
|
+
/**
|
416
|
+
* @param {Chunk} chunk the chunk
|
417
|
+
* @returns {void}
|
418
|
+
*/
|
335
419
|
removeChunk(chunk) {
|
336
420
|
return ChunkGraph.getChunkGraphForModule(
|
337
421
|
this,
|
@@ -340,6 +424,10 @@ class Module extends DependenciesBlock {
|
|
340
424
|
).disconnectChunkAndModule(chunk, this);
|
341
425
|
}
|
342
426
|
|
427
|
+
/**
|
428
|
+
* @param {Chunk} chunk the chunk
|
429
|
+
* @returns {boolean} true, when the module is in the chunk
|
430
|
+
*/
|
343
431
|
isInChunk(chunk) {
|
344
432
|
return ChunkGraph.getChunkGraphForModule(
|
345
433
|
this,
|
@@ -396,7 +484,6 @@ class Module extends DependenciesBlock {
|
|
396
484
|
// BACKWARD-COMPAT END
|
397
485
|
|
398
486
|
/**
|
399
|
-
* @deprecated moved to .buildInfo.exportsArgument
|
400
487
|
* @returns {string} name of the exports argument
|
401
488
|
*/
|
402
489
|
get exportsArgument() {
|
@@ -404,7 +491,6 @@ class Module extends DependenciesBlock {
|
|
404
491
|
}
|
405
492
|
|
406
493
|
/**
|
407
|
-
* @deprecated moved to .buildInfo.moduleArgument
|
408
494
|
* @returns {string} name of the module argument
|
409
495
|
*/
|
410
496
|
get moduleArgument() {
|
@@ -413,7 +499,7 @@ class Module extends DependenciesBlock {
|
|
413
499
|
|
414
500
|
/**
|
415
501
|
* @param {ModuleGraph} moduleGraph the module graph
|
416
|
-
* @param {boolean} strict the importing module is strict
|
502
|
+
* @param {boolean | undefined} strict the importing module is strict
|
417
503
|
* @returns {"namespace" | "default-only" | "default-with-named" | "dynamic"} export type
|
418
504
|
* "namespace": Exports is already a namespace object. namespace = exports.
|
419
505
|
* "dynamic": Check at runtime if __esModule is set. When set: namespace = { ...exports, default: exports }. When not set: namespace = { default: exports }.
|
@@ -427,7 +513,7 @@ class Module extends DependenciesBlock {
|
|
427
513
|
case "namespace":
|
428
514
|
return "namespace";
|
429
515
|
case "default":
|
430
|
-
switch (this.buildMeta.defaultObject) {
|
516
|
+
switch (/** @type {BuildMeta} */ (this.buildMeta).defaultObject) {
|
431
517
|
case "redirect":
|
432
518
|
return "default-with-named";
|
433
519
|
case "redirect-warn":
|
@@ -439,7 +525,7 @@ class Module extends DependenciesBlock {
|
|
439
525
|
if (strict) return "default-with-named";
|
440
526
|
// Try to figure out value of __esModule by following reexports
|
441
527
|
const handleDefault = () => {
|
442
|
-
switch (this.buildMeta.defaultObject) {
|
528
|
+
switch (/** @type {BuildMeta} */ (this.buildMeta).defaultObject) {
|
443
529
|
case "redirect":
|
444
530
|
case "redirect-warn":
|
445
531
|
return "default-with-named";
|
@@ -493,6 +579,19 @@ class Module extends DependenciesBlock {
|
|
493
579
|
this.presentationalDependencies.push(presentationalDependency);
|
494
580
|
}
|
495
581
|
|
582
|
+
/**
|
583
|
+
* @param {Dependency} codeGenerationDependency dependency being tied to module.
|
584
|
+
* This is a Dependency where the code generation result of the referenced module is needed during code generation.
|
585
|
+
* The Dependency should also be added to normal dependencies via addDependency.
|
586
|
+
* @returns {void}
|
587
|
+
*/
|
588
|
+
addCodeGenerationDependency(codeGenerationDependency) {
|
589
|
+
if (this.codeGenerationDependencies === undefined) {
|
590
|
+
this.codeGenerationDependencies = [];
|
591
|
+
}
|
592
|
+
this.codeGenerationDependencies.push(codeGenerationDependency);
|
593
|
+
}
|
594
|
+
|
496
595
|
/**
|
497
596
|
* Removes all dependencies and blocks
|
498
597
|
* @returns {void}
|
@@ -501,6 +600,9 @@ class Module extends DependenciesBlock {
|
|
501
600
|
if (this.presentationalDependencies !== undefined) {
|
502
601
|
this.presentationalDependencies.length = 0;
|
503
602
|
}
|
603
|
+
if (this.codeGenerationDependencies !== undefined) {
|
604
|
+
this.codeGenerationDependencies.length = 0;
|
605
|
+
}
|
504
606
|
super.clearDependenciesAndBlocks();
|
505
607
|
}
|
506
608
|
|
@@ -640,7 +742,7 @@ class Module extends DependenciesBlock {
|
|
640
742
|
] of moduleGraph.getIncomingConnectionsByOriginModule(this)) {
|
641
743
|
if (!connections.some(c => c.isTargetActive(chunk.runtime))) continue;
|
642
744
|
for (const originChunk of chunkGraph.getModuleChunksIterable(
|
643
|
-
fromModule
|
745
|
+
/** @type {Module} */ (fromModule)
|
644
746
|
)) {
|
645
747
|
// return true if module this is not reachable from originChunk when ignoring chunk
|
646
748
|
if (!this.isAccessibleInChunk(chunkGraph, originChunk, chunk))
|
@@ -671,7 +773,7 @@ class Module extends DependenciesBlock {
|
|
671
773
|
|
672
774
|
/**
|
673
775
|
* @param {NeedBuildContext} context context info
|
674
|
-
* @param {function(WebpackError=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
776
|
+
* @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
675
777
|
* @returns {void}
|
676
778
|
*/
|
677
779
|
needBuild(context, callback) {
|
@@ -764,15 +866,14 @@ class Module extends DependenciesBlock {
|
|
764
866
|
|
765
867
|
/**
|
766
868
|
* @abstract
|
767
|
-
* @returns {
|
869
|
+
* @returns {SourceTypes} types available (do not mutate)
|
768
870
|
*/
|
769
871
|
getSourceTypes() {
|
770
872
|
// Better override this method to return the correct types
|
771
873
|
if (this.source === Module.prototype.source) {
|
772
874
|
return DEFAULT_TYPES_UNKNOWN;
|
773
|
-
} else {
|
774
|
-
return DEFAULT_TYPES_JS;
|
775
875
|
}
|
876
|
+
return DEFAULT_TYPES_JS;
|
776
877
|
}
|
777
878
|
|
778
879
|
/**
|
@@ -799,10 +900,16 @@ class Module extends DependenciesBlock {
|
|
799
900
|
runtimeTemplate,
|
800
901
|
moduleGraph: chunkGraph.moduleGraph,
|
801
902
|
chunkGraph,
|
802
|
-
runtime: undefined
|
903
|
+
runtime: undefined,
|
904
|
+
codeGenerationResults: undefined
|
803
905
|
};
|
804
906
|
const sources = this.codeGeneration(codeGenContext).sources;
|
805
|
-
|
907
|
+
|
908
|
+
return /** @type {Source} */ (
|
909
|
+
type
|
910
|
+
? sources.get(type)
|
911
|
+
: sources.get(/** @type {string} */ (first(this.getSourceTypes())))
|
912
|
+
);
|
806
913
|
}
|
807
914
|
|
808
915
|
/* istanbul ignore next */
|
@@ -907,7 +1014,7 @@ class Module extends DependenciesBlock {
|
|
907
1014
|
/**
|
908
1015
|
* Module should be unsafe cached. Get data that's needed for that.
|
909
1016
|
* This data will be passed to restoreFromUnsafeCache later.
|
910
|
-
* @returns {
|
1017
|
+
* @returns {UnsafeCacheData} cached data
|
911
1018
|
*/
|
912
1019
|
getUnsafeCacheData() {
|
913
1020
|
return {
|
@@ -954,6 +1061,9 @@ class Module extends DependenciesBlock {
|
|
954
1061
|
buildDependencies
|
955
1062
|
) {}
|
956
1063
|
|
1064
|
+
/**
|
1065
|
+
* @param {ObjectSerializerContext} context context
|
1066
|
+
*/
|
957
1067
|
serialize(context) {
|
958
1068
|
const { write } = context;
|
959
1069
|
write(this.type);
|
@@ -976,9 +1086,13 @@ class Module extends DependenciesBlock {
|
|
976
1086
|
write(this.buildMeta);
|
977
1087
|
write(this.buildInfo);
|
978
1088
|
write(this.presentationalDependencies);
|
1089
|
+
write(this.codeGenerationDependencies);
|
979
1090
|
super.serialize(context);
|
980
1091
|
}
|
981
1092
|
|
1093
|
+
/**
|
1094
|
+
* @param {ObjectDeserializerContext} context context
|
1095
|
+
*/
|
982
1096
|
deserialize(context) {
|
983
1097
|
const { read } = context;
|
984
1098
|
this.type = read();
|
@@ -993,6 +1107,7 @@ class Module extends DependenciesBlock {
|
|
993
1107
|
this.buildMeta = read();
|
994
1108
|
this.buildInfo = read();
|
995
1109
|
this.presentationalDependencies = read();
|
1110
|
+
this.codeGenerationDependencies = read();
|
996
1111
|
super.deserialize(context);
|
997
1112
|
}
|
998
1113
|
}
|
@@ -1000,6 +1115,8 @@ class Module extends DependenciesBlock {
|
|
1000
1115
|
makeSerializable(Module, "webpack/lib/Module");
|
1001
1116
|
|
1002
1117
|
// TODO remove in webpack 6
|
1118
|
+
// eslint-disable-next-line no-warning-comments
|
1119
|
+
// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
|
1003
1120
|
Object.defineProperty(Module.prototype, "hasEqualsChunks", {
|
1004
1121
|
get() {
|
1005
1122
|
throw new Error(
|
@@ -1009,6 +1126,8 @@ Object.defineProperty(Module.prototype, "hasEqualsChunks", {
|
|
1009
1126
|
});
|
1010
1127
|
|
1011
1128
|
// TODO remove in webpack 6
|
1129
|
+
// eslint-disable-next-line no-warning-comments
|
1130
|
+
// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
|
1012
1131
|
Object.defineProperty(Module.prototype, "isUsed", {
|
1013
1132
|
get() {
|
1014
1133
|
throw new Error(
|
@@ -1054,6 +1173,8 @@ Object.defineProperty(Module.prototype, "warnings", {
|
|
1054
1173
|
});
|
1055
1174
|
|
1056
1175
|
// TODO remove in webpack 6
|
1176
|
+
// eslint-disable-next-line no-warning-comments
|
1177
|
+
// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
|
1057
1178
|
Object.defineProperty(Module.prototype, "used", {
|
1058
1179
|
get() {
|
1059
1180
|
throw new Error(
|
package/lib/ModuleBuildError.js
CHANGED
@@ -9,6 +9,9 @@ const { cutOffLoaderExecution } = require("./ErrorHelpers");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
10
10
|
const makeSerializable = require("./util/makeSerializable");
|
11
11
|
|
12
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
|
+
|
12
15
|
class ModuleBuildError extends WebpackError {
|
13
16
|
/**
|
14
17
|
* @param {string | Error&any} err error thrown
|
@@ -16,13 +19,9 @@ class ModuleBuildError extends WebpackError {
|
|
16
19
|
*/
|
17
20
|
constructor(err, { from = null } = {}) {
|
18
21
|
let message = "Module build failed";
|
19
|
-
let details
|
22
|
+
let details;
|
20
23
|
|
21
|
-
|
22
|
-
message += ` (from ${from}):\n`;
|
23
|
-
} else {
|
24
|
-
message += ": ";
|
25
|
-
}
|
24
|
+
message += from ? ` (from ${from}):\n` : ": ";
|
26
25
|
|
27
26
|
if (err !== null && typeof err === "object") {
|
28
27
|
if (typeof err.stack === "string" && err.stack) {
|
@@ -33,11 +32,8 @@ class ModuleBuildError extends WebpackError {
|
|
33
32
|
} else {
|
34
33
|
details = stack;
|
35
34
|
|
36
|
-
|
37
|
-
message
|
38
|
-
} else {
|
39
|
-
message += err;
|
40
|
-
}
|
35
|
+
message +=
|
36
|
+
typeof err.message === "string" && err.message ? err.message : err;
|
41
37
|
}
|
42
38
|
} else if (typeof err.message === "string" && err.message) {
|
43
39
|
message += err.message;
|
@@ -55,6 +51,9 @@ class ModuleBuildError extends WebpackError {
|
|
55
51
|
this.error = err;
|
56
52
|
}
|
57
53
|
|
54
|
+
/**
|
55
|
+
* @param {ObjectSerializerContext} context context
|
56
|
+
*/
|
58
57
|
serialize(context) {
|
59
58
|
const { write } = context;
|
60
59
|
|
@@ -63,6 +62,9 @@ class ModuleBuildError extends WebpackError {
|
|
63
62
|
super.serialize(context);
|
64
63
|
}
|
65
64
|
|
65
|
+
/**
|
66
|
+
* @param {ObjectDeserializerContext} context context
|
67
|
+
*/
|
66
68
|
deserialize(context) {
|
67
69
|
const { read } = context;
|
68
70
|
|
@@ -23,16 +23,18 @@ class ModuleDependencyError extends WebpackError {
|
|
23
23
|
this.name = "ModuleDependencyError";
|
24
24
|
this.details =
|
25
25
|
err && !(/** @type {any} */ (err).hideStack)
|
26
|
-
? err.stack.split("\n").slice(1).join("\n")
|
26
|
+
? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
|
27
27
|
: undefined;
|
28
28
|
this.module = module;
|
29
29
|
this.loc = loc;
|
30
30
|
/** error is not (de)serialized, so it might be undefined after deserialization */
|
31
31
|
this.error = err;
|
32
32
|
|
33
|
-
if (err && /** @type {any} */ (err).hideStack) {
|
34
|
-
this.stack =
|
35
|
-
|
33
|
+
if (err && /** @type {any} */ (err).hideStack && err.stack) {
|
34
|
+
this.stack = /** @type {string} */ `${err.stack
|
35
|
+
.split("\n")
|
36
|
+
.slice(1)
|
37
|
+
.join("\n")}\n\n${this.stack}`;
|
36
38
|
}
|
37
39
|
}
|
38
40
|
}
|
@@ -23,16 +23,18 @@ class ModuleDependencyWarning extends WebpackError {
|
|
23
23
|
this.name = "ModuleDependencyWarning";
|
24
24
|
this.details =
|
25
25
|
err && !(/** @type {any} */ (err).hideStack)
|
26
|
-
? err.stack.split("\n").slice(1).join("\n")
|
26
|
+
? /** @type {string} */ (err.stack).split("\n").slice(1).join("\n")
|
27
27
|
: undefined;
|
28
28
|
this.module = module;
|
29
29
|
this.loc = loc;
|
30
30
|
/** error is not (de)serialized, so it might be undefined after deserialization */
|
31
31
|
this.error = err;
|
32
32
|
|
33
|
-
if (err && /** @type {any} */ (err).hideStack) {
|
34
|
-
this.stack =
|
35
|
-
|
33
|
+
if (err && /** @type {any} */ (err).hideStack && err.stack) {
|
34
|
+
this.stack = /** @type {string} */ `${err.stack
|
35
|
+
.split("\n")
|
36
|
+
.slice(1)
|
37
|
+
.join("\n")}\n\n${this.stack}`;
|
36
38
|
}
|
37
39
|
}
|
38
40
|
}
|
package/lib/ModuleError.js
CHANGED
@@ -9,6 +9,9 @@ const { cleanUp } = require("./ErrorHelpers");
|
|
9
9
|
const WebpackError = require("./WebpackError");
|
10
10
|
const makeSerializable = require("./util/makeSerializable");
|
11
11
|
|
12
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
13
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
14
|
+
|
12
15
|
class ModuleError extends WebpackError {
|
13
16
|
/**
|
14
17
|
* @param {Error} err error thrown
|
@@ -17,11 +20,7 @@ class ModuleError extends WebpackError {
|
|
17
20
|
constructor(err, { from = null } = {}) {
|
18
21
|
let message = "Module Error";
|
19
22
|
|
20
|
-
|
21
|
-
message += ` (from ${from}):\n`;
|
22
|
-
} else {
|
23
|
-
message += ": ";
|
24
|
-
}
|
23
|
+
message += from ? ` (from ${from}):\n` : ": ";
|
25
24
|
|
26
25
|
if (err && typeof err === "object" && err.message) {
|
27
26
|
message += err.message;
|
@@ -39,6 +38,9 @@ class ModuleError extends WebpackError {
|
|
39
38
|
: undefined;
|
40
39
|
}
|
41
40
|
|
41
|
+
/**
|
42
|
+
* @param {ObjectSerializerContext} context context
|
43
|
+
*/
|
42
44
|
serialize(context) {
|
43
45
|
const { write } = context;
|
44
46
|
|
@@ -47,6 +49,9 @@ class ModuleError extends WebpackError {
|
|
47
49
|
super.serialize(context);
|
48
50
|
}
|
49
51
|
|
52
|
+
/**
|
53
|
+
* @param {ObjectDeserializerContext} context context
|
54
|
+
*/
|
50
55
|
deserialize(context) {
|
51
56
|
const { read } = context;
|
52
57
|
|