webpack 5.111.1 → 5.112.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/webpack.js +13 -7
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +373 -163
- package/lib/Compiler.js +31 -44
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +21 -13
- package/lib/asset/AssetBytesParser.js +12 -10
- package/lib/asset/AssetGenerator.js +71 -69
- package/lib/asset/AssetModule.js +13 -2
- package/lib/asset/AssetModulesPlugin.js +10 -12
- package/lib/asset/AssetParser.js +10 -10
- package/lib/asset/AssetSourceGenerator.js +23 -15
- package/lib/asset/AssetSourceParser.js +12 -10
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +17 -12
- package/lib/asset/WebManifestParser.js +8 -8
- package/lib/async-modules/AsyncModuleHelpers.js +12 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +13 -19
- package/lib/cache/ResolverCachePlugin.js +65 -11
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +14 -164
- package/lib/config/defaults.js +166 -59
- package/lib/config/getClaimedAssetTypes.js +22 -14
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +11 -1
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +37 -26
- package/lib/context/ContextModuleFactory.js +14 -11
- package/lib/context/ContextReplacementPlugin.js +6 -12
- package/lib/css/CssGenerator.js +78 -68
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +37 -29
- package/lib/css/CssModulesPlugin.js +129 -45
- package/lib/css/CssParser.js +714 -322
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/{util → css}/conventions.js +1 -1
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6990 -5125
- package/lib/css/syntax-parser.js +20734 -0
- package/lib/css/syntax-printer.js +6092 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +106 -51
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
- package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
- package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
- package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +23 -21
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +14 -10
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +103 -30
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/errors/AbstractMethodError.js +1 -1
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +6 -5
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/JSONParseError.js +4 -4
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +13 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +634 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
- package/lib/{util → graph}/findGraphRoots.js +15 -9
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +32 -28
- package/lib/html/HtmlGenerator.js +132 -60
- package/lib/html/HtmlModule.js +16 -2
- package/lib/html/HtmlModulesPlugin.js +184 -87
- package/lib/html/HtmlParser.js +511 -160
- package/lib/html/builtinEmbeddedRenderer.js +70 -25
- package/lib/html/data.js +44 -22
- package/lib/html/htmlMinify.js +114 -41
- package/lib/html/syntax-parser.js +15795 -0
- package/lib/html/syntax-printer.js +1033 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +70 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +32 -5
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +312 -105
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +9 -9
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +32 -27
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
- package/lib/javascript/JavascriptModule.js +14 -3
- package/lib/javascript/JavascriptModulesPlugin.js +441 -214
- package/lib/javascript/JavascriptParser.js +318 -144
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3924 -13
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +19169 -0
- package/lib/javascript/syntax-printer-data.js +1099 -0
- package/lib/javascript/syntax-printer.js +53878 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +24 -16
- package/lib/json/JsonModule.js +13 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +11 -10
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +28 -12
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +2 -2
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +557 -187
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +94 -46
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/loaders/loadLoader.js +16 -10
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +33 -23
- package/lib/{Module.js → module/Module.js} +121 -53
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2350 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +12 -5
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +71 -20
- package/lib/{util → module}/findCaseMismatch.js +4 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +6 -7
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
- package/lib/optimize/ConcatenatedModule.js +231 -220
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +12 -7
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +620 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +18 -13
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
- package/lib/optimize/SplitChunksPlugin.js +719 -174
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +4 -6
- package/lib/performance/HotspotsPlugin.js +39 -14
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +19 -13
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +22 -13
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +66 -45
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/BasicEffectRulePlugin.js +1 -1
- package/lib/rules/RuleSetCompiler.js +42 -51
- package/lib/rules/UseEffectRulePlugin.js +1 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +68 -13
- package/lib/schemes/VirtualUrlPlugin.js +52 -16
- package/lib/serialization/AggregateErrorSerializer.js +4 -4
- package/lib/serialization/BinaryMiddleware.js +4 -1
- package/lib/serialization/ErrorObjectSerializer.js +2 -5
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +62 -29
- package/lib/serialization/PlainObjectSerializer.js +3 -7
- package/lib/serialization/Serializer.js +21 -11
- package/lib/serialization/SerializerMiddleware.js +10 -8
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
- package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
- package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +208 -37
- package/lib/stats/StatsPrinter.js +126 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
- package/lib/{Template.js → template/Template.js} +14 -12
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +439 -51
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +20 -16
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/cleverMerge.js +61 -33
- package/lib/util/comparators.js +19 -15
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -15
- package/lib/util/deprecation.js +5 -4
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +198 -20
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +296 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +28 -7
- package/lib/util/memoize.js +1 -1
- package/lib/util/parseJson.js +2 -2
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +35 -28
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +18 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +15 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
- package/lib/web/FetchCompileWasmPlugin.js +8 -10
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +57 -36
- package/schemas/WebpackOptions.check.js +4 -3
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +295 -75
- package/schemas/plugins/BannerPlugin.check.js +4 -3
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
- package/schemas/plugins/HtmlParserOptions.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +4 -3
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
- package/schemas/plugins/container/ExternalsType.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssParserOptions.check.js +4 -3
- package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
- package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
- package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
- package/schemas/plugins/output/CleanOptions.check.js +7 -0
- package/schemas/plugins/output/CleanOptions.json +3 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +20780 -14174
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -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} */
|
|
@@ -339,6 +361,9 @@ class ChunkGraph {
|
|
|
339
361
|
|
|
340
362
|
/** @type {HashFunction} */
|
|
341
363
|
this._hashFunction = hashFunction;
|
|
364
|
+
// lets the per-module override lookup bail out until something sets one
|
|
365
|
+
/** @type {boolean} */
|
|
366
|
+
this._hasOverwrittenSourceTypes = false;
|
|
342
367
|
|
|
343
368
|
this._getGraphRoots = this._getGraphRoots.bind(this);
|
|
344
369
|
}
|
|
@@ -406,6 +431,45 @@ class ChunkGraph {
|
|
|
406
431
|
].sort(compareModulesByIdentifier);
|
|
407
432
|
}
|
|
408
433
|
|
|
434
|
+
/**
|
|
435
|
+
* Records that a chunk contains a module, growing what the record holds from
|
|
436
|
+
* nothing to the one chunk to a set.
|
|
437
|
+
* @param {ChunkGraphModule} cgm the module's chunk graph record
|
|
438
|
+
* @param {Chunk} chunk the chunk containing it
|
|
439
|
+
* @returns {void}
|
|
440
|
+
*/
|
|
441
|
+
static _addModuleChunk(cgm, chunk) {
|
|
442
|
+
const { chunks } = cgm;
|
|
443
|
+
cgm.runtimes = undefined;
|
|
444
|
+
if (chunks === undefined) {
|
|
445
|
+
// Frozen because `getModuleChunks` hands this very array out: nothing here
|
|
446
|
+
// writes to it after this, and a caller ignoring "do not modify" would
|
|
447
|
+
// otherwise change membership without the chunk side hearing of it.
|
|
448
|
+
cgm.chunks = Object.freeze([chunk]);
|
|
449
|
+
} else if (chunks instanceof Set) {
|
|
450
|
+
chunks.add(chunk);
|
|
451
|
+
} else if (chunks[0] !== chunk) {
|
|
452
|
+
const set = new SortableSet(chunks);
|
|
453
|
+
set.add(chunk);
|
|
454
|
+
cgm.chunks = set;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Records that a chunk no longer contains a module. A set is not shrunk back
|
|
460
|
+
* to an array, so a module that was in two chunks keeps the set.
|
|
461
|
+
* @param {ChunkGraphModule} cgm the module's chunk graph record
|
|
462
|
+
* @param {Chunk} chunk the chunk that no longer contains it
|
|
463
|
+
* @returns {void}
|
|
464
|
+
*/
|
|
465
|
+
static _removeModuleChunk(cgm, chunk) {
|
|
466
|
+
const { chunks } = cgm;
|
|
467
|
+
if (chunks === undefined) return;
|
|
468
|
+
cgm.runtimes = undefined;
|
|
469
|
+
if (chunks instanceof Set) chunks.delete(chunk);
|
|
470
|
+
else if (chunks[0] === chunk) cgm.chunks = undefined;
|
|
471
|
+
}
|
|
472
|
+
|
|
409
473
|
/**
|
|
410
474
|
* Connects chunk and module.
|
|
411
475
|
* @param {Chunk} chunk the new chunk
|
|
@@ -415,7 +479,7 @@ class ChunkGraph {
|
|
|
415
479
|
connectChunkAndModule(chunk, module) {
|
|
416
480
|
const cgm = this._getChunkGraphModule(module);
|
|
417
481
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
418
|
-
|
|
482
|
+
ChunkGraph._addModuleChunk(cgm, chunk);
|
|
419
483
|
cgc.modules.add(module);
|
|
420
484
|
}
|
|
421
485
|
|
|
@@ -431,7 +495,7 @@ class ChunkGraph {
|
|
|
431
495
|
cgc.modules.delete(module);
|
|
432
496
|
// No need to invalidate cgc._modulesBySourceType because we modified cgc.modules anyway
|
|
433
497
|
if (cgc.sourceTypesByModule) cgc.sourceTypesByModule.delete(module);
|
|
434
|
-
|
|
498
|
+
ChunkGraph._removeModuleChunk(cgm, chunk);
|
|
435
499
|
}
|
|
436
500
|
|
|
437
501
|
/**
|
|
@@ -443,7 +507,7 @@ class ChunkGraph {
|
|
|
443
507
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
444
508
|
for (const module of cgc.modules) {
|
|
445
509
|
const cgm = this._getChunkGraphModule(module);
|
|
446
|
-
|
|
510
|
+
ChunkGraph._removeModuleChunk(cgm, chunk);
|
|
447
511
|
}
|
|
448
512
|
cgc.modules.clear();
|
|
449
513
|
chunk.disconnectFromGroups();
|
|
@@ -516,13 +580,16 @@ class ChunkGraph {
|
|
|
516
580
|
const oldCgm = this._getChunkGraphModule(oldModule);
|
|
517
581
|
const newCgm = this._getChunkGraphModule(newModule);
|
|
518
582
|
|
|
519
|
-
|
|
520
|
-
const
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
583
|
+
if (oldCgm.chunks !== undefined) {
|
|
584
|
+
for (const chunk of oldCgm.chunks) {
|
|
585
|
+
const cgc = this._getChunkGraphChunk(chunk);
|
|
586
|
+
cgc.modules.delete(oldModule);
|
|
587
|
+
cgc.modules.add(newModule);
|
|
588
|
+
ChunkGraph._addModuleChunk(newCgm, chunk);
|
|
589
|
+
}
|
|
590
|
+
oldCgm.chunks = undefined;
|
|
591
|
+
oldCgm.runtimes = undefined;
|
|
524
592
|
}
|
|
525
|
-
oldCgm.chunks.clear();
|
|
526
593
|
|
|
527
594
|
if (oldCgm.entryInChunks !== undefined) {
|
|
528
595
|
if (newCgm.entryInChunks === undefined) {
|
|
@@ -618,8 +685,8 @@ class ChunkGraph {
|
|
|
618
685
|
* @returns {Iterable<Chunk>} iterable of chunks (do not modify)
|
|
619
686
|
*/
|
|
620
687
|
getModuleChunksIterable(module) {
|
|
621
|
-
const
|
|
622
|
-
return
|
|
688
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
689
|
+
return chunks === undefined ? EMPTY_CHUNKS : chunks;
|
|
623
690
|
}
|
|
624
691
|
|
|
625
692
|
/**
|
|
@@ -629,9 +696,12 @@ class ChunkGraph {
|
|
|
629
696
|
* @returns {Iterable<Chunk>} iterable of chunks (do not modify)
|
|
630
697
|
*/
|
|
631
698
|
getOrderedModuleChunksIterable(module, sortFn) {
|
|
632
|
-
const
|
|
633
|
-
|
|
634
|
-
|
|
699
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
700
|
+
if (chunks === undefined) return EMPTY_CHUNKS;
|
|
701
|
+
// One chunk is in order whatever the comparer says.
|
|
702
|
+
if (!(chunks instanceof Set)) return chunks;
|
|
703
|
+
chunks.sortWith(sortFn);
|
|
704
|
+
return chunks;
|
|
635
705
|
}
|
|
636
706
|
|
|
637
707
|
/**
|
|
@@ -640,8 +710,13 @@ class ChunkGraph {
|
|
|
640
710
|
* @returns {Chunk[]} array of chunks (cached, do not modify)
|
|
641
711
|
*/
|
|
642
712
|
getModuleChunks(module) {
|
|
643
|
-
const
|
|
644
|
-
return
|
|
713
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
714
|
+
if (chunks === undefined) return /** @type {Chunk[]} */ (EMPTY_CHUNKS);
|
|
715
|
+
// The array a module in one chunk holds is already the answer, and frozen,
|
|
716
|
+
// as the type this returns cannot say.
|
|
717
|
+
return chunks instanceof Set
|
|
718
|
+
? chunks.getFromCache(getArray)
|
|
719
|
+
: /** @type {Chunk[]} */ (chunks);
|
|
645
720
|
}
|
|
646
721
|
|
|
647
722
|
/**
|
|
@@ -650,8 +725,9 @@ class ChunkGraph {
|
|
|
650
725
|
* @returns {number} the number of chunk which contain the module
|
|
651
726
|
*/
|
|
652
727
|
getNumberOfModuleChunks(module) {
|
|
653
|
-
const
|
|
654
|
-
return
|
|
728
|
+
const { chunks } = this._getChunkGraphModule(module);
|
|
729
|
+
if (chunks === undefined) return 0;
|
|
730
|
+
return chunks instanceof Set ? chunks.size : chunks.length;
|
|
655
731
|
}
|
|
656
732
|
|
|
657
733
|
/**
|
|
@@ -661,7 +737,18 @@ class ChunkGraph {
|
|
|
661
737
|
*/
|
|
662
738
|
getModuleRuntimes(module) {
|
|
663
739
|
const cgm = this._getChunkGraphModule(module);
|
|
664
|
-
|
|
740
|
+
const { chunks } = cgm;
|
|
741
|
+
if (chunks instanceof Set) {
|
|
742
|
+
return chunks.getFromUnorderedCache(getModuleRuntimes);
|
|
743
|
+
}
|
|
744
|
+
// Kept on the record, which neither an array nor nothing can do: a build asks
|
|
745
|
+
// this of every module several times, and scope hoisting leaves most of them
|
|
746
|
+
// in no chunk at all.
|
|
747
|
+
if (cgm.runtimes === undefined) {
|
|
748
|
+
cgm.runtimes =
|
|
749
|
+
chunks === undefined ? new RuntimeSpecSet() : getModuleRuntimes(chunks);
|
|
750
|
+
}
|
|
751
|
+
return cgm.runtimes;
|
|
665
752
|
}
|
|
666
753
|
|
|
667
754
|
/**
|
|
@@ -720,6 +807,7 @@ class ChunkGraph {
|
|
|
720
807
|
cgc.sourceTypesByModule = new WeakMap();
|
|
721
808
|
}
|
|
722
809
|
cgc.sourceTypesByModule.set(module, sourceTypes);
|
|
810
|
+
this._hasOverwrittenSourceTypes = true;
|
|
723
811
|
// Update cgc._modulesBySourceType to invalidate the cache
|
|
724
812
|
cgc._modulesBySourceType = modulesBySourceType(cgc.sourceTypesByModule);
|
|
725
813
|
}
|
|
@@ -755,6 +843,7 @@ class ChunkGraph {
|
|
|
755
843
|
* @returns {SourceTypes | undefined} source types
|
|
756
844
|
*/
|
|
757
845
|
_getOverwrittenModuleSourceTypes(module) {
|
|
846
|
+
if (!this._hasOverwrittenSourceTypes) return;
|
|
758
847
|
let newSet = false;
|
|
759
848
|
/** @type {Set<SourceType> | undefined} */
|
|
760
849
|
let sourceTypes;
|
|
@@ -846,6 +935,7 @@ class ChunkGraph {
|
|
|
846
935
|
getChunkModuleIdMap(chunk, filterFn, includeAllChunks = false) {
|
|
847
936
|
/** @type {ChunkModuleIdMap} */
|
|
848
937
|
const chunkModuleIdMap = Object.create(null);
|
|
938
|
+
const comparator = compareModulesById(this);
|
|
849
939
|
|
|
850
940
|
for (const asyncChunk of includeAllChunks
|
|
851
941
|
? chunk.getAllReferencedChunks()
|
|
@@ -854,7 +944,7 @@ class ChunkGraph {
|
|
|
854
944
|
let array;
|
|
855
945
|
for (const module of this.getOrderedChunkModulesIterable(
|
|
856
946
|
asyncChunk,
|
|
857
|
-
|
|
947
|
+
comparator
|
|
858
948
|
)) {
|
|
859
949
|
if (filterFn(module)) {
|
|
860
950
|
if (array === undefined) {
|
|
@@ -886,6 +976,7 @@ class ChunkGraph {
|
|
|
886
976
|
) {
|
|
887
977
|
/** @type {ChunkModuleHashMap} */
|
|
888
978
|
const chunkModuleHashMap = Object.create(null);
|
|
979
|
+
const comparator = compareModulesById(this);
|
|
889
980
|
|
|
890
981
|
for (const asyncChunk of includeAllChunks
|
|
891
982
|
? chunk.getAllReferencedChunks()
|
|
@@ -894,7 +985,7 @@ class ChunkGraph {
|
|
|
894
985
|
let idToHashMap;
|
|
895
986
|
for (const module of this.getOrderedChunkModulesIterable(
|
|
896
987
|
asyncChunk,
|
|
897
|
-
|
|
988
|
+
comparator
|
|
898
989
|
)) {
|
|
899
990
|
if (filterFn(module)) {
|
|
900
991
|
if (idToHashMap === undefined) {
|
|
@@ -1350,7 +1441,7 @@ class ChunkGraph {
|
|
|
1350
1441
|
/** @type {Chunks} */
|
|
1351
1442
|
const set = new Set();
|
|
1352
1443
|
for (const chunkGroup of chunk.groupsIterable) {
|
|
1353
|
-
if (chunkGroup
|
|
1444
|
+
if (chunkGroup.isEntrypoint()) {
|
|
1354
1445
|
const entrypointChunk = chunkGroup.getEntrypointChunk();
|
|
1355
1446
|
const cgc = this._getChunkGraphChunk(entrypointChunk);
|
|
1356
1447
|
for (const chunkGroup of cgc.entryModules.values()) {
|
|
@@ -1379,7 +1470,7 @@ class ChunkGraph {
|
|
|
1379
1470
|
const entrypoints = new Set();
|
|
1380
1471
|
|
|
1381
1472
|
for (const chunkGroup of chunk.groupsIterable) {
|
|
1382
|
-
if (chunkGroup
|
|
1473
|
+
if (chunkGroup.isEntrypoint()) {
|
|
1383
1474
|
if (entrypoints.has(chunkGroup)) continue;
|
|
1384
1475
|
entrypoints.add(chunkGroup);
|
|
1385
1476
|
// `entrypoints` doubles as the visited set: a diamond of `dependOn`
|
|
@@ -1389,7 +1480,7 @@ class ChunkGraph {
|
|
|
1389
1480
|
const current = queue[i];
|
|
1390
1481
|
let hasChildrenEntrypoint = false;
|
|
1391
1482
|
for (const child of current.childrenIterable) {
|
|
1392
|
-
if (child
|
|
1483
|
+
if (child.isEntrypoint() && child.dependOn(current)) {
|
|
1393
1484
|
hasChildrenEntrypoint = true;
|
|
1394
1485
|
if (!entrypoints.has(child)) {
|
|
1395
1486
|
entrypoints.add(child);
|
|
@@ -1458,15 +1549,7 @@ class ChunkGraph {
|
|
|
1458
1549
|
getChunkRuntimeModulesInOrder(chunk) {
|
|
1459
1550
|
const cgc = this._getChunkGraphChunk(chunk);
|
|
1460
1551
|
const array = [...cgc.runtimeModules];
|
|
1461
|
-
array.sort(
|
|
1462
|
-
concatComparators(
|
|
1463
|
-
compareSelect(
|
|
1464
|
-
(r) => /** @type {RuntimeModule} */ (r).stage,
|
|
1465
|
-
compareIds
|
|
1466
|
-
),
|
|
1467
|
-
compareModulesByIdentifier
|
|
1468
|
-
)
|
|
1469
|
-
);
|
|
1552
|
+
array.sort(compareRuntimeModulesByStage);
|
|
1470
1553
|
return array;
|
|
1471
1554
|
}
|
|
1472
1555
|
|
|
@@ -1860,6 +1943,22 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1860
1943
|
const activeNamespaceModules = new Set();
|
|
1861
1944
|
/** @type {Map<string, Module | Set<Module>>} */
|
|
1862
1945
|
const connectedModules = new Map();
|
|
1946
|
+
// a dependency whose target is missing has no connection, so without
|
|
1947
|
+
// these it hashes like one whose target is inactive, while templates
|
|
1948
|
+
// print a missing-module throw only for the first
|
|
1949
|
+
/** @type {string[] | undefined} */
|
|
1950
|
+
let inactiveRequests;
|
|
1951
|
+
/**
|
|
1952
|
+
* Records an inactive connection by its request, as templates print nothing of its target.
|
|
1953
|
+
* @param {ModuleGraphConnection} connection inactive connection
|
|
1954
|
+
*/
|
|
1955
|
+
const addInactive = (connection) => {
|
|
1956
|
+
// only connections without an origin module lack a dependency
|
|
1957
|
+
const dependency = /** @type {Dependency} */ (connection.dependency);
|
|
1958
|
+
(inactiveRequests || (inactiveRequests = [])).push(
|
|
1959
|
+
`${dependency.getResourceIdentifier()}`
|
|
1960
|
+
);
|
|
1961
|
+
};
|
|
1863
1962
|
/**
|
|
1864
1963
|
* Process connection.
|
|
1865
1964
|
* @param {ModuleGraphConnection} connection connection
|
|
@@ -1885,37 +1984,49 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1885
1984
|
if (runtime === undefined || typeof runtime === "string") {
|
|
1886
1985
|
for (const connection of connections) {
|
|
1887
1986
|
const state = connection.getActiveState(runtime);
|
|
1888
|
-
if (state === false)
|
|
1987
|
+
if (state === false) {
|
|
1988
|
+
addInactive(connection);
|
|
1989
|
+
continue;
|
|
1990
|
+
}
|
|
1889
1991
|
processConnection(connection, state === true ? "T" : "O");
|
|
1890
1992
|
}
|
|
1891
1993
|
} else {
|
|
1892
1994
|
// cspell:word Tnamespace
|
|
1995
|
+
// the runtime is sorted once, so every connection reads it in the same order
|
|
1996
|
+
runtime.sort();
|
|
1893
1997
|
for (const connection of connections) {
|
|
1894
|
-
/** @type {
|
|
1895
|
-
|
|
1998
|
+
/** @type {ConnectionState | undefined} */
|
|
1999
|
+
let firstState;
|
|
2000
|
+
let sameState = true;
|
|
1896
2001
|
let stateInfo = "";
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
(
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
}
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
if (
|
|
1907
|
-
|
|
1908
|
-
|
|
2002
|
+
for (const runtimeName of runtime) {
|
|
2003
|
+
const state = connection.getActiveState(runtimeName);
|
|
2004
|
+
if (firstState === undefined) {
|
|
2005
|
+
firstState = state;
|
|
2006
|
+
} else if (state !== firstState) {
|
|
2007
|
+
sameState = false;
|
|
2008
|
+
}
|
|
2009
|
+
stateInfo += activeStateToString(state) + runtimeName;
|
|
2010
|
+
}
|
|
2011
|
+
if (sameState) {
|
|
2012
|
+
if (firstState === false) {
|
|
2013
|
+
addInactive(connection);
|
|
2014
|
+
continue;
|
|
2015
|
+
}
|
|
1909
2016
|
stateInfo = activeStateToString(
|
|
1910
2017
|
/** @type {ConnectionState} */
|
|
1911
|
-
(
|
|
2018
|
+
(firstState)
|
|
1912
2019
|
);
|
|
1913
2020
|
}
|
|
1914
2021
|
processConnection(connection, stateInfo);
|
|
1915
2022
|
}
|
|
1916
2023
|
}
|
|
1917
2024
|
// cspell:word Tnamespace
|
|
1918
|
-
if (
|
|
2025
|
+
if (
|
|
2026
|
+
activeNamespaceModules.size === 0 &&
|
|
2027
|
+
connectedModules.size === 0 &&
|
|
2028
|
+
inactiveRequests === undefined
|
|
2029
|
+
) {
|
|
1919
2030
|
return graphHash;
|
|
1920
2031
|
}
|
|
1921
2032
|
const connectedModulesInOrder =
|
|
@@ -1966,6 +2077,11 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1966
2077
|
addModuleToHash(modules);
|
|
1967
2078
|
}
|
|
1968
2079
|
}
|
|
2080
|
+
if (inactiveRequests !== undefined) {
|
|
2081
|
+
// connections arrive as resolutions finish, so sort like connectedModules
|
|
2082
|
+
if (inactiveRequests.length > 1) inactiveRequests.sort();
|
|
2083
|
+
hash.update(JSON.stringify(inactiveRequests));
|
|
2084
|
+
}
|
|
1969
2085
|
hash.update(graphHash);
|
|
1970
2086
|
return hash.digest("hex");
|
|
1971
2087
|
});
|
|
@@ -1981,7 +2097,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
1981
2097
|
return cgc.runtimeRequirementsInTree;
|
|
1982
2098
|
}
|
|
1983
2099
|
|
|
1984
|
-
// TODO
|
|
2100
|
+
// TODO in the next major release: remove
|
|
1985
2101
|
/**
|
|
1986
2102
|
* Gets chunk graph for module.
|
|
1987
2103
|
* @deprecated
|
|
@@ -2003,9 +2119,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2003
2119
|
const chunkGraph = chunkGraphForModuleMap.get(module);
|
|
2004
2120
|
if (!chunkGraph) {
|
|
2005
2121
|
throw new Error(
|
|
2006
|
-
`${
|
|
2007
|
-
deprecateMessage
|
|
2008
|
-
}: There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)`
|
|
2122
|
+
`${deprecateMessage}: There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)`
|
|
2009
2123
|
);
|
|
2010
2124
|
}
|
|
2011
2125
|
return chunkGraph;
|
|
@@ -2017,7 +2131,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2017
2131
|
return newFn(module);
|
|
2018
2132
|
}
|
|
2019
2133
|
|
|
2020
|
-
// TODO
|
|
2134
|
+
// TODO in the next major release: remove
|
|
2021
2135
|
// BACKWARD-COMPAT START
|
|
2022
2136
|
/**
|
|
2023
2137
|
* Sets chunk graph for module.
|
|
@@ -2061,9 +2175,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2061
2175
|
const chunkGraph = chunkGraphForChunkMap.get(chunk);
|
|
2062
2176
|
if (!chunkGraph) {
|
|
2063
2177
|
throw new Error(
|
|
2064
|
-
`${
|
|
2065
|
-
deprecateMessage
|
|
2066
|
-
}There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)`
|
|
2178
|
+
`${deprecateMessage}There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)`
|
|
2067
2179
|
);
|
|
2068
2180
|
}
|
|
2069
2181
|
return chunkGraph;
|
|
@@ -2098,19 +2210,19 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza
|
|
|
2098
2210
|
// BACKWARD-COMPAT END
|
|
2099
2211
|
}
|
|
2100
2212
|
|
|
2101
|
-
// TODO
|
|
2213
|
+
// TODO in the next major release: remove
|
|
2102
2214
|
/** @type {WeakMap<Module, ChunkGraph>} */
|
|
2103
2215
|
const chunkGraphForModuleMap = new WeakMap();
|
|
2104
2216
|
|
|
2105
|
-
// TODO
|
|
2217
|
+
// TODO in the next major release: remove
|
|
2106
2218
|
/** @type {WeakMap<Chunk, ChunkGraph>} */
|
|
2107
2219
|
const chunkGraphForChunkMap = new WeakMap();
|
|
2108
2220
|
|
|
2109
|
-
// TODO
|
|
2221
|
+
// TODO in the next major release: remove
|
|
2110
2222
|
/** @type {Map<string, (module: Module) => ChunkGraph>} */
|
|
2111
2223
|
const deprecateGetChunkGraphForModuleMap = new Map();
|
|
2112
2224
|
|
|
2113
|
-
// TODO
|
|
2225
|
+
// TODO in the next major release: remove
|
|
2114
2226
|
/** @type {Map<string, (chunk: Chunk) => ChunkGraph>} */
|
|
2115
2227
|
const deprecateGetChunkGraphForChunkMap = new Map();
|
|
2116
2228
|
|
|
@@ -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;
|