@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.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 +6 -8
- package/changes.json +8 -16
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +224 -106
- package/lib/Compiler.js +19 -19
- 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 +8 -8
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +36 -22
- 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 +8 -8
- 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 +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +8 -10
- package/lib/cache/ResolverCachePlugin.js +8 -4
- 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 +1 -1
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +144 -48
- package/lib/config/getClaimedAssetTypes.js +21 -13
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +10 -0
- 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 +36 -25
- package/lib/context/ContextModuleFactory.js +13 -10
- package/lib/context/ContextReplacementPlugin.js +3 -3
- package/lib/css/CssGenerator.js +38 -31
- 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 +682 -291
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6985 -5125
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +52 -19
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
- 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} +166 -33
- 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} +35 -30
- 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} +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} +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} +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} +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} +369 -92
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
- 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} +23 -16
- 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} +19 -17
- 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} +133 -118
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
- 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} +99 -84
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
- 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 +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} +51 -141
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
- 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} +119 -98
- 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 +16 -18
- 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} +31 -33
- 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} +154 -26
- 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/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +4 -4
- 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} +79 -55
- 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} +130 -82
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
- package/lib/{util → graph}/findGraphRoots.js +14 -8
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -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 +31 -21
- package/lib/html/HtmlGenerator.js +107 -43
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +172 -76
- package/lib/html/HtmlParser.js +503 -153
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +2 -1
- package/lib/html/htmlMinify.js +111 -41
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -13952
- 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 +303 -97
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
- 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} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +17 -17
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +440 -211
- package/lib/javascript/JavascriptParser.js +220 -134
- 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 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +10 -10
- 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 +160 -166
- 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 +31 -21
- 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} +16 -14
- package/lib/{Module.js → module/Module.js} +119 -51
- 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 +58 -6
- 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 +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +229 -214
- 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} +17 -17
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +584 -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 +20 -12
- 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 +18 -18
- package/lib/optimize/SplitChunksPlugin.js +713 -155
- 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} +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 +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 +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 +11 -12
- 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 +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 +65 -44
- 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 +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 +7 -4
- 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 +6 -6
- 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} +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 +1 -1
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +47 -16
- 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 +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
- 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} +145 -63
- package/lib/{Template.js → template/Template.js} +13 -11
- 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 +349 -44
- 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 +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +94 -15
- 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/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +294 -102
- 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 +5 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
- 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 +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- 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 +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 +55 -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 +19355 -13873
- 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}/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
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const util = require("util");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const { first } = require("./util/SetHelpers");
|
|
13
|
-
const SortableSet = require("./util/SortableSet");
|
|
9
|
+
const { DEFAULTS } = require("../config/defaults");
|
|
10
|
+
const { first } = require("../util/SetHelpers");
|
|
11
|
+
const SortableSet = require("../util/SortableSet");
|
|
14
12
|
const {
|
|
15
13
|
compareIds,
|
|
16
14
|
compareIterables,
|
|
@@ -18,37 +16,39 @@ const {
|
|
|
18
16
|
compareModulesByIdentifier,
|
|
19
17
|
compareSelect,
|
|
20
18
|
concatComparators
|
|
21
|
-
} = require("
|
|
22
|
-
const createHash = require("
|
|
23
|
-
const findGraphRoots = require("./util/findGraphRoots");
|
|
19
|
+
} = require("../util/comparators");
|
|
20
|
+
const createHash = require("../util/createHash");
|
|
24
21
|
const {
|
|
25
22
|
RuntimeSpecMap,
|
|
26
23
|
RuntimeSpecSet,
|
|
27
|
-
forEachRuntime,
|
|
28
24
|
mergeRuntime,
|
|
29
25
|
runtimeToString
|
|
30
|
-
} = require("
|
|
26
|
+
} = require("../util/runtime");
|
|
27
|
+
const ModuleGraphConnection = require("./ModuleGraphConnection");
|
|
28
|
+
const findGraphRoots = require("./findGraphRoots");
|
|
31
29
|
|
|
32
30
|
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
33
31
|
/** @import Chunk, { Chunks, Entrypoints, ChunkId } from "./Chunk" */
|
|
34
32
|
/** @import ChunkGroup from "./ChunkGroup" */
|
|
33
|
+
/** @import Dependency from "./Dependency" */
|
|
34
|
+
/** @import Entrypoint from "./Entrypoint" */
|
|
35
35
|
/**
|
|
36
36
|
* @import Module, {
|
|
37
37
|
* SourceType,
|
|
38
38
|
* SourceTypes,
|
|
39
39
|
* ReadOnlyRuntimeRequirements,
|
|
40
40
|
* RuntimeRequirements
|
|
41
|
-
* } from "
|
|
41
|
+
* } from "../module/Module"
|
|
42
42
|
*/
|
|
43
43
|
/** @import ModuleGraph from "./ModuleGraph" */
|
|
44
44
|
/** @import { ConnectionState } from "./ModuleGraphConnection" */
|
|
45
|
-
/** @import RuntimeModule from "
|
|
46
|
-
/** @import { HashFunction } from "
|
|
47
|
-
/** @import { RuntimeSpec } from "
|
|
45
|
+
/** @import RuntimeModule from "../runtime/RuntimeModule" */
|
|
46
|
+
/** @import { HashFunction } from "../util/Hash" */
|
|
47
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
48
48
|
/**
|
|
49
49
|
* @import {
|
|
50
50
|
* JavascriptModuleBuildMeta
|
|
51
|
-
* } from "
|
|
51
|
+
* } from "../javascript/JavascriptModule"
|
|
52
52
|
*/
|
|
53
53
|
|
|
54
54
|
/** @type {ReadonlySet<string>} */
|
|
@@ -71,6 +71,15 @@ const activeStateToString = (state) => {
|
|
|
71
71
|
|
|
72
72
|
const compareModuleIterables = compareIterables(compareModulesByIdentifier);
|
|
73
73
|
|
|
74
|
+
/** @type {(a: RuntimeModule, b: RuntimeModule) => -1 | 0 | 1} */
|
|
75
|
+
const compareRuntimeModulesByStage = concatComparators(
|
|
76
|
+
compareSelect(
|
|
77
|
+
(module) => /** @type {RuntimeModule} */ (module).stage,
|
|
78
|
+
compareIds
|
|
79
|
+
),
|
|
80
|
+
compareModulesByIdentifier
|
|
81
|
+
);
|
|
82
|
+
|
|
74
83
|
/** @typedef {(c: Chunk, chunkGraph: ChunkGraph) => boolean} ChunkFilterPredicate */
|
|
75
84
|
/** @typedef {(m: Module) => boolean} ModuleFilterPredicate */
|
|
76
85
|
/** @typedef {[Module, Entrypoint | undefined]} EntryModuleWithChunkGroup */
|
|
@@ -106,7 +115,7 @@ const getArray = (set) => [...set];
|
|
|
106
115
|
|
|
107
116
|
/**
|
|
108
117
|
* Gets module runtimes.
|
|
109
|
-
* @param {SortableChunks} chunks the chunks
|
|
118
|
+
* @param {SortableChunks | readonly Chunk[]} chunks the chunks
|
|
110
119
|
* @returns {RuntimeSpecSet} runtimes
|
|
111
120
|
*/
|
|
112
121
|
const getModuleRuntimes = (chunks) => {
|
|
@@ -155,6 +164,12 @@ const modulesBySourceType = (sourceTypesByModule) => (set) => {
|
|
|
155
164
|
/** @type {ModulesBySourceType} */
|
|
156
165
|
const defaultModulesBySourceType = modulesBySourceType(undefined);
|
|
157
166
|
|
|
167
|
+
// What `getModuleChunksIterable` answers for a module in no chunk. Frozen, so a
|
|
168
|
+
// caller ignoring "do not modify" throws here rather than corrupting the answer
|
|
169
|
+
// every such module shares.
|
|
170
|
+
/** @type {readonly Chunk[]} */
|
|
171
|
+
const EMPTY_CHUNKS = Object.freeze([]);
|
|
172
|
+
|
|
158
173
|
/**
|
|
159
174
|
* Defines the module set to array function type used by this module.
|
|
160
175
|
* @typedef {(set: SortableSet<Module>) => Module[]} ModuleSetToArrayFunction
|
|
@@ -242,8 +257,15 @@ const isAvailableChunk = (a, b) => {
|
|
|
242
257
|
|
|
243
258
|
class ChunkGraphModule {
|
|
244
259
|
constructor() {
|
|
245
|
-
|
|
246
|
-
|
|
260
|
+
// Most modules are in no chunk or one, so: nothing, an array holding that one
|
|
261
|
+
// chunk, a SortableSet once a second arrives. A set costs 200 bytes against
|
|
262
|
+
// an array's 56, and of 950 modules 948 hold none, 934 one in development.
|
|
263
|
+
/** @type {SortableChunks | readonly Chunk[] | undefined} */
|
|
264
|
+
this.chunks = undefined;
|
|
265
|
+
// What `getModuleRuntimes` answered, for the states holding no set to cache
|
|
266
|
+
// in. Dropped wherever `chunks` changes, as the set's own cache is.
|
|
267
|
+
/** @type {RuntimeSpecSet | undefined} */
|
|
268
|
+
this.runtimes = undefined;
|
|
247
269
|
/** @type {EntryInChunks | undefined} */
|
|
248
270
|
this.entryInChunks = undefined;
|
|
249
271
|
/** @type {RuntimeInChunks | undefined} */
|
|
@@ -406,6 +428,45 @@ class ChunkGraph {
|
|
|
406
428
|
].sort(compareModulesByIdentifier);
|
|
407
429
|
}
|
|
408
430
|
|
|
431
|
+
/**
|
|
432
|
+
* Records that a chunk contains a module, growing what the record holds from
|
|
433
|
+
* nothing to the one chunk to a set.
|
|
434
|
+
* @param {ChunkGraphModule} cgm the module's chunk graph record
|
|
435
|
+
* @param {Chunk} chunk the chunk containing it
|
|
436
|
+
* @returns {void}
|
|
437
|
+
*/
|
|
438
|
+
static _addModuleChunk(cgm, chunk) {
|
|
439
|
+
const { chunks } = cgm;
|
|
440
|
+
cgm.runtimes = undefined;
|
|
441
|
+
if (chunks === undefined) {
|
|
442
|
+
// Frozen because `getModuleChunks` hands this very array out: nothing here
|
|
443
|
+
// writes to it after this, and a caller ignoring "do not modify" would
|
|
444
|
+
// otherwise change membership without the chunk side hearing of it.
|
|
445
|
+
cgm.chunks = Object.freeze([chunk]);
|
|
446
|
+
} else if (chunks instanceof Set) {
|
|
447
|
+
chunks.add(chunk);
|
|
448
|
+
} else if (chunks[0] !== chunk) {
|
|
449
|
+
const set = new SortableSet(chunks);
|
|
450
|
+
set.add(chunk);
|
|
451
|
+
cgm.chunks = set;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Records that a chunk no longer contains a module. A set is not shrunk back
|
|
457
|
+
* to an array, so a module that was in two chunks keeps the set.
|
|
458
|
+
* @param {ChunkGraphModule} cgm the module's chunk graph record
|
|
459
|
+
* @param {Chunk} chunk the chunk that no longer contains it
|
|
460
|
+
* @returns {void}
|
|
461
|
+
*/
|
|
462
|
+
static _removeModuleChunk(cgm, chunk) {
|
|
463
|
+
const { chunks } = cgm;
|
|
464
|
+
if (chunks === undefined) return;
|
|
465
|
+
cgm.runtimes = undefined;
|
|
466
|
+
if (chunks instanceof Set) chunks.delete(chunk);
|
|
467
|
+
else if (chunks[0] === chunk) cgm.chunks = undefined;
|
|
468
|
+
}
|
|
469
|
+
|
|
409
470
|
/**
|
|
410
471
|
* Connects chunk and module.
|
|
411
472
|
* @param {Chunk} chunk the new chunk
|
|
@@ -415,7 +476,7 @@ class ChunkGraph {
|
|
|
415
476
|
connectChunkAndModule(chunk, module) {
|
|
416
477
|
const cgm = this._getChunkGraphModule(module);
|
|
417
478
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
418
|
-
|
|
479
|
+
ChunkGraph._addModuleChunk(cgm, chunk);
|
|
419
480
|
cgc.modules.add(module);
|
|
420
481
|
}
|
|
421
482
|
|
|
@@ -431,7 +492,7 @@ class ChunkGraph {
|
|
|
431
492
|
cgc.modules.delete(module);
|
|
432
493
|
// No need to invalidate cgc._modulesBySourceType because we modified cgc.modules anyway
|
|
433
494
|
if (cgc.sourceTypesByModule) cgc.sourceTypesByModule.delete(module);
|
|
434
|
-
|
|
495
|
+
ChunkGraph._removeModuleChunk(cgm, chunk);
|
|
435
496
|
}
|
|
436
497
|
|
|
437
498
|
/**
|
|
@@ -443,7 +504,7 @@ class ChunkGraph {
|
|
|
443
504
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
444
505
|
for (const module of cgc.modules) {
|
|
445
506
|
const cgm = this._getChunkGraphModule(module);
|
|
446
|
-
|
|
507
|
+
ChunkGraph._removeModuleChunk(cgm, chunk);
|
|
447
508
|
}
|
|
448
509
|
cgc.modules.clear();
|
|
449
510
|
chunk.disconnectFromGroups();
|
|
@@ -516,13 +577,16 @@ class ChunkGraph {
|
|
|
516
577
|
const oldCgm = this._getChunkGraphModule(oldModule);
|
|
517
578
|
const newCgm = this._getChunkGraphModule(newModule);
|
|
518
579
|
|
|
519
|
-
|
|
520
|
-
const
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
580
|
+
if (oldCgm.chunks !== undefined) {
|
|
581
|
+
for (const chunk of oldCgm.chunks) {
|
|
582
|
+
const cgc = this._getChunkGraphChunk(chunk);
|
|
583
|
+
cgc.modules.delete(oldModule);
|
|
584
|
+
cgc.modules.add(newModule);
|
|
585
|
+
ChunkGraph._addModuleChunk(newCgm, chunk);
|
|
586
|
+
}
|
|
587
|
+
oldCgm.chunks = undefined;
|
|
588
|
+
oldCgm.runtimes = undefined;
|
|
524
589
|
}
|
|
525
|
-
oldCgm.chunks.clear();
|
|
526
590
|
|
|
527
591
|
if (oldCgm.entryInChunks !== undefined) {
|
|
528
592
|
if (newCgm.entryInChunks === undefined) {
|
|
@@ -618,8 +682,8 @@ class ChunkGraph {
|
|
|
618
682
|
* @returns {Iterable<Chunk>} iterable of chunks (do not modify)
|
|
619
683
|
*/
|
|
620
684
|
getModuleChunksIterable(module) {
|
|
621
|
-
const
|
|
622
|
-
return
|
|
685
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
686
|
+
return chunks === undefined ? EMPTY_CHUNKS : chunks;
|
|
623
687
|
}
|
|
624
688
|
|
|
625
689
|
/**
|
|
@@ -629,9 +693,12 @@ class ChunkGraph {
|
|
|
629
693
|
* @returns {Iterable<Chunk>} iterable of chunks (do not modify)
|
|
630
694
|
*/
|
|
631
695
|
getOrderedModuleChunksIterable(module, sortFn) {
|
|
632
|
-
const
|
|
633
|
-
|
|
634
|
-
|
|
696
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
697
|
+
if (chunks === undefined) return EMPTY_CHUNKS;
|
|
698
|
+
// One chunk is in order whatever the comparer says.
|
|
699
|
+
if (!(chunks instanceof Set)) return chunks;
|
|
700
|
+
chunks.sortWith(sortFn);
|
|
701
|
+
return chunks;
|
|
635
702
|
}
|
|
636
703
|
|
|
637
704
|
/**
|
|
@@ -640,8 +707,13 @@ class ChunkGraph {
|
|
|
640
707
|
* @returns {Chunk[]} array of chunks (cached, do not modify)
|
|
641
708
|
*/
|
|
642
709
|
getModuleChunks(module) {
|
|
643
|
-
const
|
|
644
|
-
return
|
|
710
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
711
|
+
if (chunks === undefined) return /** @type {Chunk[]} */ (EMPTY_CHUNKS);
|
|
712
|
+
// The array a module in one chunk holds is already the answer, and frozen,
|
|
713
|
+
// as the type this returns cannot say.
|
|
714
|
+
return chunks instanceof Set
|
|
715
|
+
? chunks.getFromCache(getArray)
|
|
716
|
+
: /** @type {Chunk[]} */ (chunks);
|
|
645
717
|
}
|
|
646
718
|
|
|
647
719
|
/**
|
|
@@ -650,8 +722,9 @@ class ChunkGraph {
|
|
|
650
722
|
* @returns {number} the number of chunk which contain the module
|
|
651
723
|
*/
|
|
652
724
|
getNumberOfModuleChunks(module) {
|
|
653
|
-
const
|
|
654
|
-
return
|
|
725
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
726
|
+
if (chunks === undefined) return 0;
|
|
727
|
+
return chunks instanceof Set ? chunks.size : chunks.length;
|
|
655
728
|
}
|
|
656
729
|
|
|
657
730
|
/**
|
|
@@ -661,7 +734,18 @@ class ChunkGraph {
|
|
|
661
734
|
*/
|
|
662
735
|
getModuleRuntimes(module) {
|
|
663
736
|
const cgm = this._getChunkGraphModule(module);
|
|
664
|
-
|
|
737
|
+
const { chunks } = cgm;
|
|
738
|
+
if (chunks instanceof Set) {
|
|
739
|
+
return chunks.getFromUnorderedCache(getModuleRuntimes);
|
|
740
|
+
}
|
|
741
|
+
// Kept on the record, which neither an array nor nothing can do: a build asks
|
|
742
|
+
// this of every module several times, and scope hoisting leaves most of them
|
|
743
|
+
// in no chunk at all.
|
|
744
|
+
if (cgm.runtimes === undefined) {
|
|
745
|
+
cgm.runtimes =
|
|
746
|
+
chunks === undefined ? new RuntimeSpecSet() : getModuleRuntimes(chunks);
|
|
747
|
+
}
|
|
748
|
+
return cgm.runtimes;
|
|
665
749
|
}
|
|
666
750
|
|
|
667
751
|
/**
|
|
@@ -846,6 +930,7 @@ class ChunkGraph {
|
|
|
846
930
|
getChunkModuleIdMap(chunk, filterFn, includeAllChunks = false) {
|
|
847
931
|
/** @type {ChunkModuleIdMap} */
|
|
848
932
|
const chunkModuleIdMap = Object.create(null);
|
|
933
|
+
const comparator = compareModulesById(this);
|
|
849
934
|
|
|
850
935
|
for (const asyncChunk of includeAllChunks
|
|
851
936
|
? chunk.getAllReferencedChunks()
|
|
@@ -854,7 +939,7 @@ class ChunkGraph {
|
|
|
854
939
|
let array;
|
|
855
940
|
for (const module of this.getOrderedChunkModulesIterable(
|
|
856
941
|
asyncChunk,
|
|
857
|
-
|
|
942
|
+
comparator
|
|
858
943
|
)) {
|
|
859
944
|
if (filterFn(module)) {
|
|
860
945
|
if (array === undefined) {
|
|
@@ -886,6 +971,7 @@ class ChunkGraph {
|
|
|
886
971
|
) {
|
|
887
972
|
/** @type {ChunkModuleHashMap} */
|
|
888
973
|
const chunkModuleHashMap = Object.create(null);
|
|
974
|
+
const comparator = compareModulesById(this);
|
|
889
975
|
|
|
890
976
|
for (const asyncChunk of includeAllChunks
|
|
891
977
|
? chunk.getAllReferencedChunks()
|
|
@@ -894,7 +980,7 @@ class ChunkGraph {
|
|
|
894
980
|
let idToHashMap;
|
|
895
981
|
for (const module of this.getOrderedChunkModulesIterable(
|
|
896
982
|
asyncChunk,
|
|
897
|
-
|
|
983
|
+
comparator
|
|
898
984
|
)) {
|
|
899
985
|
if (filterFn(module)) {
|
|
900
986
|
if (idToHashMap === undefined) {
|
|
@@ -1350,7 +1436,7 @@ class ChunkGraph {
|
|
|
1350
1436
|
/** @type {Chunks} */
|
|
1351
1437
|
const set = new Set();
|
|
1352
1438
|
for (const chunkGroup of chunk.groupsIterable) {
|
|
1353
|
-
if (chunkGroup
|
|
1439
|
+
if (chunkGroup.isEntrypoint()) {
|
|
1354
1440
|
const entrypointChunk = chunkGroup.getEntrypointChunk();
|
|
1355
1441
|
const cgc = this._getChunkGraphChunk(entrypointChunk);
|
|
1356
1442
|
for (const chunkGroup of cgc.entryModules.values()) {
|
|
@@ -1379,7 +1465,7 @@ class ChunkGraph {
|
|
|
1379
1465
|
const entrypoints = new Set();
|
|
1380
1466
|
|
|
1381
1467
|
for (const chunkGroup of chunk.groupsIterable) {
|
|
1382
|
-
if (chunkGroup
|
|
1468
|
+
if (chunkGroup.isEntrypoint()) {
|
|
1383
1469
|
if (entrypoints.has(chunkGroup)) continue;
|
|
1384
1470
|
entrypoints.add(chunkGroup);
|
|
1385
1471
|
// `entrypoints` doubles as the visited set: a diamond of `dependOn`
|
|
@@ -1389,7 +1475,7 @@ class ChunkGraph {
|
|
|
1389
1475
|
const current = queue[i];
|
|
1390
1476
|
let hasChildrenEntrypoint = false;
|
|
1391
1477
|
for (const child of current.childrenIterable) {
|
|
1392
|
-
if (child
|
|
1478
|
+
if (child.isEntrypoint() && child.dependOn(current)) {
|
|
1393
1479
|
hasChildrenEntrypoint = true;
|
|
1394
1480
|
if (!entrypoints.has(child)) {
|
|
1395
1481
|
entrypoints.add(child);
|
|
@@ -1458,15 +1544,7 @@ class ChunkGraph {
|
|
|
1458
1544
|
getChunkRuntimeModulesInOrder(chunk) {
|
|
1459
1545
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
1460
1546
|
const array = [...cgc.runtimeModules];
|
|
1461
|
-
array.sort(
|
|
1462
|
-
concatComparators(
|
|
1463
|
-
compareSelect(
|
|
1464
|
-
(r) => /** @type {RuntimeModule} */ (r).stage,
|
|
1465
|
-
compareIds
|
|
1466
|
-
),
|
|
1467
|
-
compareModulesByIdentifier
|
|
1468
|
-
)
|
|
1469
|
-
);
|
|
1547
|
+
array.sort(compareRuntimeModulesByStage);
|
|
1470
1548
|
return array;
|
|
1471
1549
|
}
|
|
1472
1550
|
|
|
@@ -1860,6 +1938,22 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1860
1938
|
const activeNamespaceModules = new Set();
|
|
1861
1939
|
/** @type {Map<string, Module | Set<Module>>} */
|
|
1862
1940
|
const connectedModules = new Map();
|
|
1941
|
+
// a dependency whose target is missing has no connection, so without
|
|
1942
|
+
// these it hashes like one whose target is inactive, while templates
|
|
1943
|
+
// print a missing-module throw only for the first
|
|
1944
|
+
/** @type {string[] | undefined} */
|
|
1945
|
+
let inactiveRequests;
|
|
1946
|
+
/**
|
|
1947
|
+
* Records an inactive connection by its request, as templates print nothing of its target.
|
|
1948
|
+
* @param {ModuleGraphConnection} connection inactive connection
|
|
1949
|
+
*/
|
|
1950
|
+
const addInactive = (connection) => {
|
|
1951
|
+
// only connections without an origin module lack a dependency
|
|
1952
|
+
const dependency = /** @type {Dependency} */ (connection.dependency);
|
|
1953
|
+
(inactiveRequests || (inactiveRequests = [])).push(
|
|
1954
|
+
`${dependency.getResourceIdentifier()}`
|
|
1955
|
+
);
|
|
1956
|
+
};
|
|
1863
1957
|
/**
|
|
1864
1958
|
* Process connection.
|
|
1865
1959
|
* @param {ModuleGraphConnection} connection connection
|
|
@@ -1885,37 +1979,49 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1885
1979
|
if (runtime === undefined || typeof runtime === "string") {
|
|
1886
1980
|
for (const connection of connections) {
|
|
1887
1981
|
const state = connection.getActiveState(runtime);
|
|
1888
|
-
if (state === false)
|
|
1982
|
+
if (state === false) {
|
|
1983
|
+
addInactive(connection);
|
|
1984
|
+
continue;
|
|
1985
|
+
}
|
|
1889
1986
|
processConnection(connection, state === true ? "T" : "O");
|
|
1890
1987
|
}
|
|
1891
1988
|
} else {
|
|
1892
1989
|
// cspell:word Tnamespace
|
|
1990
|
+
// the runtime is sorted once, so every connection reads it in the same order
|
|
1991
|
+
runtime.sort();
|
|
1893
1992
|
for (const connection of connections) {
|
|
1894
|
-
/** @type {
|
|
1895
|
-
|
|
1993
|
+
/** @type {ConnectionState | undefined} */
|
|
1994
|
+
let firstState;
|
|
1995
|
+
let sameState = true;
|
|
1896
1996
|
let stateInfo = "";
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
(
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
}
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
if (
|
|
1907
|
-
|
|
1908
|
-
|
|
1997
|
+
for (const runtimeName of runtime) {
|
|
1998
|
+
const state = connection.getActiveState(runtimeName);
|
|
1999
|
+
if (firstState === undefined) {
|
|
2000
|
+
firstState = state;
|
|
2001
|
+
} else if (state !== firstState) {
|
|
2002
|
+
sameState = false;
|
|
2003
|
+
}
|
|
2004
|
+
stateInfo += activeStateToString(state) + runtimeName;
|
|
2005
|
+
}
|
|
2006
|
+
if (sameState) {
|
|
2007
|
+
if (firstState === false) {
|
|
2008
|
+
addInactive(connection);
|
|
2009
|
+
continue;
|
|
2010
|
+
}
|
|
1909
2011
|
stateInfo = activeStateToString(
|
|
1910
2012
|
/** @type {ConnectionState} */
|
|
1911
|
-
(
|
|
2013
|
+
(firstState)
|
|
1912
2014
|
);
|
|
1913
2015
|
}
|
|
1914
2016
|
processConnection(connection, stateInfo);
|
|
1915
2017
|
}
|
|
1916
2018
|
}
|
|
1917
2019
|
// cspell:word Tnamespace
|
|
1918
|
-
if (
|
|
2020
|
+
if (
|
|
2021
|
+
activeNamespaceModules.size === 0 &&
|
|
2022
|
+
connectedModules.size === 0 &&
|
|
2023
|
+
inactiveRequests === undefined
|
|
2024
|
+
) {
|
|
1919
2025
|
return graphHash;
|
|
1920
2026
|
}
|
|
1921
2027
|
const connectedModulesInOrder =
|
|
@@ -1966,6 +2072,11 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1966
2072
|
addModuleToHash(modules);
|
|
1967
2073
|
}
|
|
1968
2074
|
}
|
|
2075
|
+
if (inactiveRequests !== undefined) {
|
|
2076
|
+
// connections arrive as resolutions finish, so sort like connectedModules
|
|
2077
|
+
if (inactiveRequests.length > 1) inactiveRequests.sort();
|
|
2078
|
+
hash.update(JSON.stringify(inactiveRequests));
|
|
2079
|
+
}
|
|
1969
2080
|
hash.update(graphHash);
|
|
1970
2081
|
return hash.digest("hex");
|
|
1971
2082
|
});
|
|
@@ -1981,7 +2092,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1981
2092
|
return cgc.runtimeRequirementsInTree;
|
|
1982
2093
|
}
|
|
1983
2094
|
|
|
1984
|
-
// TODO
|
|
2095
|
+
// TODO in the next major release: remove
|
|
1985
2096
|
/**
|
|
1986
2097
|
* Gets chunk graph for module.
|
|
1987
2098
|
* @deprecated
|
|
@@ -2003,9 +2114,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2003
2114
|
const chunkGraph = chunkGraphForModuleMap.get(module);
|
|
2004
2115
|
if (!chunkGraph) {
|
|
2005
2116
|
throw new Error(
|
|
2006
|
-
`${
|
|
2007
|
-
deprecateMessage
|
|
2008
|
-
}: There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)`
|
|
2117
|
+
`${deprecateMessage}: There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)`
|
|
2009
2118
|
);
|
|
2010
2119
|
}
|
|
2011
2120
|
return chunkGraph;
|
|
@@ -2017,7 +2126,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2017
2126
|
return newFn(module);
|
|
2018
2127
|
}
|
|
2019
2128
|
|
|
2020
|
-
// TODO
|
|
2129
|
+
// TODO in the next major release: remove
|
|
2021
2130
|
// BACKWARD-COMPAT START
|
|
2022
2131
|
/**
|
|
2023
2132
|
* Sets chunk graph for module.
|
|
@@ -2061,9 +2170,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2061
2170
|
const chunkGraph = chunkGraphForChunkMap.get(chunk);
|
|
2062
2171
|
if (!chunkGraph) {
|
|
2063
2172
|
throw new Error(
|
|
2064
|
-
`${
|
|
2065
|
-
deprecateMessage
|
|
2066
|
-
}There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)`
|
|
2173
|
+
`${deprecateMessage}There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)`
|
|
2067
2174
|
);
|
|
2068
2175
|
}
|
|
2069
2176
|
return chunkGraph;
|
|
@@ -2098,19 +2205,19 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2098
2205
|
// BACKWARD-COMPAT END
|
|
2099
2206
|
}
|
|
2100
2207
|
|
|
2101
|
-
// TODO
|
|
2208
|
+
// TODO in the next major release: remove
|
|
2102
2209
|
/** @type {WeakMap<Module, ChunkGraph>} */
|
|
2103
2210
|
const chunkGraphForModuleMap = new WeakMap();
|
|
2104
2211
|
|
|
2105
|
-
// TODO
|
|
2212
|
+
// TODO in the next major release: remove
|
|
2106
2213
|
/** @type {WeakMap<Chunk, ChunkGraph>} */
|
|
2107
2214
|
const chunkGraphForChunkMap = new WeakMap();
|
|
2108
2215
|
|
|
2109
|
-
// TODO
|
|
2216
|
+
// TODO in the next major release: remove
|
|
2110
2217
|
/** @type {Map<string, (module: Module) => ChunkGraph>} */
|
|
2111
2218
|
const deprecateGetChunkGraphForModuleMap = new Map();
|
|
2112
2219
|
|
|
2113
|
-
// TODO
|
|
2220
|
+
// TODO in the next major release: remove
|
|
2114
2221
|
/** @type {Map<string, (chunk: Chunk) => ChunkGraph>} */
|
|
2115
2222
|
const deprecateGetChunkGraphForChunkMap = new Map();
|
|
2116
2223
|
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const util = require("util");
|
|
9
|
-
const SortableSet = require("
|
|
9
|
+
const SortableSet = require("../util/SortableSet");
|
|
10
10
|
const {
|
|
11
11
|
compareChunks,
|
|
12
12
|
compareIterables,
|
|
13
13
|
compareLocations
|
|
14
|
-
} = require("
|
|
14
|
+
} = require("../util/comparators");
|
|
15
15
|
|
|
16
16
|
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
17
17
|
/** @import Chunk from "./Chunk" */
|
|
18
18
|
/** @import ChunkGraph from "./ChunkGraph" */
|
|
19
19
|
/** @import { DependencyLocation } from "./Dependency" */
|
|
20
20
|
/** @import Entrypoint from "./Entrypoint" */
|
|
21
|
-
/** @import Module from "
|
|
21
|
+
/** @import Module from "../module/Module" */
|
|
22
22
|
/** @import ModuleGraph from "./ModuleGraph" */
|
|
23
23
|
|
|
24
24
|
/** @typedef {{ module: Module | null, loc: DependencyLocation, request: string }} OriginRecord */
|
|
@@ -299,6 +299,14 @@ class ChunkGroup {
|
|
|
299
299
|
return false;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
+
/**
|
|
303
|
+
* Returns whether this chunk group is an entrypoint, an async one (e.g. a worker) included.
|
|
304
|
+
* @returns {this is Entrypoint} true for an entrypoint
|
|
305
|
+
*/
|
|
306
|
+
isEntrypoint() {
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
|
|
302
310
|
/**
|
|
303
311
|
* Adds a child chunk group to the current group.
|
|
304
312
|
* @param {ChunkGroup} group chunk group to add
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const makeSerializable = require("
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
10
|
/** @import AsyncDependenciesBlock from "./AsyncDependenciesBlock" */
|
|
11
11
|
/** @import Dependency, { UpdateHashContext } from "./Dependency" */
|
|
@@ -13,9 +13,9 @@ const makeSerializable = require("./util/makeSerializable");
|
|
|
13
13
|
* @import {
|
|
14
14
|
* ObjectDeserializerContext,
|
|
15
15
|
* ObjectSerializerContext
|
|
16
|
-
* } from "
|
|
16
|
+
* } from "../serialization/ObjectMiddleware"
|
|
17
17
|
*/
|
|
18
|
-
/** @import Hash from "
|
|
18
|
+
/** @import Hash from "../util/Hash" */
|
|
19
19
|
|
|
20
20
|
/** @typedef {(d: Dependency) => boolean} DependencyFilterFunction */
|
|
21
21
|
|
|
@@ -37,6 +37,14 @@ class DependenciesBlock {
|
|
|
37
37
|
this.parent = undefined;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Returns whether this block is an async block, loaded on demand in its own chunk group.
|
|
42
|
+
* @returns {this is AsyncDependenciesBlock} true for an AsyncDependenciesBlock
|
|
43
|
+
*/
|
|
44
|
+
isAsyncBlock() {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
|
|
40
48
|
getRootBlock() {
|
|
41
49
|
/** @type {DependenciesBlock} */
|
|
42
50
|
let current = this;
|
|
@@ -123,6 +131,10 @@ class DependenciesBlock {
|
|
|
123
131
|
}
|
|
124
132
|
}
|
|
125
133
|
|
|
126
|
-
makeSerializable(DependenciesBlock,
|
|
134
|
+
makeSerializable(DependenciesBlock, [
|
|
135
|
+
"webpack/lib/graph/DependenciesBlock",
|
|
136
|
+
// TODO in the next major release: remove, they restore pre-move cache packs
|
|
137
|
+
"webpack/lib/DependenciesBlock"
|
|
138
|
+
]);
|
|
127
139
|
|
|
128
140
|
module.exports = DependenciesBlock;
|