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/DelegatedModule.js
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
const { OriginalSource, RawSource } = require("webpack-sources");
|
9
9
|
const Module = require("./Module");
|
10
|
+
const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants");
|
10
11
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
11
12
|
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
12
13
|
const StaticExportsDependency = require("./dependencies/StaticExportsDependency");
|
@@ -24,14 +25,21 @@ const makeSerializable = require("./util/makeSerializable");
|
|
24
25
|
/** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */
|
25
26
|
/** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */
|
26
27
|
/** @typedef {import("./Module").SourceContext} SourceContext */
|
28
|
+
/** @typedef {import("./Module").SourceTypes} SourceTypes */
|
27
29
|
/** @typedef {import("./RequestShortener")} RequestShortener */
|
28
30
|
/** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
29
31
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
30
32
|
/** @typedef {import("./WebpackError")} WebpackError */
|
31
33
|
/** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */
|
34
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
35
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
32
36
|
/** @typedef {import("./util/Hash")} Hash */
|
33
37
|
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
34
38
|
|
39
|
+
/** @typedef {string} SourceRequest */
|
40
|
+
/** @typedef {"require" | "object"} Type */
|
41
|
+
/** @typedef {TODO} Data */
|
42
|
+
|
35
43
|
const TYPES = new Set(["javascript"]);
|
36
44
|
const RUNTIME_REQUIREMENTS = new Set([
|
37
45
|
RuntimeGlobals.module,
|
@@ -39,8 +47,15 @@ const RUNTIME_REQUIREMENTS = new Set([
|
|
39
47
|
]);
|
40
48
|
|
41
49
|
class DelegatedModule extends Module {
|
50
|
+
/**
|
51
|
+
* @param {SourceRequest} sourceRequest source request
|
52
|
+
* @param {Data} data data
|
53
|
+
* @param {Type} type type
|
54
|
+
* @param {string} userRequest user request
|
55
|
+
* @param {string | Module} originalRequest original request
|
56
|
+
*/
|
42
57
|
constructor(sourceRequest, data, type, userRequest, originalRequest) {
|
43
|
-
super(
|
58
|
+
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
44
59
|
|
45
60
|
// Info from Factory
|
46
61
|
this.sourceRequest = sourceRequest;
|
@@ -48,7 +63,7 @@ class DelegatedModule extends Module {
|
|
48
63
|
this.delegationType = type;
|
49
64
|
this.userRequest = userRequest;
|
50
65
|
this.originalRequest = originalRequest;
|
51
|
-
/** @type {ManifestModuleData} */
|
66
|
+
/** @type {ManifestModuleData | undefined} */
|
52
67
|
this.delegateData = data;
|
53
68
|
|
54
69
|
// Build info
|
@@ -56,7 +71,7 @@ class DelegatedModule extends Module {
|
|
56
71
|
}
|
57
72
|
|
58
73
|
/**
|
59
|
-
* @returns {
|
74
|
+
* @returns {SourceTypes} types available (do not mutate)
|
60
75
|
*/
|
61
76
|
getSourceTypes() {
|
62
77
|
return TYPES;
|
@@ -91,7 +106,7 @@ class DelegatedModule extends Module {
|
|
91
106
|
|
92
107
|
/**
|
93
108
|
* @param {NeedBuildContext} context context info
|
94
|
-
* @param {function(WebpackError=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
109
|
+
* @param {function((WebpackError | null)=, boolean=): void} callback callback function, returns true, if the module needs a rebuild
|
95
110
|
* @returns {void}
|
96
111
|
*/
|
97
112
|
needBuild(context, callback) {
|
@@ -107,7 +122,8 @@ class DelegatedModule extends Module {
|
|
107
122
|
* @returns {void}
|
108
123
|
*/
|
109
124
|
build(options, compilation, resolver, fs, callback) {
|
110
|
-
|
125
|
+
const delegateData = /** @type {ManifestModuleData} */ (this.delegateData);
|
126
|
+
this.buildMeta = { ...delegateData.buildMeta };
|
111
127
|
this.buildInfo = {};
|
112
128
|
this.dependencies.length = 0;
|
113
129
|
this.delegatedSourceDependency = new DelegatedSourceDependency(
|
@@ -115,7 +131,7 @@ class DelegatedModule extends Module {
|
|
115
131
|
);
|
116
132
|
this.addDependency(this.delegatedSourceDependency);
|
117
133
|
this.addDependency(
|
118
|
-
new StaticExportsDependency(
|
134
|
+
new StaticExportsDependency(delegateData.exports || true, false)
|
119
135
|
);
|
120
136
|
callback();
|
121
137
|
}
|
@@ -185,6 +201,9 @@ class DelegatedModule extends Module {
|
|
185
201
|
super.updateHash(hash, context);
|
186
202
|
}
|
187
203
|
|
204
|
+
/**
|
205
|
+
* @param {ObjectSerializerContext} context context
|
206
|
+
*/
|
188
207
|
serialize(context) {
|
189
208
|
const { write } = context;
|
190
209
|
// constructor
|
@@ -196,6 +215,10 @@ class DelegatedModule extends Module {
|
|
196
215
|
super.serialize(context);
|
197
216
|
}
|
198
217
|
|
218
|
+
/**
|
219
|
+
* @param {ObjectDeserializerContext} context context\
|
220
|
+
* @returns {DelegatedModule} DelegatedModule
|
221
|
+
*/
|
199
222
|
static deserialize(context) {
|
200
223
|
const { read } = context;
|
201
224
|
const obj = new DelegatedModule(
|
@@ -7,19 +7,38 @@
|
|
7
7
|
|
8
8
|
const DelegatedModule = require("./DelegatedModule");
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */
|
11
|
+
/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */
|
12
|
+
/** @typedef {import("./DelegatedModule").Data} Data */
|
13
|
+
/** @typedef {import("./DelegatedModule").SourceRequest} SourceRequest */
|
14
|
+
/** @typedef {import("./DelegatedModule").Type} Type */
|
15
|
+
/** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @typedef {object} Options
|
19
|
+
* @property {SourceRequest} source source
|
20
|
+
* @property {NonNullable<DllReferencePluginOptions["context"]>} context absolute context path to which lib ident is relative to
|
21
|
+
* @property {DllReferencePluginOptionsContent} content content
|
22
|
+
* @property {DllReferencePluginOptions["type"]} type type
|
23
|
+
* @property {DllReferencePluginOptions["extensions"]} extensions extensions
|
24
|
+
* @property {DllReferencePluginOptions["scope"]} scope scope
|
25
|
+
* @property {object=} associatedObjectForCache object for caching
|
26
|
+
*/
|
27
|
+
|
16
28
|
class DelegatedModuleFactoryPlugin {
|
29
|
+
/**
|
30
|
+
* @param {Options} options options
|
31
|
+
*/
|
17
32
|
constructor(options) {
|
18
33
|
this.options = options;
|
19
34
|
options.type = options.type || "require";
|
20
35
|
options.extensions = options.extensions || ["", ".js", ".json", ".wasm"];
|
21
36
|
}
|
22
37
|
|
38
|
+
/**
|
39
|
+
* @param {NormalModuleFactory} normalModuleFactory the normal module factory
|
40
|
+
* @returns {void}
|
41
|
+
*/
|
23
42
|
apply(normalModuleFactory) {
|
24
43
|
const scope = this.options.scope;
|
25
44
|
if (scope) {
|
@@ -29,7 +48,7 @@ class DelegatedModuleFactoryPlugin {
|
|
29
48
|
const [dependency] = data.dependencies;
|
30
49
|
const { request } = dependency;
|
31
50
|
if (request && request.startsWith(`${scope}/`)) {
|
32
|
-
const innerRequest =
|
51
|
+
const innerRequest = `.${request.slice(scope.length)}`;
|
33
52
|
let resolved;
|
34
53
|
if (innerRequest in this.options.content) {
|
35
54
|
resolved = this.options.content[innerRequest];
|
@@ -38,14 +57,17 @@ class DelegatedModuleFactoryPlugin {
|
|
38
57
|
new DelegatedModule(
|
39
58
|
this.options.source,
|
40
59
|
resolved,
|
41
|
-
this.options.type,
|
60
|
+
/** @type {Type} */ (this.options.type),
|
42
61
|
innerRequest,
|
43
62
|
request
|
44
63
|
)
|
45
64
|
);
|
46
65
|
}
|
47
|
-
|
48
|
-
|
66
|
+
const extensions =
|
67
|
+
/** @type {string[]} */
|
68
|
+
(this.options.extensions);
|
69
|
+
for (let i = 0; i < extensions.length; i++) {
|
70
|
+
const extension = extensions[i];
|
49
71
|
const requestPlusExt = innerRequest + extension;
|
50
72
|
if (requestPlusExt in this.options.content) {
|
51
73
|
resolved = this.options.content[requestPlusExt];
|
@@ -54,7 +76,7 @@ class DelegatedModuleFactoryPlugin {
|
|
54
76
|
new DelegatedModule(
|
55
77
|
this.options.source,
|
56
78
|
resolved,
|
57
|
-
this.options.type,
|
79
|
+
/** @type {Type} */ (this.options.type),
|
58
80
|
requestPlusExt,
|
59
81
|
request + extension
|
60
82
|
)
|
@@ -70,17 +92,15 @@ class DelegatedModuleFactoryPlugin {
|
|
70
92
|
"DelegatedModuleFactoryPlugin",
|
71
93
|
module => {
|
72
94
|
const request = module.libIdent(this.options);
|
73
|
-
if (request) {
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
);
|
83
|
-
}
|
95
|
+
if (request && request in this.options.content) {
|
96
|
+
const resolved = this.options.content[request];
|
97
|
+
return new DelegatedModule(
|
98
|
+
this.options.source,
|
99
|
+
resolved,
|
100
|
+
/** @type {Type} */ (this.options.type),
|
101
|
+
request,
|
102
|
+
module
|
103
|
+
);
|
84
104
|
}
|
85
105
|
return module;
|
86
106
|
}
|
package/lib/DelegatedPlugin.js
CHANGED
@@ -9,8 +9,12 @@ const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin");
|
|
9
9
|
const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency");
|
10
10
|
|
11
11
|
/** @typedef {import("./Compiler")} Compiler */
|
12
|
+
/** @typedef {import("./DelegatedModuleFactoryPlugin").Options} Options */
|
12
13
|
|
13
14
|
class DelegatedPlugin {
|
15
|
+
/**
|
16
|
+
* @param {Options} options options
|
17
|
+
*/
|
14
18
|
constructor(options) {
|
15
19
|
this.options = options;
|
16
20
|
}
|
package/lib/DependenciesBlock.js
CHANGED
@@ -12,17 +12,27 @@ const makeSerializable = require("./util/makeSerializable");
|
|
12
12
|
/** @typedef {import("./ChunkGroup")} ChunkGroup */
|
13
13
|
/** @typedef {import("./Dependency")} Dependency */
|
14
14
|
/** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */
|
15
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
16
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
15
17
|
/** @typedef {import("./util/Hash")} Hash */
|
16
18
|
|
17
19
|
/** @typedef {(d: Dependency) => boolean} DependencyFilterFunction */
|
18
20
|
|
21
|
+
/**
|
22
|
+
* DependenciesBlock is the base class for all Module classes in webpack. It describes a
|
23
|
+
* "block" of dependencies which are pointers to other DependenciesBlock instances. For example
|
24
|
+
* when a Module has a CommonJs require statement, the DependencyBlock for the CommonJs module
|
25
|
+
* would be added as a dependency to the Module. DependenciesBlock is inherited by two types of classes:
|
26
|
+
* Module subclasses and AsyncDependenciesBlock subclasses. The only difference between the two is that
|
27
|
+
* AsyncDependenciesBlock subclasses are used for code-splitting (async boundary) and Module subclasses are not.
|
28
|
+
*/
|
19
29
|
class DependenciesBlock {
|
20
30
|
constructor() {
|
21
31
|
/** @type {Dependency[]} */
|
22
32
|
this.dependencies = [];
|
23
33
|
/** @type {AsyncDependenciesBlock[]} */
|
24
34
|
this.blocks = [];
|
25
|
-
/** @type {DependenciesBlock} */
|
35
|
+
/** @type {DependenciesBlock | undefined} */
|
26
36
|
this.parent = undefined;
|
27
37
|
}
|
28
38
|
|
@@ -36,7 +46,6 @@ class DependenciesBlock {
|
|
36
46
|
/**
|
37
47
|
* Adds a DependencyBlock to DependencyBlock relationship.
|
38
48
|
* This is used for when a Module has a AsyncDependencyBlock tie (for code-splitting)
|
39
|
-
*
|
40
49
|
* @param {AsyncDependenciesBlock} block block being added
|
41
50
|
* @returns {void}
|
42
51
|
*/
|
@@ -88,11 +97,17 @@ class DependenciesBlock {
|
|
88
97
|
}
|
89
98
|
}
|
90
99
|
|
100
|
+
/**
|
101
|
+
* @param {ObjectSerializerContext} context context
|
102
|
+
*/
|
91
103
|
serialize({ write }) {
|
92
104
|
write(this.dependencies);
|
93
105
|
write(this.blocks);
|
94
106
|
}
|
95
107
|
|
108
|
+
/**
|
109
|
+
* @param {ObjectDeserializerContext} context context
|
110
|
+
*/
|
96
111
|
deserialize({ read }) {
|
97
112
|
this.dependencies = read();
|
98
113
|
this.blocks = read();
|
package/lib/Dependency.js
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
+
const RawModule = require("./RawModule");
|
8
9
|
const memoize = require("./util/memoize");
|
9
10
|
|
10
11
|
/** @typedef {import("webpack-sources").Source} Source */
|
@@ -17,39 +18,41 @@ const memoize = require("./util/memoize");
|
|
17
18
|
/** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */
|
18
19
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
19
20
|
/** @typedef {import("./WebpackError")} WebpackError */
|
21
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
22
|
+
/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
20
23
|
/** @typedef {import("./util/Hash")} Hash */
|
21
24
|
/** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */
|
22
25
|
|
23
26
|
/**
|
24
|
-
* @typedef {
|
27
|
+
* @typedef {object} UpdateHashContext
|
25
28
|
* @property {ChunkGraph} chunkGraph
|
26
29
|
* @property {RuntimeSpec} runtime
|
27
30
|
* @property {RuntimeTemplate=} runtimeTemplate
|
28
31
|
*/
|
29
32
|
|
30
33
|
/**
|
31
|
-
* @typedef {
|
34
|
+
* @typedef {object} SourcePosition
|
32
35
|
* @property {number} line
|
33
36
|
* @property {number=} column
|
34
37
|
*/
|
35
38
|
|
36
39
|
/**
|
37
|
-
* @typedef {
|
40
|
+
* @typedef {object} RealDependencyLocation
|
38
41
|
* @property {SourcePosition} start
|
39
42
|
* @property {SourcePosition=} end
|
40
43
|
* @property {number=} index
|
41
44
|
*/
|
42
45
|
|
43
46
|
/**
|
44
|
-
* @typedef {
|
47
|
+
* @typedef {object} SyntheticDependencyLocation
|
45
48
|
* @property {string} name
|
46
49
|
* @property {number=} index
|
47
50
|
*/
|
48
51
|
|
49
|
-
/** @typedef {SyntheticDependencyLocation|RealDependencyLocation} DependencyLocation */
|
52
|
+
/** @typedef {SyntheticDependencyLocation | RealDependencyLocation} DependencyLocation */
|
50
53
|
|
51
54
|
/**
|
52
|
-
* @typedef {
|
55
|
+
* @typedef {object} ExportSpec
|
53
56
|
* @property {string} name the name of the export
|
54
57
|
* @property {boolean=} canMangle can the export be renamed (defaults to true)
|
55
58
|
* @property {boolean=} terminalBinding is the export a terminal binding that should be checked for export star conflicts
|
@@ -61,10 +64,10 @@ const memoize = require("./util/memoize");
|
|
61
64
|
*/
|
62
65
|
|
63
66
|
/**
|
64
|
-
* @typedef {
|
67
|
+
* @typedef {object} ExportsSpec
|
65
68
|
* @property {(string | ExportSpec)[] | true | null} exports exported names, true for unknown exports or null for no exports
|
66
69
|
* @property {Set<string>=} excludeExports when exports = true, list of unaffected exports
|
67
|
-
* @property {Set<string
|
70
|
+
* @property {(Set<string> | null)=} hideExports list of maybe prior exposed, but now hidden exports
|
68
71
|
* @property {ModuleGraphConnection=} from when reexported: from which module
|
69
72
|
* @property {number=} priority when reexported: with which priority
|
70
73
|
* @property {boolean=} canMangle can the export be renamed (defaults to true)
|
@@ -73,23 +76,24 @@ const memoize = require("./util/memoize");
|
|
73
76
|
*/
|
74
77
|
|
75
78
|
/**
|
76
|
-
* @typedef {
|
79
|
+
* @typedef {object} ReferencedExport
|
77
80
|
* @property {string[]} name name of the referenced export
|
78
81
|
* @property {boolean=} canMangle when false, referenced export can not be mangled, defaults to true
|
79
82
|
*/
|
80
83
|
|
84
|
+
/** @typedef {function(ModuleGraphConnection, RuntimeSpec): ConnectionState} GetConditionFn */
|
85
|
+
|
81
86
|
const TRANSITIVE = Symbol("transitive");
|
82
87
|
|
83
|
-
const getIgnoredModule = memoize(
|
84
|
-
|
85
|
-
|
86
|
-
});
|
88
|
+
const getIgnoredModule = memoize(
|
89
|
+
() => new RawModule("/* (ignored) */", "ignored", "(ignored)")
|
90
|
+
);
|
87
91
|
|
88
92
|
class Dependency {
|
89
93
|
constructor() {
|
90
|
-
/** @type {Module} */
|
94
|
+
/** @type {Module | undefined} */
|
91
95
|
this._parentModule = undefined;
|
92
|
-
/** @type {DependenciesBlock} */
|
96
|
+
/** @type {DependenciesBlock | undefined} */
|
93
97
|
this._parentDependenciesBlock = undefined;
|
94
98
|
/** @type {number} */
|
95
99
|
this._parentDependenciesBlockIndex = -1;
|
@@ -159,19 +163,34 @@ class Dependency {
|
|
159
163
|
this._locEL = 0;
|
160
164
|
this._locEC = 0;
|
161
165
|
}
|
162
|
-
|
163
|
-
|
164
|
-
} else {
|
165
|
-
this._locI = undefined;
|
166
|
-
}
|
167
|
-
if ("name" in loc) {
|
168
|
-
this._locN = loc.name;
|
169
|
-
} else {
|
170
|
-
this._locN = undefined;
|
171
|
-
}
|
166
|
+
this._locI = "index" in loc ? loc.index : undefined;
|
167
|
+
this._locN = "name" in loc ? loc.name : undefined;
|
172
168
|
this._loc = loc;
|
173
169
|
}
|
174
170
|
|
171
|
+
/**
|
172
|
+
* @param {number} startLine start line
|
173
|
+
* @param {number} startColumn start column
|
174
|
+
* @param {number} endLine end line
|
175
|
+
* @param {number} endColumn end column
|
176
|
+
*/
|
177
|
+
setLoc(startLine, startColumn, endLine, endColumn) {
|
178
|
+
this._locSL = startLine;
|
179
|
+
this._locSC = startColumn;
|
180
|
+
this._locEL = endLine;
|
181
|
+
this._locEC = endColumn;
|
182
|
+
this._locI = undefined;
|
183
|
+
this._locN = undefined;
|
184
|
+
this._loc = undefined;
|
185
|
+
}
|
186
|
+
|
187
|
+
/**
|
188
|
+
* @returns {string | undefined} a request context
|
189
|
+
*/
|
190
|
+
getContext() {
|
191
|
+
return undefined;
|
192
|
+
}
|
193
|
+
|
175
194
|
/**
|
176
195
|
* @returns {string | null} an identifier to merge equal requests
|
177
196
|
*/
|
@@ -210,7 +229,7 @@ class Dependency {
|
|
210
229
|
|
211
230
|
/**
|
212
231
|
* @param {ModuleGraph} moduleGraph module graph
|
213
|
-
* @returns {null | false |
|
232
|
+
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
214
233
|
*/
|
215
234
|
getCondition(moduleGraph) {
|
216
235
|
return null;
|
@@ -228,7 +247,7 @@ class Dependency {
|
|
228
247
|
/**
|
229
248
|
* Returns warnings
|
230
249
|
* @param {ModuleGraph} moduleGraph module graph
|
231
|
-
* @returns {WebpackError[]} warnings
|
250
|
+
* @returns {WebpackError[] | null | undefined} warnings
|
232
251
|
*/
|
233
252
|
getWarnings(moduleGraph) {
|
234
253
|
return null;
|
@@ -237,7 +256,7 @@ class Dependency {
|
|
237
256
|
/**
|
238
257
|
* Returns errors
|
239
258
|
* @param {ModuleGraph} moduleGraph module graph
|
240
|
-
* @returns {WebpackError[]} errors
|
259
|
+
* @returns {WebpackError[] | null | undefined} errors
|
241
260
|
*/
|
242
261
|
getErrors(moduleGraph) {
|
243
262
|
return null;
|
@@ -269,12 +288,15 @@ class Dependency {
|
|
269
288
|
|
270
289
|
/**
|
271
290
|
* @param {string} context context directory
|
272
|
-
* @returns {Module} a module
|
291
|
+
* @returns {Module | null} a module
|
273
292
|
*/
|
274
293
|
createIgnoredModule(context) {
|
275
294
|
return getIgnoredModule();
|
276
295
|
}
|
277
296
|
|
297
|
+
/**
|
298
|
+
* @param {ObjectSerializerContext} context context
|
299
|
+
*/
|
278
300
|
serialize({ write }) {
|
279
301
|
write(this.weak);
|
280
302
|
write(this.optional);
|
@@ -286,6 +308,9 @@ class Dependency {
|
|
286
308
|
write(this._locN);
|
287
309
|
}
|
288
310
|
|
311
|
+
/**
|
312
|
+
* @param {ObjectDeserializerContext} context context
|
313
|
+
*/
|
289
314
|
deserialize({ read }) {
|
290
315
|
this.weak = read();
|
291
316
|
this.optional = read();
|
@@ -303,6 +328,8 @@ Dependency.NO_EXPORTS_REFERENCED = [];
|
|
303
328
|
/** @type {string[][]} */
|
304
329
|
Dependency.EXPORTS_OBJECT_REFERENCED = [[]];
|
305
330
|
|
331
|
+
// eslint-disable-next-line no-warning-comments
|
332
|
+
// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
|
306
333
|
Object.defineProperty(Dependency.prototype, "module", {
|
307
334
|
/**
|
308
335
|
* @deprecated
|
@@ -325,6 +352,8 @@ Object.defineProperty(Dependency.prototype, "module", {
|
|
325
352
|
}
|
326
353
|
});
|
327
354
|
|
355
|
+
// eslint-disable-next-line no-warning-comments
|
356
|
+
// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919
|
328
357
|
Object.defineProperty(Dependency.prototype, "disconnect", {
|
329
358
|
get() {
|
330
359
|
throw new Error(
|
@@ -7,29 +7,50 @@
|
|
7
7
|
|
8
8
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
9
9
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
10
|
+
/** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */
|
10
11
|
/** @typedef {import("./ConcatenationScope")} ConcatenationScope */
|
11
12
|
/** @typedef {import("./Dependency")} Dependency */
|
12
13
|
/** @typedef {import("./Dependency").RuntimeSpec} RuntimeSpec */
|
13
14
|
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
|
14
15
|
/** @typedef {import("./Generator").GenerateContext} GenerateContext */
|
15
|
-
/** @template T @typedef {import("./InitFragment")<T>} InitFragment */
|
16
16
|
/** @typedef {import("./Module")} Module */
|
17
|
+
/** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */
|
17
18
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
18
19
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
19
20
|
|
20
21
|
/**
|
21
|
-
* @
|
22
|
+
* @template T
|
23
|
+
* @typedef {import("./InitFragment")<T>} InitFragment
|
24
|
+
*/
|
25
|
+
|
26
|
+
/**
|
27
|
+
* @typedef {object} DependencyTemplateContext
|
22
28
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
23
29
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
24
30
|
* @property {ModuleGraph} moduleGraph the module graph
|
25
31
|
* @property {ChunkGraph} chunkGraph the chunk graph
|
26
|
-
* @property {
|
32
|
+
* @property {RuntimeRequirements} runtimeRequirements the requirements for runtime
|
27
33
|
* @property {Module} module current module
|
28
34
|
* @property {RuntimeSpec} runtime current runtimes, for which code is generated
|
29
35
|
* @property {InitFragment<GenerateContext>[]} initFragments mutable array of init fragments for the current module
|
30
36
|
* @property {ConcatenationScope=} concatenationScope when in a concatenated module, information about other concatenated modules
|
37
|
+
* @property {CodeGenerationResults} codeGenerationResults the code generation results
|
38
|
+
* @property {InitFragment<GenerateContext>[]} chunkInitFragments chunkInitFragments
|
39
|
+
*/
|
40
|
+
|
41
|
+
/**
|
42
|
+
* @typedef {object} CssDependencyTemplateContextExtras
|
43
|
+
* @property {CssExportsData} cssExportsData the css exports data
|
31
44
|
*/
|
32
45
|
|
46
|
+
/**
|
47
|
+
* @typedef {object} CssExportsData
|
48
|
+
* @property {boolean} esModule whether export __esModule
|
49
|
+
* @property {Map<string, string>} exports the css exports
|
50
|
+
*/
|
51
|
+
|
52
|
+
/** @typedef {DependencyTemplateContext & CssDependencyTemplateContextExtras} CssDependencyTemplateContext */
|
53
|
+
|
33
54
|
class DependencyTemplate {
|
34
55
|
/* istanbul ignore next */
|
35
56
|
/**
|
@@ -27,7 +27,7 @@ class DependencyTemplates {
|
|
27
27
|
|
28
28
|
/**
|
29
29
|
* @param {DependencyConstructor} dependency Constructor of Dependency
|
30
|
-
* @returns {DependencyTemplate} template for this dependency
|
30
|
+
* @returns {DependencyTemplate | undefined} template for this dependency
|
31
31
|
*/
|
32
32
|
get(dependency) {
|
33
33
|
return this._map.get(dependency);
|
@@ -57,7 +57,7 @@ class DependencyTemplates {
|
|
57
57
|
}
|
58
58
|
|
59
59
|
clone() {
|
60
|
-
const newInstance = new DependencyTemplates();
|
60
|
+
const newInstance = new DependencyTemplates(this._hashFunction);
|
61
61
|
newInstance._map = new Map(this._map);
|
62
62
|
newInstance._hash = this._hash;
|
63
63
|
return newInstance;
|
package/lib/DllEntryPlugin.js
CHANGED
@@ -9,13 +9,27 @@ const DllModuleFactory = require("./DllModuleFactory");
|
|
9
9
|
const DllEntryDependency = require("./dependencies/DllEntryDependency");
|
10
10
|
const EntryDependency = require("./dependencies/EntryDependency");
|
11
11
|
|
12
|
+
/** @typedef {import("./Compiler")} Compiler */
|
13
|
+
/** @typedef {string[]} Entries */
|
14
|
+
/** @typedef {{ name: string, filename: TODO }} Options */
|
15
|
+
|
12
16
|
class DllEntryPlugin {
|
17
|
+
/**
|
18
|
+
* @param {string} context context
|
19
|
+
* @param {Entries} entries entry names
|
20
|
+
* @param {Options} options options
|
21
|
+
*/
|
13
22
|
constructor(context, entries, options) {
|
14
23
|
this.context = context;
|
15
24
|
this.entries = entries;
|
16
25
|
this.options = options;
|
17
26
|
}
|
18
27
|
|
28
|
+
/**
|
29
|
+
* Apply the plugin
|
30
|
+
* @param {Compiler} compiler the compiler instance
|
31
|
+
* @returns {void}
|
32
|
+
*/
|
19
33
|
apply(compiler) {
|
20
34
|
compiler.hooks.compilation.tap(
|
21
35
|
"DllEntryPlugin",
|
@@ -46,7 +60,10 @@ class DllEntryPlugin {
|
|
46
60
|
this.options.name
|
47
61
|
),
|
48
62
|
this.options,
|
49
|
-
|
63
|
+
error => {
|
64
|
+
if (error) return callback(error);
|
65
|
+
callback();
|
66
|
+
}
|
50
67
|
);
|
51
68
|
});
|
52
69
|
}
|