webpack 5.111.0 → 5.112.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 +1 -1
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +237 -138
- package/lib/Compiler.js +23 -24
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -69
- 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 +43 -24
- package/lib/NormalModule.js +3 -2190
- 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 +15 -9
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +61 -38
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +15 -9
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -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} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +6 -6
- package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
- package/lib/cache/PackFileCacheStrategy.js +11 -28
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/getLazyHashedEtag.js +3 -5
- 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} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +3 -9
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +192 -122
- package/lib/config/getClaimedAssetTypes.js +28 -21
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +13 -4
- 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/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
- package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
- package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
- package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
- package/lib/css/CssGenerator.js +57 -42
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +700 -311
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +130 -54
- package/lib/css/data.js +7017 -4648
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -17370
- package/lib/debug/ProfilingPlugin.js +55 -23
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- 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 -10
- 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} +10 -10
- 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} +176 -44
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- 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} +19 -20
- 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} +5 -5
- 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} +34 -18
- 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} +9 -9
- 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} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- 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} +12 -11
- 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 -100
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
- 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} +26 -21
- 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} +40 -41
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
- 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} +136 -122
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
- 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} +125 -243
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
- 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} +20 -20
- 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} +126 -107
- 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} +34 -25
- package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
- 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} +46 -54
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
- 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} +207 -129
- 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 +20 -18
- 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 +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- 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/{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/errors/ErrorHelpers.js +222 -0
- 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/{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 +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- 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} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
- package/lib/{util → graph}/findGraphRoots.js +20 -21
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +34 -26
- package/lib/html/HtmlGenerator.js +168 -125
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +260 -215
- package/lib/html/HtmlParser.js +598 -292
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +23 -1
- package/lib/html/htmlMinify.js +120 -51
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -14062
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- 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 +348 -99
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +25 -18
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +458 -256
- package/lib/javascript/JavascriptParser.js +916 -287
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- 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 +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -10946
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +17 -11
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- 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 +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +207 -285
- 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 +27 -2
- package/lib/loaders/LoaderRunner.js +160 -22
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- 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} +38 -14
- package/lib/{Module.js → module/Module.js} +122 -54
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- 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 +61 -15
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +5 -7
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +305 -309
- 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} +25 -30
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +17 -23
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +21 -15
- package/lib/optimize/MangleExportsPlugin.js +8 -9
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
- package/lib/optimize/SplitChunksPlugin.js +715 -159
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +25 -30
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- 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 +5 -7
- 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 +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- 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 +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +13 -16
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- 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 +7 -9
- 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 +82 -65
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- 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/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
- 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 +9 -10
- 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 +5 -7
- 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 +135 -102
- 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} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -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 +4 -7
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/BinaryMiddleware.js +9 -9
- package/lib/serialization/FileMiddleware.js +19 -19
- package/lib/serialization/ObjectMiddleware.js +77 -49
- package/lib/serialization/SerializerMiddleware.js +2 -2
- 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 +19 -19
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -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} +178 -106
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
- package/lib/typescript/TypeScriptPlugin.js +5 -6
- package/lib/util/LocConverter.js +4 -7
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +364 -66
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +32 -151
- package/lib/util/createHooksRegistry.js +1 -2
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -18
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/hash/wasm-hash.js +3 -4
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +295 -103
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- 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 +4 -1
- 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 +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
- 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 +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- 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 +70 -40
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- 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 +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +13915 -8414
- package/lib/ErrorHelpers.js +0 -107
- 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 -71
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1494
- 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}/conventions.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
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
const {
|
|
9
9
|
DEFAULT_EXPORT,
|
|
10
10
|
NAMESPACE_OBJECT_EXPORT
|
|
11
|
-
} = require("
|
|
11
|
+
} = require("../util/concatenate");
|
|
12
12
|
|
|
13
13
|
/** @import { Source } from "webpack-sources" */
|
|
14
|
-
/** @import Module from "
|
|
14
|
+
/** @import Module from "../module/Module" */
|
|
15
15
|
/**
|
|
16
16
|
* @import {
|
|
17
17
|
* ConcatenatedModuleInfo,
|
|
18
18
|
* ModuleInfo,
|
|
19
19
|
* ExportName as Ids
|
|
20
|
-
* } from "./
|
|
20
|
+
* } from "./ConcatenatedModule"
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/** @typedef {{ start: number, end: number, name: string, leaked: boolean }} ModuleReferenceMatch */
|
|
@@ -39,6 +39,41 @@ const IDENTIFIER_CHARACTER_REGEXP = /[\w$]/;
|
|
|
39
39
|
/** @type {WeakMap<Source, ModuleReferenceMatch[]>} */
|
|
40
40
|
const moduleReferencesCache = new WeakMap();
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Hex encodings of the export paths a concatenation references, keyed by the
|
|
44
|
+
* module map every scope of that concatenation shares, so they die with it.
|
|
45
|
+
* @type {WeakMap<Map<Module, ModuleInfo>, { single: Map<string, string>, multi: Map<string, string> }>}
|
|
46
|
+
*/
|
|
47
|
+
const exportDataCache = new WeakMap();
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Hex-encodes one export path. A path is named by many references over one
|
|
51
|
+
* concatenation, so the encoding is cached rather than rebuilt per reference.
|
|
52
|
+
* @param {Map<Module, ModuleInfo>} modulesMap the scope's module map
|
|
53
|
+
* @param {string[]} ids the export path
|
|
54
|
+
* @returns {string} the hex encoding of the path
|
|
55
|
+
*/
|
|
56
|
+
const encodeExportData = (modulesMap, ids) => {
|
|
57
|
+
let caches = exportDataCache.get(modulesMap);
|
|
58
|
+
if (caches === undefined) {
|
|
59
|
+
caches = { single: new Map(), multi: new Map() };
|
|
60
|
+
exportDataCache.set(modulesMap, caches);
|
|
61
|
+
}
|
|
62
|
+
// a one-element path is keyed by the element itself, so the common case
|
|
63
|
+
// costs no key building; anything longer is keyed by its JSON
|
|
64
|
+
const single = ids.length === 1;
|
|
65
|
+
const cache = single ? caches.single : caches.multi;
|
|
66
|
+
const key = single ? ids[0] : JSON.stringify(ids);
|
|
67
|
+
const cached = cache.get(key);
|
|
68
|
+
if (cached !== undefined) return cached;
|
|
69
|
+
const encoded = Buffer.from(
|
|
70
|
+
single ? JSON.stringify(ids) : key,
|
|
71
|
+
"utf8"
|
|
72
|
+
).toString("hex");
|
|
73
|
+
cache.set(key, encoded);
|
|
74
|
+
return encoded;
|
|
75
|
+
};
|
|
76
|
+
|
|
42
77
|
/**
|
|
43
78
|
* Encodes how a concatenated module reference should be interpreted when it is
|
|
44
79
|
* later reconstructed from its placeholder identifier.
|
|
@@ -217,9 +252,7 @@ class ConcatenationScope {
|
|
|
217
252
|
: asiSafe === false
|
|
218
253
|
? "_asiSafe0"
|
|
219
254
|
: "";
|
|
220
|
-
const exportData = ids
|
|
221
|
-
? Buffer.from(JSON.stringify(ids), "utf8").toString("hex")
|
|
222
|
-
: "ns";
|
|
255
|
+
const exportData = ids ? encodeExportData(this._modulesMap, ids) : "ns";
|
|
223
256
|
// a "._" is appended to allow "delete ...", which would cause a SyntaxError in strict mode
|
|
224
257
|
return `__WEBPACK_MODULE_REFERENCE__${info.index}_${exportData}${callFlag}${directImportFlag}${deferredImportFlag}${mangleableNamespaceFlag}${moduleExportsAccessFlag}${asiSafeFlag}__._`;
|
|
225
258
|
}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
9
|
+
const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
|
|
10
|
+
const { VariableInfoFlags } = require("../javascript/JavascriptParser");
|
|
10
11
|
const {
|
|
11
12
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
12
13
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
13
|
-
} = require("../ModuleTypeConstants");
|
|
14
|
-
const
|
|
15
|
-
const { VariableInfoFlags } = require("../javascript/JavascriptParser");
|
|
14
|
+
} = require("../module/ModuleTypeConstants");
|
|
15
|
+
const CircularModulesPlugin = require("./CircularModulesPlugin");
|
|
16
16
|
const {
|
|
17
17
|
InlinedUsedName,
|
|
18
18
|
enableInlineExports,
|
|
@@ -23,7 +23,7 @@ const { CircularKind } = CircularModulesPlugin;
|
|
|
23
23
|
|
|
24
24
|
/** @import { InlinedValue } from "./InlineExports" */
|
|
25
25
|
/** @import Compiler from "../Compiler" */
|
|
26
|
-
/** @import ExportsInfo from "../ExportsInfo" */
|
|
26
|
+
/** @import ExportsInfo from "../graph/ExportsInfo" */
|
|
27
27
|
/** @import JavascriptParser from "../javascript/JavascriptParser" */
|
|
28
28
|
/**
|
|
29
29
|
* @import {
|
|
@@ -159,7 +159,7 @@ class ConstExportsPlugin {
|
|
|
159
159
|
|
|
160
160
|
if (!this.options.inlineExports) return;
|
|
161
161
|
|
|
162
|
-
// Lets
|
|
162
|
+
// Lets ESMImportSpecifierDependency.getCondition skip the inline check
|
|
163
163
|
// (and stay unconditional) when this plugin is not active
|
|
164
164
|
enableInlineExports(compilation.moduleGraph);
|
|
165
165
|
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { STAGE_BASIC } = require("
|
|
8
|
+
const { STAGE_BASIC } = require("./OptimizationStages");
|
|
9
9
|
|
|
10
|
-
/** @import Chunk from "../Chunk" */
|
|
11
|
-
/** @import ChunkGroup from "../ChunkGroup" */
|
|
10
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
11
|
+
/** @import ChunkGroup from "../graph/ChunkGroup" */
|
|
12
12
|
/** @import Compiler from "../Compiler" */
|
|
13
13
|
|
|
14
14
|
const PLUGIN_NAME = "EnsureChunkConditionsPlugin";
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { getEntryRuntime, mergeRuntimeOwned } = require("
|
|
8
|
+
const { getEntryRuntime, mergeRuntimeOwned } = require("../util/runtime");
|
|
9
9
|
|
|
10
|
-
/** @import Compiler from "
|
|
11
|
-
/** @import { RuntimeSpec } from "
|
|
10
|
+
/** @import Compiler from "../Compiler" */
|
|
11
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
12
12
|
|
|
13
13
|
const PLUGIN_NAME = "FlagAllModulesAsUsedPlugin";
|
|
14
14
|
class FlagAllModulesAsUsedPlugin {
|
|
@@ -5,24 +5,24 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
8
|
+
const asyncLib = require("../util/async");
|
|
9
|
+
const { compareModulesByIdentifier } = require("../util/comparators");
|
|
10
|
+
const createHash = require("../util/createHash");
|
|
11
|
+
const Queue = require("./Queue");
|
|
12
12
|
|
|
13
|
-
/** @import Compiler from "
|
|
14
|
-
/** @import DependenciesBlock from "
|
|
13
|
+
/** @import Compiler from "../Compiler" */
|
|
14
|
+
/** @import DependenciesBlock from "../graph/DependenciesBlock" */
|
|
15
15
|
/**
|
|
16
16
|
* @import Dependency, {
|
|
17
17
|
* ExportSpec,
|
|
18
18
|
* ExportsSpec,
|
|
19
19
|
* ExportInfoName
|
|
20
|
-
* } from "
|
|
20
|
+
* } from "../graph/Dependency"
|
|
21
21
|
*/
|
|
22
|
-
/** @import ExportsInfo, { RestoreProvidedData } from "
|
|
23
|
-
/** @import { HashFunction } from "
|
|
24
|
-
/** @import
|
|
25
|
-
/** @import Module, { BuildInfo } from "
|
|
22
|
+
/** @import ExportsInfo, { RestoreProvidedData } from "../graph/ExportsInfo" */
|
|
23
|
+
/** @import { HashFunction } from "../../declarations/WebpackOptions" */
|
|
24
|
+
/** @import LazyBarrels from "./LazyBarrels" */
|
|
25
|
+
/** @import Module, { BuildInfo } from "../module/Module" */
|
|
26
26
|
|
|
27
27
|
const PLUGIN_NAME = "FlagDependencyExportsPlugin";
|
|
28
28
|
const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
|
|
@@ -33,12 +33,12 @@ const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
|
|
|
33
33
|
* Cache key fragment for what changes provided exports without changing the
|
|
34
34
|
* module's source: still-lazy barrel requests and DefinePlugin value versions.
|
|
35
35
|
* @param {Module} module the module
|
|
36
|
-
* @param {
|
|
36
|
+
* @param {LazyBarrels} lazyBarrels the compilation's lazy barrels
|
|
37
37
|
* @param {HashFunction} hashFunction hash function for long keys
|
|
38
38
|
* @returns {string} etag for provided-exports mem/persistent cache, "" when neither applies
|
|
39
39
|
*/
|
|
40
|
-
const getProvidedExportsEtag = (module,
|
|
41
|
-
const lazyRequests =
|
|
40
|
+
const getProvidedExportsEtag = (module, lazyBarrels, hashFunction) => {
|
|
41
|
+
const lazyRequests = lazyBarrels.getLazyRequests(module);
|
|
42
42
|
const buildInfo = /** @type {BuildInfo | undefined} */ (module.buildInfo);
|
|
43
43
|
const valueDependencies = buildInfo && buildInfo.valueDependencies;
|
|
44
44
|
const hasValueDependencies =
|
|
@@ -80,7 +80,7 @@ class FlagDependencyExportsPlugin {
|
|
|
80
80
|
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
|
|
81
81
|
const moduleGraph = compilation.moduleGraph;
|
|
82
82
|
const cache = compilation.getCache(PLUGIN_NAME);
|
|
83
|
-
const
|
|
83
|
+
const lazyBarrels = compilation._lazyBarrels;
|
|
84
84
|
const hashFunction = compilation.outputOptions.hashFunction;
|
|
85
85
|
compilation.hooks.finishModules.tapAsync(
|
|
86
86
|
PLUGIN_NAME,
|
|
@@ -134,13 +134,12 @@ class FlagDependencyExportsPlugin {
|
|
|
134
134
|
const memCacheEntry = memCache && memCache.get(this);
|
|
135
135
|
const etag = getProvidedExportsEtag(
|
|
136
136
|
module,
|
|
137
|
-
|
|
137
|
+
lazyBarrels,
|
|
138
138
|
hashFunction
|
|
139
139
|
);
|
|
140
140
|
// validated by the still-lazy request keys: reference-change
|
|
141
|
-
// detection cannot invalidate the mem cache
|
|
142
|
-
// connections are unsafe-cached
|
|
143
|
-
// references)
|
|
141
|
+
// detection cannot invalidate the mem cache while the un-lazied
|
|
142
|
+
// connections are unsafe-cached, being skipped in the comparison
|
|
144
143
|
if (memCacheEntry !== undefined && memCacheEntry.etag === etag) {
|
|
145
144
|
statRestoredFromMemCache++;
|
|
146
145
|
exportsInfo.restoreProvided(memCacheEntry.data);
|
|
@@ -172,16 +171,12 @@ class FlagDependencyExportsPlugin {
|
|
|
172
171
|
logger.timeEnd("restore cached provided exports");
|
|
173
172
|
if (err) return callback(err);
|
|
174
173
|
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
//
|
|
181
|
-
// and this loop can add exports info but never retract it, so
|
|
182
|
-
// the over-estimate survives the pass that corrects it. The
|
|
183
|
-
// roots are sorted so the walk is stable, and post-order visits
|
|
184
|
-
// each module after everything it points at.
|
|
174
|
+
// WHY: enqueueing at the branches above ordered the work by how
|
|
175
|
+
// fast each cache lookup answered, letting the persistent cache
|
|
176
|
+
// decide it. A module analyzed before the one it re-exports from
|
|
177
|
+
// over-estimates its exports, and this loop can add exports info
|
|
178
|
+
// but never retract it, so that over-estimate would survive. Sorted
|
|
179
|
+
// roots and post-order visit each module after what it points at.
|
|
185
180
|
/** @type {Set<Module>} */
|
|
186
181
|
const visited = new Set();
|
|
187
182
|
/** @type {Module[]} */
|
|
@@ -539,7 +534,7 @@ class FlagDependencyExportsPlugin {
|
|
|
539
534
|
moduleMemCaches && moduleMemCaches.get(module);
|
|
540
535
|
const etag = getProvidedExportsEtag(
|
|
541
536
|
module,
|
|
542
|
-
|
|
537
|
+
lazyBarrels,
|
|
543
538
|
hashFunction
|
|
544
539
|
);
|
|
545
540
|
if (memCache) {
|
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const Dependency = require("
|
|
9
|
-
const { UsageState } = require("
|
|
10
|
-
const ModuleGraphConnection = require("
|
|
8
|
+
const Dependency = require("../graph/Dependency");
|
|
9
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
10
|
+
const ModuleGraphConnection = require("../graph/ModuleGraphConnection");
|
|
11
|
+
const ArrayQueue = require("../util/ArrayQueue");
|
|
12
|
+
const TupleSet = require("../util/TupleSet");
|
|
13
|
+
const { getEntryRuntime, mergeRuntimeOwned } = require("../util/runtime");
|
|
11
14
|
const { STAGE_DEFAULT } = require("./OptimizationStages");
|
|
12
|
-
const
|
|
13
|
-
const TupleQueue = require("./util/TupleQueue");
|
|
14
|
-
const TupleSet = require("./util/TupleSet");
|
|
15
|
-
const { getEntryRuntime, mergeRuntimeOwned } = require("./util/runtime");
|
|
15
|
+
const TupleQueue = require("./TupleQueue");
|
|
16
16
|
|
|
17
|
-
/** @import Compiler from "
|
|
18
|
-
/** @import DependenciesBlock from "
|
|
19
|
-
/** @import { ReferencedExport, ReferencedExports } from "
|
|
20
|
-
/** @import ExportsInfo from "
|
|
21
|
-
/** @import Module from "
|
|
22
|
-
/** @import { RuntimeSpec } from "
|
|
17
|
+
/** @import Compiler from "../Compiler" */
|
|
18
|
+
/** @import DependenciesBlock from "../graph/DependenciesBlock" */
|
|
19
|
+
/** @import { ReferencedExport, ReferencedExports } from "../graph/Dependency" */
|
|
20
|
+
/** @import ExportsInfo from "../graph/ExportsInfo" */
|
|
21
|
+
/** @import Module from "../module/Module" */
|
|
22
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
23
23
|
|
|
24
24
|
const {
|
|
25
25
|
NO_EXPORTS_REFERENCED,
|
|
@@ -33,12 +33,12 @@ const PLUGIN_LOGGER_NAME = `webpack.${PLUGIN_NAME}`;
|
|
|
33
33
|
// Hoisted stateless predicates for setUsedConditionally on the innermost
|
|
34
34
|
// used-export loop, so they aren't re-allocated per export.
|
|
35
35
|
/**
|
|
36
|
-
* @param {import("
|
|
36
|
+
* @param {import("../graph/ExportsInfo").UsageStateType} used usage state
|
|
37
37
|
* @returns {boolean} whether unused
|
|
38
38
|
*/
|
|
39
39
|
const IS_UNUSED = (used) => used === UsageState.Unused;
|
|
40
40
|
/**
|
|
41
|
-
* @param {import("
|
|
41
|
+
* @param {import("../graph/ExportsInfo").UsageStateType} used usage state
|
|
42
42
|
* @returns {boolean} whether not used
|
|
43
43
|
*/
|
|
44
44
|
const IS_NOT_USED = (used) => used !== UsageState.Used;
|
|
@@ -77,10 +77,10 @@ class FlagDependencyUsagePlugin {
|
|
|
77
77
|
/** @type {Map<ExportsInfo, Module>} */
|
|
78
78
|
const exportInfoToModuleMap = new Map();
|
|
79
79
|
|
|
80
|
-
/** @type {TupleQueue<Module, RuntimeSpec>} */
|
|
80
|
+
/** @type {TupleQueue<[Module], RuntimeSpec>} */
|
|
81
81
|
const queue = new TupleQueue();
|
|
82
82
|
|
|
83
|
-
/** @type {TupleSet<Module, RuntimeSpec> | undefined} */
|
|
83
|
+
/** @type {TupleSet<[Module], RuntimeSpec> | undefined} */
|
|
84
84
|
let walkedSideEffectFreeModules;
|
|
85
85
|
|
|
86
86
|
/**
|
|
@@ -93,10 +93,9 @@ class FlagDependencyUsagePlugin {
|
|
|
93
93
|
const processReferencedModule = (module, usedExports, runtime) => {
|
|
94
94
|
const exportsInfo = moduleGraph.getExportsInfo(module);
|
|
95
95
|
if (usedExports === EXPORTS_OBJECT_REFERENCED_MANGLEABLE) {
|
|
96
|
-
// The
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
// them used-in-unknown-way.
|
|
96
|
+
// The namespace object escapes through a reference codegen can
|
|
97
|
+
// materialize, so with every export statically known they stay
|
|
98
|
+
// mangleable rather than used-in-unknown-way.
|
|
100
99
|
if (
|
|
101
100
|
this.mangleEscapingNamespaces &&
|
|
102
101
|
module.buildMeta &&
|
|
@@ -237,10 +236,9 @@ class FlagDependencyUsagePlugin {
|
|
|
237
236
|
/** @typedef {Map<string, string[] | ReferencedExport>} ExportMaps */
|
|
238
237
|
/** @type {Map<Module, ReferencedExports | ExportMaps>} */
|
|
239
238
|
const map = new Map();
|
|
240
|
-
// Modules whose whole namespace
|
|
241
|
-
//
|
|
242
|
-
//
|
|
243
|
-
// Lazily allocated — usually empty.
|
|
239
|
+
// Modules whose whole namespace escapes but stays mangleable, kept
|
|
240
|
+
// apart so specific member references are still merged and marked
|
|
241
|
+
// used rather than dropped by the escape marker. Usually empty.
|
|
244
242
|
/** @type {Set<Module> | undefined} */
|
|
245
243
|
let mangleableEscapeModules;
|
|
246
244
|
|
|
@@ -289,11 +287,9 @@ class FlagDependencyUsagePlugin {
|
|
|
289
287
|
}
|
|
290
288
|
continue;
|
|
291
289
|
}
|
|
292
|
-
// A mangleable
|
|
293
|
-
//
|
|
294
|
-
//
|
|
295
|
-
// need their own (possibly non-existent) export marked used so
|
|
296
|
-
// they render as a qualified access, not a bare `undefined`.
|
|
290
|
+
// A mangleable escape keeps the exports mangleable, applied after
|
|
291
|
+
// the merge. It must not drop specific member references: each
|
|
292
|
+
// still needs marking, or it renders as a bare `undefined`.
|
|
297
293
|
if (
|
|
298
294
|
referencedExports === EXPORTS_OBJECT_REFERENCED_MANGLEABLE
|
|
299
295
|
) {
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { getEntryRuntime } = require("
|
|
8
|
+
const { getEntryRuntime } = require("../util/runtime");
|
|
9
9
|
|
|
10
|
-
/** @import Compiler from "
|
|
10
|
+
/** @import Compiler from "../Compiler" */
|
|
11
11
|
|
|
12
12
|
const PLUGIN_NAME = "FlagEntryExportAsUsedPlugin";
|
|
13
13
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
const { compareIds } = require("../util/comparators");
|
|
9
9
|
|
|
10
|
-
/** @import Chunk, { ChunkId } from "../Chunk" */
|
|
10
|
+
/** @import Chunk, { ChunkId } from "../graph/Chunk" */
|
|
11
11
|
/** @import Compiler from "../Compiler" */
|
|
12
|
-
/** @import Module from "../Module" */
|
|
12
|
+
/** @import Module from "../module/Module" */
|
|
13
13
|
|
|
14
14
|
const PLUGIN_NAME = "FlagIncludedChunksPlugin";
|
|
15
15
|
|
|
@@ -24,17 +24,9 @@ class FlagIncludedChunksPlugin {
|
|
|
24
24
|
compilation.hooks.optimizeChunkIds.tap(PLUGIN_NAME, (chunks) => {
|
|
25
25
|
const chunkGraph = compilation.chunkGraph;
|
|
26
26
|
|
|
27
|
-
//
|
|
28
|
-
// 2^31
|
|
29
|
-
//
|
|
30
|
-
// the bit 2^31 is pretty rar and only one module should get it
|
|
31
|
-
// so it has a probability of 1 / modulesCount
|
|
32
|
-
// the first bit (2^0) is the easiest and every module could get it
|
|
33
|
-
// if it doesn't get a better bit
|
|
34
|
-
// from bit 2^n to 2^(n+1) there is a probability of p
|
|
35
|
-
// so 1 / modulesCount == p^31
|
|
36
|
-
// <=> p = sqrt31(1 / modulesCount)
|
|
37
|
-
// so we use a modulo of 1 / sqrt31(1 / modulesCount)
|
|
27
|
+
// Two bit integers per module, within v8's 2^31 SMI range. The bits are
|
|
28
|
+
// spread so 2^31 falls to about one module in `modulesCount` and 2^0 to
|
|
29
|
+
// any module missing a better one, which gives the modulo below.
|
|
38
30
|
/** @type {WeakMap<Module, number>} */
|
|
39
31
|
const moduleBits = new WeakMap();
|
|
40
32
|
const modulesCount = compilation.modules.size;
|
|
@@ -14,8 +14,8 @@ const { propertyAccess } = require("../util/property");
|
|
|
14
14
|
* ObjectSerializerContext
|
|
15
15
|
* } from "../serialization/ObjectMiddleware"
|
|
16
16
|
*/
|
|
17
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
18
|
-
/** @import Module from "../Module" */
|
|
17
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
18
|
+
/** @import Module from "../module/Module" */
|
|
19
19
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
20
20
|
/** @import Hash from "../util/Hash" */
|
|
21
21
|
|
|
@@ -172,7 +172,7 @@ const isInlineExportsEnabled = (moduleGraph) =>
|
|
|
172
172
|
const isInlineEnabled = (module) =>
|
|
173
173
|
Boolean(
|
|
174
174
|
module.buildInfo &&
|
|
175
|
-
/** @type {import("../Module").BuildInfo} */
|
|
175
|
+
/** @type {import("../module/Module").BuildInfo} */
|
|
176
176
|
(module.buildInfo).inlineExports
|
|
177
177
|
);
|
|
178
178
|
|
|
@@ -190,11 +190,19 @@ const isExportInlined = (moduleGraph, module, ids, runtime) => {
|
|
|
190
190
|
return moduleGraph.getExportsInfo(module).hasInlinedUsedName(ids, runtime);
|
|
191
191
|
};
|
|
192
192
|
|
|
193
|
+
/**
|
|
194
|
+
* Whether a used name is an inlined value rather than a property name.
|
|
195
|
+
* @param {unknown} value a used name
|
|
196
|
+
* @returns {value is InlinedUsedName} true when the value is inlined
|
|
197
|
+
*/
|
|
198
|
+
const isInlinedUsedName = (value) => value instanceof InlinedUsedName;
|
|
199
|
+
|
|
193
200
|
module.exports.InlinedUsedName = InlinedUsedName;
|
|
194
201
|
module.exports.InlinedValue = InlinedValue;
|
|
195
202
|
module.exports.MAX_INLINE_BYTES = MAX_INLINE_BYTES;
|
|
196
203
|
module.exports.enableInlineExports = enableInlineExports;
|
|
197
204
|
module.exports.isExportInlined = isExportInlined;
|
|
198
205
|
module.exports.isInlineEnabled = isInlineEnabled;
|
|
206
|
+
module.exports.isInlinedUsedName = isInlinedUsedName;
|
|
199
207
|
module.exports.isInlineExportsEnabled = isInlineExportsEnabled;
|
|
200
208
|
module.exports.toInlinedValue = toInlinedValue;
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { UsageState } = require("../ExportsInfo");
|
|
8
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
9
9
|
const JavascriptParser = require("../javascript/JavascriptParser");
|
|
10
10
|
|
|
11
11
|
/** @import Compilation from "../Compilation" */
|
|
12
|
-
/** @import Dependency, { GetConditionFn } from "../Dependency" */
|
|
13
|
-
/** @import Module from "../Module" */
|
|
14
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
15
|
-
/** @import { ParserState } from "../Parser" */
|
|
12
|
+
/** @import Dependency, { GetConditionFn } from "../graph/Dependency" */
|
|
13
|
+
/** @import Module from "../module/Module" */
|
|
14
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
15
|
+
/** @import { ParserState } from "../module/Parser" */
|
|
16
16
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
17
17
|
|
|
18
18
|
/** @typedef {boolean | ((compilation: Compilation, module: Module) => boolean)} PureCondition */
|
|
@@ -485,12 +485,4 @@ module.exports.getInnerGraphUtils = (compilation) => {
|
|
|
485
485
|
return utils;
|
|
486
486
|
};
|
|
487
487
|
|
|
488
|
-
/**
|
|
489
|
-
* Usage callback map.
|
|
490
|
-
* @param {Dependency} dependency the dependency
|
|
491
|
-
* @param {UsedByExports | undefined} usedByExports usedByExports info
|
|
492
|
-
* @param {ModuleGraph} moduleGraph moduleGraph
|
|
493
|
-
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
494
|
-
*/
|
|
495
|
-
|
|
496
488
|
module.exports.topLevelSymbolTag = topLevelSymbolTag;
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
const {
|
|
9
|
+
harmonySpecifierTag
|
|
10
|
+
} = require("../dependencies/esm/ESMImportDependencyParserPlugin");
|
|
11
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
8
12
|
const {
|
|
9
13
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
10
14
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
11
|
-
} = require("../ModuleTypeConstants");
|
|
12
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
13
|
-
const {
|
|
14
|
-
harmonySpecifierTag
|
|
15
|
-
} = require("../dependencies/HarmonyImportDependencyParserPlugin");
|
|
16
|
-
const HarmonyImportSideEffectDependency = require("../dependencies/HarmonyImportSideEffectDependency");
|
|
17
|
-
const PureExpressionDependency = require("../dependencies/PureExpressionDependency");
|
|
15
|
+
} = require("../module/ModuleTypeConstants");
|
|
16
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
18
17
|
const { getInnerGraphUtils, topLevelSymbolTag } = require("./InnerGraph");
|
|
18
|
+
const PureExpressionDependency = require("./PureExpressionDependency");
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* @import {
|
|
@@ -36,8 +36,8 @@ const { getInnerGraphUtils, topLevelSymbolTag } = require("./InnerGraph");
|
|
|
36
36
|
*/
|
|
37
37
|
/** @import Compilation from "../Compilation" */
|
|
38
38
|
/** @import Compiler from "../Compiler" */
|
|
39
|
-
/** @import Dependency from "../Dependency" */
|
|
40
|
-
/** @import Module from "../Module" */
|
|
39
|
+
/** @import Dependency from "../graph/Dependency" */
|
|
40
|
+
/** @import Module from "../module/Module" */
|
|
41
41
|
/** @import JavascriptParser, { Range } from "../javascript/JavascriptParser" */
|
|
42
42
|
/** @import { TopLevelSymbol } from "./InnerGraph" */
|
|
43
43
|
|
|
@@ -122,10 +122,8 @@ class InnerGraphPlugin {
|
|
|
122
122
|
// nodes that have a TopLevelSymbol assigned and
|
|
123
123
|
// variables are tagged with the assigned TopLevelSymbol
|
|
124
124
|
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
// 2. classes (class declaration, class expression)
|
|
128
|
-
// 3. variable declarators (const x = ...)
|
|
125
|
+
// Three kinds of node carry a symbol: a full statement, a class, and a
|
|
126
|
+
// variable declarator.
|
|
129
127
|
|
|
130
128
|
/** @type {WeakMap<Node | MaybeNamedFunctionDeclaration | MaybeNamedClassDeclaration, TopLevelSymbol>} */
|
|
131
129
|
let statementWithTopLevelSymbol = new WeakMap();
|
|
@@ -187,7 +185,7 @@ class InnerGraphPlugin {
|
|
|
187
185
|
const moduleGraph = compilation.moduleGraph;
|
|
188
186
|
for (const dep of module.dependencies) {
|
|
189
187
|
if (
|
|
190
|
-
dep
|
|
188
|
+
isDependencyKind(dep, "esm-side-effect-import") &&
|
|
191
189
|
dep.request === source
|
|
192
190
|
) {
|
|
193
191
|
const m = moduleGraph.getModule(dep);
|
|
@@ -360,16 +358,12 @@ class InnerGraphPlugin {
|
|
|
360
358
|
// During real walking we set the TopLevelSymbol state to the assigned
|
|
361
359
|
// TopLevelSymbol by using the fill datastructures.
|
|
362
360
|
|
|
363
|
-
//
|
|
364
|
-
//
|
|
365
|
-
//
|
|
366
|
-
// minimizing. Otherwise symbols used there might not exist anymore
|
|
367
|
-
// as they are removed as unused by this optimization
|
|
361
|
+
// A `PureExpressionDependency` is sometimes added too, so a pure
|
|
362
|
+
// expression is skipped even where minimizing leaves it: the symbols it
|
|
363
|
+
// uses may have been removed as unused by this optimization.
|
|
368
364
|
|
|
369
|
-
//
|
|
370
|
-
//
|
|
371
|
-
// referenced TopLevelSymbol. This way we get a graph of all
|
|
372
|
-
// TopLevelSymbols.
|
|
365
|
+
// A reference registers a dependency from the symbol in state to the one
|
|
366
|
+
// referenced, which is how the graph of all of them is built.
|
|
373
367
|
|
|
374
368
|
// The following hooks are called during walking:
|
|
375
369
|
|