webpack 5.111.1 → 5.112.1
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 +1 -1
- package/bin/webpack.js +13 -7
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +373 -163
- package/lib/Compiler.js +31 -44
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +21 -13
- package/lib/asset/AssetBytesParser.js +12 -10
- package/lib/asset/AssetGenerator.js +71 -69
- package/lib/asset/AssetModule.js +13 -2
- package/lib/asset/AssetModulesPlugin.js +10 -12
- package/lib/asset/AssetParser.js +10 -10
- package/lib/asset/AssetSourceGenerator.js +23 -15
- package/lib/asset/AssetSourceParser.js +12 -10
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +17 -12
- package/lib/asset/WebManifestParser.js +8 -8
- package/lib/async-modules/AsyncModuleHelpers.js +12 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +13 -19
- package/lib/cache/ResolverCachePlugin.js +65 -11
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +14 -164
- package/lib/config/defaults.js +166 -59
- package/lib/config/getClaimedAssetTypes.js +22 -14
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +11 -1
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +37 -26
- package/lib/context/ContextModuleFactory.js +14 -11
- package/lib/context/ContextReplacementPlugin.js +6 -12
- package/lib/css/CssGenerator.js +78 -68
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +37 -29
- package/lib/css/CssModulesPlugin.js +129 -45
- package/lib/css/CssParser.js +714 -322
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/{util → css}/conventions.js +1 -1
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6990 -5125
- package/lib/css/syntax-parser.js +20734 -0
- package/lib/css/syntax-printer.js +6092 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +106 -51
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
- package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
- package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
- package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +23 -21
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +14 -10
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +103 -30
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/errors/AbstractMethodError.js +1 -1
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +6 -5
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/JSONParseError.js +4 -4
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +13 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +634 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
- package/lib/{util → graph}/findGraphRoots.js +15 -9
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +32 -28
- package/lib/html/HtmlGenerator.js +132 -60
- package/lib/html/HtmlModule.js +16 -2
- package/lib/html/HtmlModulesPlugin.js +184 -87
- package/lib/html/HtmlParser.js +511 -160
- package/lib/html/builtinEmbeddedRenderer.js +70 -25
- package/lib/html/data.js +44 -22
- package/lib/html/htmlMinify.js +114 -41
- package/lib/html/syntax-parser.js +15795 -0
- package/lib/html/syntax-printer.js +1033 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +70 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +32 -5
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +312 -105
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +9 -9
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +32 -27
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
- package/lib/javascript/JavascriptModule.js +14 -3
- package/lib/javascript/JavascriptModulesPlugin.js +441 -214
- package/lib/javascript/JavascriptParser.js +318 -144
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3924 -13
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +19169 -0
- package/lib/javascript/syntax-printer-data.js +1099 -0
- package/lib/javascript/syntax-printer.js +53878 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +24 -16
- package/lib/json/JsonModule.js +13 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +11 -10
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +28 -12
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +2 -2
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +557 -187
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +94 -46
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/loaders/loadLoader.js +16 -10
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +33 -23
- package/lib/{Module.js → module/Module.js} +121 -53
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2350 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +12 -5
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +71 -20
- package/lib/{util → module}/findCaseMismatch.js +4 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +6 -7
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
- package/lib/optimize/ConcatenatedModule.js +231 -220
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +12 -7
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +620 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +18 -13
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
- package/lib/optimize/SplitChunksPlugin.js +719 -174
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +4 -6
- package/lib/performance/HotspotsPlugin.js +39 -14
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +19 -13
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +22 -13
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +66 -45
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/BasicEffectRulePlugin.js +1 -1
- package/lib/rules/RuleSetCompiler.js +42 -51
- package/lib/rules/UseEffectRulePlugin.js +1 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +68 -13
- package/lib/schemes/VirtualUrlPlugin.js +52 -16
- package/lib/serialization/AggregateErrorSerializer.js +4 -4
- package/lib/serialization/BinaryMiddleware.js +4 -1
- package/lib/serialization/ErrorObjectSerializer.js +2 -5
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +62 -29
- package/lib/serialization/PlainObjectSerializer.js +3 -7
- package/lib/serialization/Serializer.js +21 -11
- package/lib/serialization/SerializerMiddleware.js +10 -8
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
- package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
- package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +208 -37
- package/lib/stats/StatsPrinter.js +126 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
- package/lib/{Template.js → template/Template.js} +14 -12
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +439 -51
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +20 -16
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/cleverMerge.js +61 -33
- package/lib/util/comparators.js +19 -15
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -15
- package/lib/util/deprecation.js +5 -4
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +198 -20
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +296 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +28 -7
- package/lib/util/memoize.js +1 -1
- package/lib/util/parseJson.js +2 -2
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +35 -28
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +18 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +15 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
- package/lib/web/FetchCompileWasmPlugin.js +8 -10
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +57 -36
- package/schemas/WebpackOptions.check.js +4 -3
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +295 -75
- package/schemas/plugins/BannerPlugin.check.js +4 -3
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
- package/schemas/plugins/HtmlParserOptions.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +4 -3
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
- package/schemas/plugins/container/ExternalsType.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssParserOptions.check.js +4 -3
- package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
- package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
- package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
- package/schemas/plugins/output/CleanOptions.check.js +7 -0
- package/schemas/plugins/output/CleanOptions.json +3 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +20780 -14174
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
7
|
const { RawSource, ReplaceSource } = require("webpack-sources");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const CssModulesPlugin = require("../css/CssModulesPlugin");
|
|
9
|
+
const WebpackError = require("../errors/WebpackError");
|
|
10
|
+
const Generator = require("../module/Generator");
|
|
10
11
|
const {
|
|
11
12
|
HTML_TYPE,
|
|
12
13
|
HTML_TYPES,
|
|
13
14
|
JAVASCRIPT_TYPE,
|
|
14
15
|
JAVASCRIPT_TYPES
|
|
15
|
-
} = require("../ModuleSourceTypeConstants");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const WebpackError = require("../errors/WebpackError");
|
|
16
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
17
|
+
const ConcatenationScope = require("../optimize/ConcatenationScope");
|
|
18
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
19
|
+
const Template = require("../template/Template");
|
|
20
20
|
const { getUndoPath } = require("../util/identifier");
|
|
21
21
|
const memoize = require("../util/memoize");
|
|
22
22
|
const { PUBLIC_PATH_AUTO } = require("../util/publicPathPlaceholder");
|
|
@@ -24,7 +24,9 @@ const { VOID } = require("./data");
|
|
|
24
24
|
|
|
25
25
|
const getCreateNodeHash = memoize(() => require("crypto").createHash);
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const getCssParser = memoize(() => require("../css/syntax-parser"));
|
|
28
|
+
|
|
29
|
+
const getHtmlParser = memoize(() => require("./syntax-parser"));
|
|
28
30
|
|
|
29
31
|
const getHtmlSyntax = memoize(() => require("./syntax"));
|
|
30
32
|
|
|
@@ -48,7 +50,7 @@ const getHtmlSyntax = memoize(() => require("./syntax"));
|
|
|
48
50
|
const serializeAttrs = (attrs) => {
|
|
49
51
|
let out = "";
|
|
50
52
|
if (attrs) {
|
|
51
|
-
const { escapeAttribute } =
|
|
53
|
+
const { escapeAttribute } = getHtmlParser();
|
|
52
54
|
for (const name of Object.keys(attrs)) {
|
|
53
55
|
const value = attrs[name];
|
|
54
56
|
if (value === false || value === undefined || value === null) continue;
|
|
@@ -125,9 +127,11 @@ const metaIsCsp = (attrs) => {
|
|
|
125
127
|
return false;
|
|
126
128
|
};
|
|
127
129
|
|
|
130
|
+
/** @import { BuiltHtmlModule, HtmlNormalModule } from "./HtmlModule" */
|
|
128
131
|
/** @import { Source } from "webpack-sources" */
|
|
129
132
|
/** @import { HtmlGeneratorOptions } from "../../declarations/WebpackOptions" */
|
|
130
133
|
/** @typedef {import("../../declarations/WebpackOptions").OutputHtmlOptions["csp"]} CspOption */
|
|
134
|
+
/** @typedef {import("../../declarations/WebpackOptions").OutputNormalized["html"]} HtmlOption */
|
|
131
135
|
/** @import { HtmlTagDescriptor, HtmlMutableTag } from "./HtmlModulesPlugin" */
|
|
132
136
|
/** @typedef {"head" | "body"} HtmlTagLocation */
|
|
133
137
|
/**
|
|
@@ -142,29 +146,28 @@ const metaIsCsp = (attrs) => {
|
|
|
142
146
|
*/
|
|
143
147
|
/** @typedef {{ headOpen: number, headEnd: number, bodyOpen: number, bodyEnd: number }} HtmlAnchors */
|
|
144
148
|
/** @typedef {{ tags: HtmlMutableTag[], spans: (HtmlTagSpan | null)[], originals: (string | null)[], descriptors: (HtmlTagDescriptor | null)[], anchors: HtmlAnchors }} HtmlModel */
|
|
145
|
-
/** @import Chunk from "../Chunk" */
|
|
149
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
146
150
|
/** @import Compilation, { DependencyConstructor } from "../Compilation" */
|
|
147
151
|
/** @typedef {boolean | string[] | ((asset: { chunk: Chunk, filename: string }) => string[] | false)} HtmlIntegrity */
|
|
148
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
149
|
-
/** @import Dependency from "../Dependency" */
|
|
150
|
-
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
151
|
-
/** @import { GenerateContext, UpdateHashContext } from "../Generator" */
|
|
152
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
153
|
+
/** @import Dependency from "../graph/Dependency" */
|
|
154
|
+
/** @import { DependencyTemplateContext } from "../template/DependencyTemplate" */
|
|
155
|
+
/** @import { GenerateContext, UpdateHashContext } from "../module/Generator" */
|
|
152
156
|
/**
|
|
153
157
|
* @import Module, {
|
|
154
158
|
* SourceType,
|
|
155
159
|
* SourceTypes,
|
|
156
160
|
* ConcatenationBailoutReasonContext,
|
|
157
161
|
* RuntimeRequirements
|
|
158
|
-
* } from "../Module"
|
|
162
|
+
* } from "../module/Module"
|
|
159
163
|
*/
|
|
160
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
161
|
-
/** @import NormalModule from "../NormalModule" */
|
|
162
|
-
/** @import
|
|
163
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
164
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
165
|
+
/** @import NormalModule from "../module/NormalModule" */
|
|
166
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
164
167
|
/** @import Hash from "../util/Hash" */
|
|
165
168
|
/**
|
|
166
169
|
* @template T
|
|
167
|
-
* @typedef {import("../InitFragment")<T>} InitFragment
|
|
170
|
+
* @typedef {import("../template/InitFragment")<T>} InitFragment
|
|
168
171
|
*/
|
|
169
172
|
|
|
170
173
|
/**
|
|
@@ -253,6 +256,10 @@ const INTEGRITY_SENTINEL_STRIP_REGEXP =
|
|
|
253
256
|
// The resolver ignores it.
|
|
254
257
|
const INLINE_SENTINEL_REGEXP =
|
|
255
258
|
/__WEBPACK_HTML_INLINE__([0-9a-f]+)__([a-z]+)(?:__[0-9a-f]+)?__END__/g;
|
|
259
|
+
// The same, with the `;` a minifier ends the sentinel's statement with, which a
|
|
260
|
+
// chunk ending in its own `;` would double.
|
|
261
|
+
const INLINE_SENTINEL_STATEMENT_REGEXP =
|
|
262
|
+
/__WEBPACK_HTML_INLINE__([0-9a-f]+)__([a-z]+)(?:__[0-9a-f]+)?__END__(;?)/g;
|
|
256
263
|
|
|
257
264
|
/**
|
|
258
265
|
* Rewrite relative `url(...)` references in a CSS chunk so they still resolve
|
|
@@ -272,7 +279,7 @@ const rebaseCssUrls = (css, fromFile, toFile, outputPath) => {
|
|
|
272
279
|
const fromUndo = getUndoPath(fromFile, outputPath, false);
|
|
273
280
|
const toUndo = getUndoPath(toFile, outputPath, false);
|
|
274
281
|
if (fromUndo === toUndo) return css;
|
|
275
|
-
const { readToken,
|
|
282
|
+
const { readToken, TokenType } = getCssParser();
|
|
276
283
|
const token = {
|
|
277
284
|
type: 0,
|
|
278
285
|
start: 0,
|
|
@@ -287,7 +294,7 @@ const rebaseCssUrls = (css, fromFile, toFile, outputPath) => {
|
|
|
287
294
|
let out = "";
|
|
288
295
|
while (readToken(css, pos, token) !== undefined) {
|
|
289
296
|
pos = token.end;
|
|
290
|
-
if (token.type !==
|
|
297
|
+
if (token.type !== TokenType.Url) continue;
|
|
291
298
|
const url = css.slice(token.contentStart, token.contentEnd);
|
|
292
299
|
// Rebase only the undo-path-relative urls; a root-relative (`/`), fragment
|
|
293
300
|
// (`#`) or scheme (`data:`, …, a `:` before any `/`) url is absolute.
|
|
@@ -309,6 +316,14 @@ const rebaseCssUrls = (css, fromFile, toFile, outputPath) => {
|
|
|
309
316
|
return last === 0 ? css : out + css.slice(last);
|
|
310
317
|
};
|
|
311
318
|
|
|
319
|
+
/**
|
|
320
|
+
* The module type the JSDoc inherited from `Generator` names.
|
|
321
|
+
* @typedef {HtmlNormalModule} TModule
|
|
322
|
+
*/
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* @extends {Generator<TModule>}
|
|
326
|
+
*/
|
|
312
327
|
class HtmlGenerator extends Generator {
|
|
313
328
|
/**
|
|
314
329
|
* Emit a sentinel for a chunk URL that can't be resolved at code-gen time
|
|
@@ -359,7 +374,7 @@ class HtmlGenerator extends Generator {
|
|
|
359
374
|
);
|
|
360
375
|
}
|
|
361
376
|
const filename = compilation.getPath(
|
|
362
|
-
/** @type {import("../TemplatedPathPlugin").TemplatePath} */
|
|
377
|
+
/** @type {import("../template/TemplatedPathPlugin").TemplatePath} */
|
|
363
378
|
(filenameTemplate),
|
|
364
379
|
{
|
|
365
380
|
chunk,
|
|
@@ -430,7 +445,7 @@ class HtmlGenerator extends Generator {
|
|
|
430
445
|
if (!content.includes("__WEBPACK_HTML_ASSET_URL__")) return content;
|
|
431
446
|
const byIdentifier = getModulesByIdentifier(compilation);
|
|
432
447
|
const codeGenerationResults =
|
|
433
|
-
/** @type {import("../CodeGenerationResults")} */
|
|
448
|
+
/** @type {import("../module/CodeGenerationResults")} */
|
|
434
449
|
(compilation.codeGenerationResults);
|
|
435
450
|
return content.replace(ASSET_URL_SENTINEL_REGEXP, (_, hex) => {
|
|
436
451
|
const id = Buffer.from(hex, "hex").toString("utf8");
|
|
@@ -575,6 +590,51 @@ class HtmlGenerator extends Generator {
|
|
|
575
590
|
);
|
|
576
591
|
}
|
|
577
592
|
|
|
593
|
+
/**
|
|
594
|
+
* Whether a chunk's content may be written into the page at all. An ES
|
|
595
|
+
* module chunk another group loads the runtime from must stay a file, or
|
|
596
|
+
* the page would run two copies of it.
|
|
597
|
+
* @param {Compilation} compilation the compilation
|
|
598
|
+
* @param {Chunk} chunk chunk to test
|
|
599
|
+
* @returns {boolean} false when the chunk has to stay a separate file
|
|
600
|
+
*/
|
|
601
|
+
static canInlineChunk(compilation, chunk) {
|
|
602
|
+
if (compilation.outputOptions.module !== true) return true;
|
|
603
|
+
for (const group of chunk.groupsIterable) {
|
|
604
|
+
if (group.getChildren().length > 0) return false;
|
|
605
|
+
}
|
|
606
|
+
return true;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/**
|
|
610
|
+
* Whether `output.html.inline` writes a chunk's content into the page rather
|
|
611
|
+
* than referencing it. The string forms select by asset type, since a
|
|
612
|
+
* chunk's JavaScript and CSS share one name.
|
|
613
|
+
* @param {HtmlOption} htmlOption the `output.html` option
|
|
614
|
+
* @param {Chunk} chunk chunk to test
|
|
615
|
+
* @param {"javascript" | "css"} contentType which asset of the chunk is emitted
|
|
616
|
+
* @returns {boolean} true when that content is written into the page
|
|
617
|
+
*/
|
|
618
|
+
static isChunkInlined(htmlOption, chunk, contentType) {
|
|
619
|
+
const inlineOption =
|
|
620
|
+
typeof htmlOption === "object" ? htmlOption.inline : undefined;
|
|
621
|
+
if (!inlineOption) return false;
|
|
622
|
+
if (inlineOption === true) return true;
|
|
623
|
+
if (inlineOption === "script") return contentType === "javascript";
|
|
624
|
+
if (inlineOption === "style") return contentType === "css";
|
|
625
|
+
// A tag's chunk is named after its page, so the template it emits under is
|
|
626
|
+
// matched too; a global pattern carries `lastIndex`, so it is reset.
|
|
627
|
+
const name = chunk.name || String(chunk.id);
|
|
628
|
+
const { filenameTemplate } = chunk;
|
|
629
|
+
return inlineOption.some((re) => {
|
|
630
|
+
re.lastIndex = 0;
|
|
631
|
+
if (re.test(name)) return true;
|
|
632
|
+
if (typeof filenameTemplate !== "string") return false;
|
|
633
|
+
re.lastIndex = 0;
|
|
634
|
+
return re.test(filenameTemplate);
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
|
|
578
638
|
/**
|
|
579
639
|
* @param {Chunk} chunk chunk
|
|
580
640
|
* @param {"javascript" | "css"} contentHashType which chunk asset to inline
|
|
@@ -603,13 +663,13 @@ class HtmlGenerator extends Generator {
|
|
|
603
663
|
) {
|
|
604
664
|
if (!content.includes("__WEBPACK_HTML_INLINE__")) return content;
|
|
605
665
|
const chunksById = getChunksById(compilation);
|
|
606
|
-
const outputPath =
|
|
666
|
+
const outputPath = compilation.outputOptions.path;
|
|
607
667
|
return content.replace(
|
|
608
|
-
|
|
609
|
-
(_, hexId, contentHashType) => {
|
|
668
|
+
INLINE_SENTINEL_STATEMENT_REGEXP,
|
|
669
|
+
(_, hexId, contentHashType, terminator) => {
|
|
610
670
|
const chunkId = Buffer.from(hexId, "hex").toString("utf8");
|
|
611
671
|
const chunk = chunksById.get(chunkId);
|
|
612
|
-
if (!chunk) return
|
|
672
|
+
if (!chunk) return terminator;
|
|
613
673
|
const isCss = contentHashType === "css";
|
|
614
674
|
let out = "";
|
|
615
675
|
for (const file of chunk.files) {
|
|
@@ -635,7 +695,7 @@ class HtmlGenerator extends Generator {
|
|
|
635
695
|
out += raw;
|
|
636
696
|
if (inlinedFiles) inlinedFiles.add(file);
|
|
637
697
|
}
|
|
638
|
-
return out;
|
|
698
|
+
return out.endsWith(";") ? out : out + terminator;
|
|
639
699
|
}
|
|
640
700
|
);
|
|
641
701
|
}
|
|
@@ -670,17 +730,28 @@ class HtmlGenerator extends Generator {
|
|
|
670
730
|
// `skip.text` populates `contentEnd` (raw-text body end) without
|
|
671
731
|
// materializing text nodes; `</script` stays escaped, so CSP hashes match
|
|
672
732
|
// the exact bytes the browser sees.
|
|
673
|
-
const { NodeType,
|
|
733
|
+
const { Field, Flag, NodeType, Part } = getHtmlParser();
|
|
734
|
+
const { SourceProcessor } = getHtmlSyntax();
|
|
735
|
+
/**
|
|
736
|
+
* Where an element's content starts; a parser-inserted one has no tag, so
|
|
737
|
+
* its content starts where it does.
|
|
738
|
+
* @param {import("./syntax-parser").HtmlPath} path the element's path
|
|
739
|
+
* @returns {number} the offset
|
|
740
|
+
*/
|
|
741
|
+
const contentStart = (path) => {
|
|
742
|
+
const start = path.startOf(Part.content);
|
|
743
|
+
return start === -1 ? path.start() : start;
|
|
744
|
+
};
|
|
674
745
|
new SourceProcessor()
|
|
675
746
|
.use({
|
|
676
747
|
[NodeType.Element]: {
|
|
677
748
|
enter: (path) => {
|
|
678
|
-
const name = path.
|
|
749
|
+
const name = path.name();
|
|
679
750
|
if (name === "head") {
|
|
680
|
-
if (headOpen < 0) headOpen = headEnd = path
|
|
751
|
+
if (headOpen < 0) headOpen = headEnd = contentStart(path);
|
|
681
752
|
headDepth++;
|
|
682
753
|
} else if (name === "body") {
|
|
683
|
-
if (bodyOpen < 0) bodyOpen = bodyEnd = path
|
|
754
|
+
if (bodyOpen < 0) bodyOpen = bodyEnd = contentStart(path);
|
|
684
755
|
bodyDepth++;
|
|
685
756
|
}
|
|
686
757
|
},
|
|
@@ -688,7 +759,7 @@ class HtmlGenerator extends Generator {
|
|
|
688
759
|
// closes. `script`, `style`, `link` and `meta` never nest in each
|
|
689
760
|
// other, so exiting keeps them in source order.
|
|
690
761
|
exit: (path) => {
|
|
691
|
-
const name = path.
|
|
762
|
+
const name = path.name();
|
|
692
763
|
if (name === "head") {
|
|
693
764
|
if (headDepth > 0) headDepth--;
|
|
694
765
|
return;
|
|
@@ -710,13 +781,14 @@ class HtmlGenerator extends Generator {
|
|
|
710
781
|
}
|
|
711
782
|
/** @type {Record<string, string | boolean | undefined>} */
|
|
712
783
|
const attrs = {};
|
|
713
|
-
const count = path.
|
|
784
|
+
const count = path.fieldCount(Field.attributes);
|
|
714
785
|
for (let i = 0; i < count; i++) {
|
|
715
|
-
const attr = path.
|
|
716
|
-
|
|
717
|
-
|
|
786
|
+
const attr = path.field(i, Field.attributes);
|
|
787
|
+
const valueStart = path.startOf(Part.value, attr);
|
|
788
|
+
attrs[path.name(attr)] =
|
|
789
|
+
valueStart === -1
|
|
718
790
|
? true
|
|
719
|
-
: path.
|
|
791
|
+
: path.source(valueStart, path.endOf(Part.value, attr));
|
|
720
792
|
}
|
|
721
793
|
const isRawText = name === "script" || name === "style";
|
|
722
794
|
tags.push({
|
|
@@ -726,12 +798,12 @@ class HtmlGenerator extends Generator {
|
|
|
726
798
|
});
|
|
727
799
|
spans.push({
|
|
728
800
|
start: path.start(),
|
|
729
|
-
openEnd: path.
|
|
801
|
+
openEnd: path.startOf(Part.content),
|
|
730
802
|
end,
|
|
731
803
|
location: bodyDepth > 0 ? "body" : "head",
|
|
732
|
-
nameEnd: isRawText ? path.
|
|
733
|
-
contentEnd: isRawText ? path.
|
|
734
|
-
selfClosing: path.selfClosing
|
|
804
|
+
nameEnd: isRawText ? path.endOf(Part.name) : -1,
|
|
805
|
+
contentEnd: isRawText ? path.endOf(Part.content) : -1,
|
|
806
|
+
selfClosing: path.flag(Flag.selfClosing)
|
|
735
807
|
});
|
|
736
808
|
originals.push(snapshotAttrs(attrs));
|
|
737
809
|
descriptors.push(null);
|
|
@@ -786,7 +858,7 @@ class HtmlGenerator extends Generator {
|
|
|
786
858
|
* @returns {string} the rendered HTML
|
|
787
859
|
*/
|
|
788
860
|
static renderHtml(content, model, csp) {
|
|
789
|
-
const { escapeAttribute } =
|
|
861
|
+
const { escapeAttribute } = getHtmlParser();
|
|
790
862
|
const { tags, spans, originals, descriptors, anchors } = model;
|
|
791
863
|
// CSP setup: an author-declared policy (page's own or injected) wins.
|
|
792
864
|
const options = csp ? (csp === true ? {} : csp) : undefined;
|
|
@@ -1057,7 +1129,7 @@ class HtmlGenerator extends Generator {
|
|
|
1057
1129
|
|
|
1058
1130
|
/**
|
|
1059
1131
|
* Returns the reason this module cannot be concatenated, when one exists.
|
|
1060
|
-
* @param {
|
|
1132
|
+
* @param {TModule} module module for which the bailout reason should be determined
|
|
1061
1133
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
1062
1134
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
1063
1135
|
*/
|
|
@@ -1077,7 +1149,7 @@ class HtmlGenerator extends Generator {
|
|
|
1077
1149
|
* `originModule` (the EntryDependency added by `compilation.addEntry`) —
|
|
1078
1150
|
* this covers both HTML-as-entry-point and a linked `type: "html"` page
|
|
1079
1151
|
* (added as its own entry by HtmlModulesPlugin).
|
|
1080
|
-
* @param {
|
|
1152
|
+
* @param {TModule} module module
|
|
1081
1153
|
* @returns {boolean} true when the module is an entry
|
|
1082
1154
|
*/
|
|
1083
1155
|
_isEntryModule(module) {
|
|
@@ -1094,7 +1166,7 @@ class HtmlGenerator extends Generator {
|
|
|
1094
1166
|
* when the option is left unspecified, extraction defaults to on for HTML
|
|
1095
1167
|
* modules used as compilation entries — that's the HTML-as-entry-point case
|
|
1096
1168
|
* and a linked `type: "html"` page (which is added as its own entry).
|
|
1097
|
-
* @param {
|
|
1169
|
+
* @param {TModule} module module
|
|
1098
1170
|
* @returns {boolean} true when the `.html` file should be emitted
|
|
1099
1171
|
*/
|
|
1100
1172
|
_shouldExtract(module) {
|
|
@@ -1108,7 +1180,7 @@ class HtmlGenerator extends Generator {
|
|
|
1108
1180
|
* Whether this module exposes the `html` source type. Like `_shouldExtract`,
|
|
1109
1181
|
* but `"inline"` also exposes it — the processed HTML is read back into the
|
|
1110
1182
|
* host attribute (e.g. `<iframe srcdoc>`) instead of emitted as a file.
|
|
1111
|
-
* @param {
|
|
1183
|
+
* @param {TModule} module module
|
|
1112
1184
|
* @returns {boolean} true when the `html` source type is available
|
|
1113
1185
|
*/
|
|
1114
1186
|
_shouldExposeHtmlType(module) {
|
|
@@ -1118,7 +1190,7 @@ class HtmlGenerator extends Generator {
|
|
|
1118
1190
|
|
|
1119
1191
|
/**
|
|
1120
1192
|
* Returns the source types available for this module.
|
|
1121
|
-
* @param {
|
|
1193
|
+
* @param {TModule} module fresh module
|
|
1122
1194
|
* @returns {SourceTypes} available types (do not mutate)
|
|
1123
1195
|
*/
|
|
1124
1196
|
getTypes(module) {
|
|
@@ -1142,7 +1214,7 @@ class HtmlGenerator extends Generator {
|
|
|
1142
1214
|
|
|
1143
1215
|
/**
|
|
1144
1216
|
* Returns the estimated size for the requested source type.
|
|
1145
|
-
* @param {
|
|
1217
|
+
* @param {TModule} module the module
|
|
1146
1218
|
* @param {SourceType=} type source type
|
|
1147
1219
|
* @returns {number} estimate size of the module
|
|
1148
1220
|
*/
|
|
@@ -1176,7 +1248,7 @@ class HtmlGenerator extends Generator {
|
|
|
1176
1248
|
|
|
1177
1249
|
/**
|
|
1178
1250
|
* Processes the provided dependencies block.
|
|
1179
|
-
* @param {import("../DependenciesBlock")} block the dependencies block which will be processed
|
|
1251
|
+
* @param {import("../graph/DependenciesBlock")} block the dependencies block which will be processed
|
|
1180
1252
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
1181
1253
|
* @param {DependencyTemplateContext} templateContext the template context
|
|
1182
1254
|
* @returns {void}
|
|
@@ -1193,7 +1265,7 @@ class HtmlGenerator extends Generator {
|
|
|
1193
1265
|
|
|
1194
1266
|
/**
|
|
1195
1267
|
* Processes the provided module.
|
|
1196
|
-
* @param {
|
|
1268
|
+
* @param {TModule} module the module to generate
|
|
1197
1269
|
* @param {InitFragment<GenerateContext>[]} initFragments mutable list of init fragments
|
|
1198
1270
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
1199
1271
|
* @param {GenerateContext} generateContext the generateContext
|
|
@@ -1202,7 +1274,7 @@ class HtmlGenerator extends Generator {
|
|
|
1202
1274
|
sourceModule(module, initFragments, source, generateContext) {
|
|
1203
1275
|
// Only `dependency` varies across `template.apply` calls, so one context
|
|
1204
1276
|
// (and one lazy `chunkInitFragments` getter) serves the whole module.
|
|
1205
|
-
/** @type {InitFragment<
|
|
1277
|
+
/** @type {InitFragment<import("../javascript/JavascriptModulesPlugin").ChunkRenderContext>[] | undefined} */
|
|
1206
1278
|
let chunkInitFragments;
|
|
1207
1279
|
/** @type {DependencyTemplateContext} */
|
|
1208
1280
|
const templateContext = {
|
|
@@ -1257,7 +1329,7 @@ class HtmlGenerator extends Generator {
|
|
|
1257
1329
|
* `undefined`, the placeholders are preserved so the caller (typically
|
|
1258
1330
|
* `HtmlModulesPlugin#renderManifest`, which only knows the final
|
|
1259
1331
|
* `.html` filename after code generation) can resolve them itself.
|
|
1260
|
-
* @param {
|
|
1332
|
+
* @param {TModule} module the module to render
|
|
1261
1333
|
* @param {GenerateContext} generateContext the generate context
|
|
1262
1334
|
* @param {string=} undoPath value to substitute for `[webpack/auto]` placeholders
|
|
1263
1335
|
* @returns {string} the rewritten HTML
|
|
@@ -1289,14 +1361,14 @@ class HtmlGenerator extends Generator {
|
|
|
1289
1361
|
if (!rawContent.includes(PUBLIC_PATH_AUTO)) return rawContent;
|
|
1290
1362
|
// A relative `<base href>` prepends `../`s so the base can't misdirect
|
|
1291
1363
|
// the rewritten URLs (see `HtmlParser`).
|
|
1292
|
-
const
|
|
1293
|
-
|
|
1364
|
+
const { buildInfo } = /** @type {BuiltHtmlModule} */ (module);
|
|
1365
|
+
const basePrefix = buildInfo.baseUrlPrefix || "";
|
|
1294
1366
|
return rawContent.split(PUBLIC_PATH_AUTO).join(basePrefix + undoPath);
|
|
1295
1367
|
}
|
|
1296
1368
|
|
|
1297
1369
|
/**
|
|
1298
1370
|
* Generates generated code for this runtime module.
|
|
1299
|
-
* @param {
|
|
1371
|
+
* @param {TModule} module module for which the code should be generated
|
|
1300
1372
|
* @param {GenerateContext} generateContext context for generate
|
|
1301
1373
|
* @returns {Source | null} generated code
|
|
1302
1374
|
*/
|
|
@@ -1393,7 +1465,7 @@ class HtmlGenerator extends Generator {
|
|
|
1393
1465
|
* express — fine in a dev-server context because the regular
|
|
1394
1466
|
* (non-hot-update) `page.html` chunk is re-emitted on every rebuild,
|
|
1395
1467
|
* so the reloaded page picks up the new head.
|
|
1396
|
-
* @param {
|
|
1468
|
+
* @param {TModule} module module
|
|
1397
1469
|
* @param {string} html the rewritten HTML content (with placeholders resolved)
|
|
1398
1470
|
* @param {boolean} extracting whether the HTML module is being extracted as a real `.html` file
|
|
1399
1471
|
* @param {RuntimeTemplate} runtimeTemplate runtime template (drives `const`/arrow emission based on environment support)
|
|
@@ -1613,7 +1685,7 @@ class HtmlGenerator extends Generator {
|
|
|
1613
1685
|
/**
|
|
1614
1686
|
* Generates fallback output for the provided error condition.
|
|
1615
1687
|
* @param {Error} error the error
|
|
1616
|
-
* @param {
|
|
1688
|
+
* @param {TModule} module module for which the code should be generated
|
|
1617
1689
|
* @param {GenerateContext} generateContext context for generate
|
|
1618
1690
|
* @returns {Source | null} generated code
|
|
1619
1691
|
*/
|
|
@@ -1640,7 +1712,7 @@ class HtmlGenerator extends Generator {
|
|
|
1640
1712
|
/**
|
|
1641
1713
|
* Updates the hash with the data contributed by this instance.
|
|
1642
1714
|
* @param {Hash} hash hash that will be modified
|
|
1643
|
-
* @param {UpdateHashContext} updateHashContext context for updating hash
|
|
1715
|
+
* @param {UpdateHashContext<TModule>} updateHashContext context for updating hash
|
|
1644
1716
|
*/
|
|
1645
1717
|
updateHash(hash, updateHashContext) {
|
|
1646
1718
|
hash.update("html");
|
package/lib/html/HtmlModule.js
CHANGED
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const NormalModule = require("../NormalModule");
|
|
7
|
+
const NormalModule = require("../module/NormalModule");
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @import {
|
|
12
12
|
* NormalModuleBuildInfo,
|
|
13
13
|
* NormalModuleCreateData
|
|
14
|
-
* } from "../NormalModule"
|
|
14
|
+
* } from "../module/NormalModule"
|
|
15
15
|
*/
|
|
16
16
|
/** @import { HtmlEntryInfo } from "./HtmlModulesPlugin" */
|
|
17
|
+
/** @import { BuildMeta, ModuleKinds } from "../module/Module" */
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Defines the build info properties specific to html modules.
|
|
@@ -24,6 +25,16 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
24
25
|
|
|
25
26
|
/** @typedef {NormalModuleBuildInfo & KnownHtmlModuleBuildInfo} HtmlModuleBuildInfo */
|
|
26
27
|
|
|
28
|
+
/**
|
|
29
|
+
* An html module before or after its build, typed with its build info.
|
|
30
|
+
* @typedef {NormalModule & { buildInfo?: HtmlModuleBuildInfo }} HtmlNormalModule
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* A built html module, typed with its build info and build meta.
|
|
35
|
+
* @typedef {NormalModule & { buildInfo: HtmlModuleBuildInfo, buildMeta: BuildMeta }} BuiltHtmlModule
|
|
36
|
+
*/
|
|
37
|
+
|
|
27
38
|
/**
|
|
28
39
|
* Module class for `html` modules. HTML-specific properties should live here instead of `NormalModule`.
|
|
29
40
|
*/
|
|
@@ -42,4 +53,7 @@ class HtmlModule extends NormalModule {
|
|
|
42
53
|
|
|
43
54
|
makeSerializable(HtmlModule, "webpack/lib/html/HtmlModule");
|
|
44
55
|
|
|
56
|
+
/** @type {Set<keyof ModuleKinds>} */
|
|
57
|
+
HtmlModule.KINDS = new Set([...NormalModule.KINDS, "html"]);
|
|
58
|
+
|
|
45
59
|
module.exports = HtmlModule;
|