webpack 5.111.0 → 5.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +237 -138
- package/lib/Compiler.js +23 -24
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -69
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +43 -24
- package/lib/NormalModule.js +3 -2190
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +15 -9
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +61 -38
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +15 -9
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +6 -6
- package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
- package/lib/cache/PackFileCacheStrategy.js +11 -28
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/getLazyHashedEtag.js +3 -5
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +3 -9
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +192 -122
- package/lib/config/getClaimedAssetTypes.js +28 -21
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +13 -4
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
- package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
- package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
- package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
- package/lib/css/CssGenerator.js +57 -42
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +700 -311
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +130 -54
- package/lib/css/data.js +7017 -4648
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -17370
- package/lib/debug/ProfilingPlugin.js +55 -23
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +10 -10
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +176 -44
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +19 -20
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +5 -5
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +34 -18
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +9 -9
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +12 -11
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -100
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +26 -21
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +40 -41
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +136 -122
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +125 -243
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +20 -20
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +126 -107
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +34 -25
- package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +46 -54
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +207 -129
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +20 -18
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/ErrorHelpers.js +222 -0
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +6 -5
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
- package/lib/{util → graph}/findGraphRoots.js +20 -21
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +34 -26
- package/lib/html/HtmlGenerator.js +168 -125
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +260 -215
- package/lib/html/HtmlParser.js +598 -292
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +23 -1
- package/lib/html/htmlMinify.js +120 -51
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -14062
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +348 -99
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +25 -18
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +458 -256
- package/lib/javascript/JavascriptParser.js +916 -287
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -10946
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +17 -11
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +207 -285
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +27 -2
- package/lib/loaders/LoaderRunner.js +160 -22
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +38 -14
- package/lib/{Module.js → module/Module.js} +122 -54
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +61 -15
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +5 -7
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +305 -309
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +25 -30
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +17 -23
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +21 -15
- package/lib/optimize/MangleExportsPlugin.js +8 -9
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
- package/lib/optimize/SplitChunksPlugin.js +715 -159
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +25 -30
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +5 -7
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +13 -16
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +7 -9
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +82 -65
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +9 -10
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +5 -7
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +135 -102
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +4 -7
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/BinaryMiddleware.js +9 -9
- package/lib/serialization/FileMiddleware.js +19 -19
- package/lib/serialization/ObjectMiddleware.js +77 -49
- package/lib/serialization/SerializerMiddleware.js +2 -2
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +19 -19
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +178 -106
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
- package/lib/typescript/TypeScriptPlugin.js +5 -6
- package/lib/util/LocConverter.js +4 -7
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +364 -66
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +32 -151
- package/lib/util/createHooksRegistry.js +1 -2
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -18
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/hash/wasm-hash.js +3 -4
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +295 -103
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +4 -1
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +70 -40
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +13915 -8414
- package/lib/ErrorHelpers.js +0 -107
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -71
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1494
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/conventions.js +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -13,20 +13,109 @@ const { isRequiredVersion } = require("./utils");
|
|
|
13
13
|
/**
|
|
14
14
|
* @import {
|
|
15
15
|
* ConsumesConfig
|
|
16
|
-
* } from "
|
|
16
|
+
* } from "./ConsumeSharedPlugin"
|
|
17
17
|
*/
|
|
18
18
|
/**
|
|
19
19
|
* @import {
|
|
20
20
|
* ProvidesConfig
|
|
21
|
-
* } from "
|
|
21
|
+
* } from "./ProvideSharedPlugin"
|
|
22
22
|
*/
|
|
23
|
+
/** @import Compiler from "../Compiler" */
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
|
|
26
|
+
* @inline
|
|
27
|
+
* @minLength 1
|
|
28
|
+
* @typedef {string} NonEmptyString
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Modules that should be shared in the share scope.
|
|
33
|
+
* @inline
|
|
34
|
+
* @typedef {SharedItem | SharedObject} SharedBranch1Item
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* No provided or fallback module.
|
|
39
|
+
* @inline
|
|
40
|
+
* @typedef {false} SharedConfigImportBranch1
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* No version requirement check.
|
|
45
|
+
* @inline
|
|
46
|
+
* @typedef {false} SharedConfigRequiredVersionBranch1
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Version as string. Can be prefixed with '^' or '~' for minimum matches. Each part of the version should be separated by a dot '.'.
|
|
51
|
+
* @inline
|
|
52
|
+
* @typedef {string} SharedConfigRequiredVersionBranch2
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Don't provide a version.
|
|
57
|
+
* @inline
|
|
58
|
+
* @typedef {false} SharedConfigVersionBranch1
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Version as string. Each part of the version should be separated by a dot '.'.
|
|
63
|
+
* @inline
|
|
64
|
+
* @typedef {string} SharedConfigVersionBranch2
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Modules that should be shared in the share scope.
|
|
69
|
+
* @inline
|
|
70
|
+
* @typedef {SharedConfig | SharedItem} SharedObjectValue
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Modules that should be shared in the share scope. When provided, property names are used to match requested modules in this compilation.
|
|
75
|
+
* @typedef {SharedBranch1Item[] | SharedObject} Shared
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Advanced configuration for modules that should be shared in the share scope.
|
|
80
|
+
* @typedef {object} SharedConfig
|
|
81
|
+
* @property {boolean=} eager Include the provided and fallback module directly instead behind an async request. This allows to use this shared module in initial load too. All possible shared modules need to be eager too.
|
|
82
|
+
* @property {SharedModuleFilter=} exclude
|
|
83
|
+
* @property {SharedConfigImportBranch1 | SharedItem=} import Provided module that should be provided to share scope. Also acts as fallback module if no shared module is found in share scope or version isn't valid. Defaults to the property name.
|
|
84
|
+
* @property {SharedModuleFilter=} include
|
|
85
|
+
* @property {NonEmptyString=} packageName Package name to determine required version from description file. This is only needed when package name can't be automatically determined from request.
|
|
86
|
+
* @property {SharedConfigRequiredVersionBranch1 | SharedConfigRequiredVersionBranch2=} requiredVersion Version requirement from module in share scope.
|
|
87
|
+
* @property {NonEmptyString=} shareKey Module is looked up under this key from the share scope.
|
|
88
|
+
* @property {NonEmptyString=} shareScope Share scope name.
|
|
89
|
+
* @property {boolean=} singleton Allow only a single version of the shared module in share scope (disabled by default).
|
|
90
|
+
* @property {boolean=} strictVersion Do not accept shared module if version is not valid (defaults to yes, if local fallback module is available and shared module is not a singleton, otherwise no, has no effect if there is no required version specified).
|
|
91
|
+
* @property {SharedConfigVersionBranch1 | SharedConfigVersionBranch2=} version Version of the provided module. Will replace lower matching versions, but not higher.
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* A module that should be shared in the share scope.
|
|
96
|
+
* @typedef {NonEmptyString} SharedItem
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Filters shared modules by version or request: with 'include' only matching modules are shared, with 'exclude' matching ones are not. A filtered-out module is resolved and bundled as if it wasn't shared.
|
|
101
|
+
* @since 5.112.0
|
|
102
|
+
* @typedef {object} SharedModuleFilter
|
|
103
|
+
* @property {RegExp | NonEmptyString=} request Request remainder after a key ending in a slash (e.g. 'get' for 'lodash/get' under 'lodash/'). Has no effect on other keys.
|
|
104
|
+
* @property {NonEmptyString=} version Version range the module's version (from its description file or the 'version' option) is tested against. A consumed module is tested through its fallback module, so this has no effect on consumes without one.
|
|
105
|
+
*/
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Modules that should be shared in the share scope. Property names are used to match requested modules in this compilation. Relative requests are resolved, module requests are matched unresolved, absolute paths will match resolved requests. A trailing slash will match all requests with this prefix. In this case shareKey must also have a trailing slash.
|
|
109
|
+
* @typedef {{ [key: string]: SharedObjectValue }} SharedObject
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Options for shared modules.
|
|
114
|
+
* @schema plugins/sharing/SharePlugin
|
|
115
|
+
* @typedef {object} SharePluginOptions
|
|
116
|
+
* @property {NonEmptyString=} shareScope Share scope name used for all shared modules (defaults to 'default').
|
|
117
|
+
* @property {Shared} shared
|
|
28
118
|
*/
|
|
29
|
-
/** @import Compiler from "../Compiler" */
|
|
30
119
|
|
|
31
120
|
class SharePlugin {
|
|
32
121
|
/**
|
|
@@ -65,7 +154,9 @@ class SharePlugin {
|
|
|
65
154
|
strictVersion: options.strictVersion,
|
|
66
155
|
singleton: options.singleton,
|
|
67
156
|
packageName: options.packageName,
|
|
68
|
-
eager: options.eager
|
|
157
|
+
eager: options.eager,
|
|
158
|
+
include: options.include,
|
|
159
|
+
exclude: options.exclude
|
|
69
160
|
}
|
|
70
161
|
}));
|
|
71
162
|
/** @type {Record<string, ProvidesConfig>[]} */
|
|
@@ -76,7 +167,9 @@ class SharePlugin {
|
|
|
76
167
|
shareKey: options.shareKey || key,
|
|
77
168
|
shareScope: options.shareScope,
|
|
78
169
|
version: options.version,
|
|
79
|
-
eager: options.eager
|
|
170
|
+
eager: options.eager,
|
|
171
|
+
include: options.include,
|
|
172
|
+
exclude: options.exclude
|
|
80
173
|
}
|
|
81
174
|
}));
|
|
82
175
|
/** @type {string | undefined} */
|
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
|
-
const RuntimeModule = require("../RuntimeModule");
|
|
10
|
-
const Template = require("../Template");
|
|
8
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
9
|
+
const RuntimeModule = require("../runtime/RuntimeModule");
|
|
10
|
+
const Template = require("../template/Template");
|
|
11
11
|
const {
|
|
12
12
|
compareModulesByIdentifier,
|
|
13
13
|
compareStrings
|
|
14
14
|
} = require("../util/comparators");
|
|
15
15
|
|
|
16
|
-
/** @import Chunk from "../Chunk" */
|
|
17
|
-
/** @import ChunkGraph from "../ChunkGraph" */
|
|
16
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
17
|
+
/** @import ChunkGraph from "../graph/ChunkGraph" */
|
|
18
18
|
/** @import Compilation from "../Compilation" */
|
|
19
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
19
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
20
20
|
|
|
21
21
|
class ShareRuntimeModule extends RuntimeModule {
|
|
22
22
|
constructor() {
|
|
@@ -15,7 +15,7 @@ const getModuleNotFoundError = memoize(() =>
|
|
|
15
15
|
|
|
16
16
|
/** @import { ResolveContext } from "enhanced-resolve" */
|
|
17
17
|
/** @import Compilation, { FileSystemDependencies } from "../Compilation" */
|
|
18
|
-
/** @import { ResolveOptionsWithDependencyType } from "../ResolverFactory" */
|
|
18
|
+
/** @import { ResolveOptionsWithDependencyType } from "../resolve/ResolverFactory" */
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Defines the matched configs item type used by this module.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
8
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
9
9
|
/** @typedef {string | number} VersionValue */
|
|
10
10
|
/** @typedef {VersionValue | undefined} SemVerRangeItem */
|
|
11
11
|
/** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
|
|
@@ -63,6 +63,7 @@ const versionLt = (a, b) => {
|
|
|
63
63
|
b = parseVersion(b);
|
|
64
64
|
var i = 0;
|
|
65
65
|
for (;;) {
|
|
66
|
+
// WHY: the ordering this loop implements, by the type of each side.
|
|
66
67
|
// a b EOA object undefined number string
|
|
67
68
|
// EOA a == b a < b b < a a < b a < b
|
|
68
69
|
// object b < a (0) b < a a < b a < b
|
|
@@ -185,6 +186,7 @@ module.exports.parseRange = (str) => {
|
|
|
185
186
|
* @returns {SemVerRange}
|
|
186
187
|
*/
|
|
187
188
|
const parseSimple = (str) => {
|
|
189
|
+
// WHY: the grammar this parses.
|
|
188
190
|
// simple ::= primitive | partial | tilde | caret
|
|
189
191
|
// primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | '!' ) ( ' ' ) * partial
|
|
190
192
|
// tilde ::= '~' ( ' ' ) * partial
|
|
@@ -197,18 +199,16 @@ module.exports.parseRange = (str) => {
|
|
|
197
199
|
|
|
198
200
|
switch (start) {
|
|
199
201
|
case "^":
|
|
200
|
-
|
|
201
|
-
|
|
202
|
+
// never fix more components than the partial wrote
|
|
203
|
+
if (remainder.length > 2 && remainder[1] === 0) {
|
|
204
|
+
if (remainder.length > 3 && remainder[2] === 0) {
|
|
202
205
|
return [3, ...remainder.slice(1)];
|
|
203
206
|
}
|
|
204
207
|
return [2, ...remainder.slice(1)];
|
|
205
208
|
}
|
|
206
|
-
return [1, ...remainder.slice(1)];
|
|
209
|
+
return [Math.min(1, remainder.length - 1), ...remainder.slice(1)];
|
|
207
210
|
case "~":
|
|
208
|
-
|
|
209
|
-
return [1, ...remainder.slice(1)];
|
|
210
|
-
}
|
|
211
|
-
return [2, ...remainder.slice(1)];
|
|
211
|
+
return [Math.min(2, remainder.length - 1), ...remainder.slice(1)];
|
|
212
212
|
case ">=":
|
|
213
213
|
return remainder;
|
|
214
214
|
case "=":
|
|
@@ -399,7 +399,7 @@ const satisfy = (range, version) => {
|
|
|
399
399
|
for (var i = 0, j = 1, isEqual = true; ; j++, i++) {
|
|
400
400
|
// cspell:word nequal nequ
|
|
401
401
|
|
|
402
|
-
// when isEqual = true:
|
|
402
|
+
// WHY: the decision table this loop implements, when isEqual = true:
|
|
403
403
|
// range version: EOA/object undefined number string
|
|
404
404
|
// EOA equal block big-ver big-ver
|
|
405
405
|
// undefined bigger next big-ver big-ver
|
|
@@ -408,7 +408,7 @@ const satisfy = (range, version) => {
|
|
|
408
408
|
// string smaller block differ cmp
|
|
409
409
|
// fixed string smaller block small-cmp cmp-fix
|
|
410
410
|
|
|
411
|
-
// when isEqual = false:
|
|
411
|
+
// WHY: and when isEqual = false:
|
|
412
412
|
// range version: EOA/object undefined number string
|
|
413
413
|
// EOA nequal block next-ver next-ver
|
|
414
414
|
// undefined nequal block next-ver next-ver
|
|
@@ -417,7 +417,7 @@ const satisfy = (range, version) => {
|
|
|
417
417
|
// string nequal block next next
|
|
418
418
|
// fixed string nequal block next next (this never happens)
|
|
419
419
|
|
|
420
|
-
// EOA end of array
|
|
420
|
+
// WHY: EOA is end of array; what each cell of the two tables means:
|
|
421
421
|
// equal (version is equal range):
|
|
422
422
|
// when !negated: return true,
|
|
423
423
|
// when negated: return false
|
|
@@ -575,9 +575,9 @@ module.exports.stringifyHoley = (json) => {
|
|
|
575
575
|
* @param {RuntimeTemplate} runtimeTemplate
|
|
576
576
|
* @returns {string}
|
|
577
577
|
*/
|
|
578
|
-
exports.parseVersionRuntimeCode = (runtimeTemplate) =>
|
|
578
|
+
module.exports.parseVersionRuntimeCode = (runtimeTemplate) =>
|
|
579
579
|
`var parseVersion = ${runtimeTemplate.basicFunction("str", [
|
|
580
|
-
"// see webpack/lib/
|
|
580
|
+
"// see webpack/lib/sharing/semver.js for original code",
|
|
581
581
|
`var p=${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return p.split(".").map(${runtimeTemplate.supportsArrowFunction() ? "p=>" : "function(p)"}{return+p==p?+p:p})},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;`
|
|
582
582
|
])}`;
|
|
583
583
|
//#endregion
|
|
@@ -587,9 +587,9 @@ exports.parseVersionRuntimeCode = (runtimeTemplate) =>
|
|
|
587
587
|
* @param {RuntimeTemplate} runtimeTemplate
|
|
588
588
|
* @returns {string}
|
|
589
589
|
*/
|
|
590
|
-
exports.versionLtRuntimeCode = (runtimeTemplate) =>
|
|
590
|
+
module.exports.versionLtRuntimeCode = (runtimeTemplate) =>
|
|
591
591
|
`var versionLt = ${runtimeTemplate.basicFunction("a, b", [
|
|
592
|
-
"// see webpack/lib/
|
|
592
|
+
"// see webpack/lib/sharing/semver.js for original code",
|
|
593
593
|
'a=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&"u"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return"u"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return"o"==n&&"n"==f||("s"==f||"u"==n);if("o"!=n&&"u"!=n&&e!=t)return e<t;r++}'
|
|
594
594
|
])}`;
|
|
595
595
|
//#endregion
|
|
@@ -599,9 +599,9 @@ exports.versionLtRuntimeCode = (runtimeTemplate) =>
|
|
|
599
599
|
* @param {RuntimeTemplate} runtimeTemplate
|
|
600
600
|
* @returns {string}
|
|
601
601
|
*/
|
|
602
|
-
exports.rangeToStringRuntimeCode = (runtimeTemplate) =>
|
|
602
|
+
module.exports.rangeToStringRuntimeCode = (runtimeTemplate) =>
|
|
603
603
|
`var rangeToString = ${runtimeTemplate.basicFunction("range", [
|
|
604
|
-
"// see webpack/lib/
|
|
604
|
+
"// see webpack/lib/sharing/semver.js for original code",
|
|
605
605
|
'var r=range[0],n="";if(1===range.length)return"*";if(r+.5){n+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var e=1,a=1;a<range.length;a++){e--,n+="u"==(typeof(t=range[a]))[0]?"-":(e>0?".":"")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?"not("+o()+")":1===t?"("+o()+" || "+o()+")":2===t?g.pop()+" "+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,"$1")}'
|
|
606
606
|
])}`;
|
|
607
607
|
//#endregion
|
|
@@ -611,9 +611,9 @@ exports.rangeToStringRuntimeCode = (runtimeTemplate) =>
|
|
|
611
611
|
* @param {RuntimeTemplate} runtimeTemplate
|
|
612
612
|
* @returns {string}
|
|
613
613
|
*/
|
|
614
|
-
exports.satisfyRuntimeCode = (runtimeTemplate) =>
|
|
614
|
+
module.exports.satisfyRuntimeCode = (runtimeTemplate) =>
|
|
615
615
|
`var satisfy = ${runtimeTemplate.basicFunction("range, version", [
|
|
616
|
-
"// see webpack/lib/
|
|
616
|
+
"// see webpack/lib/sharing/semver.js for original code",
|
|
617
617
|
'if(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:"";if(n>=version.length||"o"==(s=(typeof(f=version[n]))[0]))return!a||("u"==g?i>e&&!r:""==g!=r);if("u"==s){if(!a||"u"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if("s"!=g&&"n"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else"s"!=g&&"n"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();'
|
|
618
618
|
])}`;
|
|
619
619
|
//#endregion
|
package/lib/sharing/utils.js
CHANGED
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const { dirname, join, readJson } = require("../
|
|
8
|
+
const { dirname, join, readJson } = require("../fs/fs");
|
|
9
|
+
const { parseRange, satisfy } = require("./semver");
|
|
9
10
|
|
|
10
|
-
/** @import { InputFileSystem, JsonObject, JsonPrimitive } from "../
|
|
11
|
+
/** @import { InputFileSystem, JsonObject, JsonPrimitive } from "../fs/fs" */
|
|
12
|
+
/** @import { SharedModuleFilter } from "./SharePlugin" */
|
|
11
13
|
|
|
12
14
|
// Extreme shorthand only for github. eg: foo/bar
|
|
13
15
|
const RE_URL_GITHUB_EXTREME_SHORT = /^[^/@:.\s][^/@:\s]*\/[^@:\s]*[^/@:\s]#\S+/;
|
|
@@ -425,3 +427,58 @@ function normalizeVersion(versionDesc) {
|
|
|
425
427
|
}
|
|
426
428
|
|
|
427
429
|
module.exports.normalizeVersion = normalizeVersion;
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Tests the request remainder under a prefix key against `include`/`exclude` request filters.
|
|
433
|
+
* @param {string} remainder request after the prefix
|
|
434
|
+
* @param {SharedModuleFilter=} include only share matching requests
|
|
435
|
+
* @param {SharedModuleFilter=} exclude don't share matching requests
|
|
436
|
+
* @returns {boolean} true, when the request should be shared
|
|
437
|
+
*/
|
|
438
|
+
const matchesRequestFilters = (remainder, include, exclude) => {
|
|
439
|
+
/**
|
|
440
|
+
* @param {string | RegExp} pattern request filter
|
|
441
|
+
* @returns {boolean} true, when the remainder matches
|
|
442
|
+
*/
|
|
443
|
+
const matches = (pattern) => {
|
|
444
|
+
if (typeof pattern === "string") return remainder === pattern;
|
|
445
|
+
// a global or sticky RegExp would resume from the previous match
|
|
446
|
+
pattern.lastIndex = 0;
|
|
447
|
+
return pattern.test(remainder);
|
|
448
|
+
};
|
|
449
|
+
if (include && include.request !== undefined && !matches(include.request)) {
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
return !(
|
|
453
|
+
exclude &&
|
|
454
|
+
exclude.request !== undefined &&
|
|
455
|
+
matches(exclude.request)
|
|
456
|
+
);
|
|
457
|
+
};
|
|
458
|
+
|
|
459
|
+
module.exports.matchesRequestFilters = matchesRequestFilters;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Tests a module version against `include`/`exclude` version filters; an unknown version fails `include`.
|
|
463
|
+
* @param {string | false | undefined} version version of the module
|
|
464
|
+
* @param {SharedModuleFilter=} include only share matching versions
|
|
465
|
+
* @param {SharedModuleFilter=} exclude don't share matching versions
|
|
466
|
+
* @returns {boolean} true, when the version should be shared
|
|
467
|
+
*/
|
|
468
|
+
const matchesVersionFilters = (version, include, exclude) => {
|
|
469
|
+
if (
|
|
470
|
+
include &&
|
|
471
|
+
include.version !== undefined &&
|
|
472
|
+
(!version || !satisfy(parseRange(include.version), version))
|
|
473
|
+
) {
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
return !(
|
|
477
|
+
exclude &&
|
|
478
|
+
exclude.version !== undefined &&
|
|
479
|
+
version &&
|
|
480
|
+
satisfy(parseRange(exclude.version), version)
|
|
481
|
+
);
|
|
482
|
+
};
|
|
483
|
+
|
|
484
|
+
module.exports.matchesVersionFilters = matchesVersionFilters;
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
const util = require("util");
|
|
9
9
|
const { version: WEBPACK_VERSION } = require("../../package.json");
|
|
10
|
-
const
|
|
11
|
-
const ModuleDependency = require("../dependencies/ModuleDependency");
|
|
10
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
12
11
|
const { LogType } = require("../logging/Logger");
|
|
12
|
+
const {
|
|
13
|
+
WEBPACK_MODULE_TYPE_RUNTIME
|
|
14
|
+
} = require("../module/ModuleTypeConstants");
|
|
13
15
|
const AggressiveSplittingPlugin = require("../optimize/AggressiveSplittingPlugin");
|
|
14
16
|
const SizeLimitsPlugin = require("../performance/SizeLimitsPlugin");
|
|
15
17
|
const { countIterable } = require("../util/IterableHelpers");
|
|
@@ -29,9 +31,9 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
|
|
|
29
31
|
/** @import { Source } from "webpack-sources" */
|
|
30
32
|
/** @import { StatsValue } from "../../declarations/WebpackOptions" */
|
|
31
33
|
/** @import StatsFactory, { StatsFactoryContext } from "./StatsFactory" */
|
|
32
|
-
/** @import Chunk, { ChunkId, ChunkName } from "../Chunk" */
|
|
33
|
-
/** @import { ModuleId } from "../ChunkGraph" */
|
|
34
|
-
/** @import ChunkGroup, { OriginRecord } from "../ChunkGroup" */
|
|
34
|
+
/** @import Chunk, { ChunkId, ChunkName } from "../graph/Chunk" */
|
|
35
|
+
/** @import { ModuleId } from "../graph/ChunkGraph" */
|
|
36
|
+
/** @import ChunkGroup, { OriginRecord } from "../graph/ChunkGroup" */
|
|
35
37
|
/**
|
|
36
38
|
* @import Compilation, {
|
|
37
39
|
* Asset,
|
|
@@ -46,12 +48,12 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
|
|
|
46
48
|
* @import Dependency, {
|
|
47
49
|
* DependencyLocation,
|
|
48
50
|
* ExportInfoName
|
|
49
|
-
* } from "../Dependency"
|
|
51
|
+
* } from "../graph/Dependency"
|
|
50
52
|
*/
|
|
51
|
-
/** @import Module, { NameForCondition, BuildInfo } from "../Module" */
|
|
52
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
53
|
-
/** @import ModuleGraphConnection from "../ModuleGraphConnection" */
|
|
54
|
-
/** @import ModuleProfile from "../ModuleProfile" */
|
|
53
|
+
/** @import Module, { NameForCondition, BuildInfo } from "../module/Module" */
|
|
54
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
55
|
+
/** @import ModuleGraphConnection from "../graph/ModuleGraphConnection" */
|
|
56
|
+
/** @import ModuleProfile from "../module/ModuleProfile" */
|
|
55
57
|
/** @import WebpackError from "../errors/WebpackError" */
|
|
56
58
|
/**
|
|
57
59
|
* @import {
|
|
@@ -69,7 +71,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier");
|
|
|
69
71
|
/**
|
|
70
72
|
* Defines the group config type used by this module.
|
|
71
73
|
* @template I, G
|
|
72
|
-
* @typedef {import("
|
|
74
|
+
* @typedef {import("./smartGrouping").GroupConfig<I, G>} GroupConfig
|
|
73
75
|
*/
|
|
74
76
|
|
|
75
77
|
/** @typedef {KnownStatsCompilation & Record<string, EXPECTED_ANY>} StatsCompilation */
|
|
@@ -445,7 +447,7 @@ const countWithChildren = (compilation, getItems) => {
|
|
|
445
447
|
/** @type {ExtractorsByOption<string | ErrorWithCause | AggregateError | WebpackError, StatsError>} */
|
|
446
448
|
const EXTRACT_ERROR = {
|
|
447
449
|
_: (object, error, context, { requestShortener }) => {
|
|
448
|
-
// TODO
|
|
450
|
+
// TODO in the next major release: disallow strings in the errors/warnings list
|
|
449
451
|
if (typeof error === "string") {
|
|
450
452
|
object.message = error;
|
|
451
453
|
} else {
|
|
@@ -1274,10 +1276,9 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1274
1276
|
{ name, chunkGroup },
|
|
1275
1277
|
{ compilation }
|
|
1276
1278
|
) => {
|
|
1277
|
-
// SSR
|
|
1278
|
-
//
|
|
1279
|
-
//
|
|
1280
|
-
// carry hints; split-chunk / async chunk groups are skipped.
|
|
1279
|
+
// An SSR framework reads this to inject the `<link>` tags into its own
|
|
1280
|
+
// HTML without walking the chunk graph. Only entrypoints carry hints, so
|
|
1281
|
+
// split-chunk and async groups are skipped.
|
|
1281
1282
|
if (!compilation.entrypoints.get(name)) return;
|
|
1282
1283
|
|
|
1283
1284
|
const ResourceHintPlugin = require("../prefetch/ResourceHintPlugin");
|
|
@@ -1504,9 +1505,9 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1504
1505
|
object.storing = profile.storing;
|
|
1505
1506
|
object.additionalResolving = profile.additionalFactories;
|
|
1506
1507
|
object.additionalIntegration = profile.additionalIntegration;
|
|
1507
|
-
// TODO
|
|
1508
|
+
// TODO in the next major release: remove this
|
|
1508
1509
|
object.factory = profile.factory;
|
|
1509
|
-
// TODO
|
|
1510
|
+
// TODO in the next major release: remove this
|
|
1510
1511
|
object.dependencies = profile.additionalFactories;
|
|
1511
1512
|
}
|
|
1512
1513
|
},
|
|
@@ -1531,7 +1532,7 @@ const SIMPLE_EXTRACTORS = {
|
|
|
1531
1532
|
_: (object, reason, { runtime }, { requestShortener }) => {
|
|
1532
1533
|
const dep = reason.dependency;
|
|
1533
1534
|
const moduleDep =
|
|
1534
|
-
dep && dep
|
|
1535
|
+
dep && isDependencyKind(dep, "module-dependency") ? dep : undefined;
|
|
1535
1536
|
const { originModule, resolvedOriginModule } = reason;
|
|
1536
1537
|
const originName = originModule
|
|
1537
1538
|
? originModule.readableIdentifier(requestShortener)
|
|
@@ -2609,8 +2610,9 @@ const sortOrderRegular = (field) => {
|
|
|
2609
2610
|
|
|
2610
2611
|
/**
|
|
2611
2612
|
* Returns zero.
|
|
2612
|
-
* @
|
|
2613
|
-
* @param {
|
|
2613
|
+
* @template T
|
|
2614
|
+
* @param {T} a first
|
|
2615
|
+
* @param {T} b second
|
|
2614
2616
|
* @returns {-1 | 0 | 1} zero
|
|
2615
2617
|
*/
|
|
2616
2618
|
const noSort = (a, b) => 0;
|
|
@@ -2710,7 +2712,7 @@ const RESULT_SORTERS = {
|
|
|
2710
2712
|
|
|
2711
2713
|
/**
|
|
2712
2714
|
* Processes the provided config.
|
|
2713
|
-
* @template {Record<string, Record<string,
|
|
2715
|
+
* @template {Record<string, Record<string, (...args: never[]) => void>>} T
|
|
2714
2716
|
* @param {T} config the config see above
|
|
2715
2717
|
* @param {NormalizedStatsOptions} options stats options
|
|
2716
2718
|
* @param {(hookFor: keyof T, fn: ExtractFunction<T>) => void} fn handler function called for every active line in config
|
|
@@ -2734,7 +2736,7 @@ const iterateConfig = (config, options, fn) => {
|
|
|
2734
2736
|
}
|
|
2735
2737
|
}
|
|
2736
2738
|
}
|
|
2737
|
-
fn(hookFor, subConfig[option]);
|
|
2739
|
+
fn(hookFor, /** @type {ExtractFunction<T>} */ (subConfig[option]));
|
|
2738
2740
|
}
|
|
2739
2741
|
}
|
|
2740
2742
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @import { ChunkId, ChunkName } from "../Chunk" */
|
|
8
|
+
/** @import { ChunkId, ChunkName } from "../graph/Chunk" */
|
|
9
9
|
/** @import Compiler from "../Compiler" */
|
|
10
10
|
/** @import { LogTypeEnum } from "../logging/Logger" */
|
|
11
11
|
/**
|
|
@@ -1508,8 +1508,8 @@ const AVAILABLE_COLORS = {
|
|
|
1508
1508
|
|
|
1509
1509
|
/**
|
|
1510
1510
|
* Defines the tail parameters type used by this module.
|
|
1511
|
-
* @template {(...args:
|
|
1512
|
-
* @typedef {T extends (firstArg:
|
|
1511
|
+
* @template {(...args: never[]) => string} T
|
|
1512
|
+
* @typedef {T extends (firstArg: never, ...rest: infer R) => string ? R : never} TailParameters
|
|
1513
1513
|
*/
|
|
1514
1514
|
|
|
1515
1515
|
/** @typedef {{ [Key in keyof KnownStatsPrinterFormatters]: (value: Parameters<NonNullable<KnownStatsPrinterFormatters[Key]>>[0], options: Required<KnownStatsPrinterColorFunctions> & StatsPrinterContextWithExtra, ...args: TailParameters<NonNullable<KnownStatsPrinterFormatters[Key]>>) => string }} AvailableFormats */
|
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
const identifierUtils = require("
|
|
8
|
+
const identifierUtils = require("../util/identifier");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @import {
|
|
12
12
|
* StatsOptions,
|
|
13
13
|
* StatsValue
|
|
14
|
-
* } from "
|
|
14
|
+
* } from "../../declarations/WebpackOptions"
|
|
15
15
|
*/
|
|
16
16
|
/**
|
|
17
17
|
* @import {
|
|
18
18
|
* CreateStatsOptionsContext,
|
|
19
19
|
* NormalizedStatsOptions
|
|
20
|
-
* } from "
|
|
20
|
+
* } from "../Compilation"
|
|
21
21
|
*/
|
|
22
22
|
/** @import Stats from "./Stats" */
|
|
23
23
|
/**
|
|
@@ -25,7 +25,7 @@ const identifierUtils = require("./util/identifier");
|
|
|
25
25
|
* KnownStatsCompilation,
|
|
26
26
|
* StatsCompilation,
|
|
27
27
|
* StatsError
|
|
28
|
-
* } from "./
|
|
28
|
+
* } from "./DefaultStatsFactoryPlugin"
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @import { StatsValue } from "
|
|
9
|
-
/** @import Compilation from "
|
|
10
|
-
/** @import { StatsCompilation } from "./
|
|
8
|
+
/** @import { StatsValue } from "../../declarations/WebpackOptions" */
|
|
9
|
+
/** @import Compilation from "../Compilation" */
|
|
10
|
+
/** @import { StatsCompilation } from "./DefaultStatsFactoryPlugin" */
|
|
11
11
|
|
|
12
12
|
class Stats {
|
|
13
13
|
/**
|
|
@@ -48,7 +48,7 @@ class Stats {
|
|
|
48
48
|
*/
|
|
49
49
|
hasErrors() {
|
|
50
50
|
return (
|
|
51
|
-
this.compilation.
|
|
51
|
+
this.compilation.getErrors().length > 0 ||
|
|
52
52
|
this.compilation.children.some((child) => child.getStats().hasErrors())
|
|
53
53
|
);
|
|
54
54
|
}
|
|
@@ -6,21 +6,21 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { HookMap, SyncBailHook, SyncWaterfallHook } = require("tapable");
|
|
9
|
-
const smartGrouping = require("
|
|
9
|
+
const smartGrouping = require("./smartGrouping");
|
|
10
10
|
|
|
11
|
-
/** @import Chunk from "../Chunk" */
|
|
12
|
-
/** @import { OriginRecord } from "../ChunkGroup" */
|
|
11
|
+
/** @import Chunk from "../graph/Chunk" */
|
|
12
|
+
/** @import { OriginRecord } from "../graph/ChunkGroup" */
|
|
13
13
|
/** @import Compilation, { Asset } from "../Compilation" */
|
|
14
|
-
/** @import Dependency from "../Dependency" */
|
|
15
|
-
/** @import Module from "../Module" */
|
|
16
|
-
/** @import ModuleGraphConnection from "../ModuleGraphConnection" */
|
|
14
|
+
/** @import Dependency from "../graph/Dependency" */
|
|
15
|
+
/** @import Module from "../module/Module" */
|
|
16
|
+
/** @import ModuleGraphConnection from "../graph/ModuleGraphConnection" */
|
|
17
17
|
/** @typedef {import("../util/comparators").Comparator<EXPECTED_ANY>} Comparator */
|
|
18
|
-
/** @import ModuleProfile from "../ModuleProfile" */
|
|
18
|
+
/** @import ModuleProfile from "../module/ModuleProfile" */
|
|
19
19
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
20
20
|
/**
|
|
21
21
|
* Defines the group config type used by this module.
|
|
22
22
|
* @template T, R
|
|
23
|
-
* @typedef {import("
|
|
23
|
+
* @typedef {import("./smartGrouping").GroupConfig<T, R>} GroupConfig
|
|
24
24
|
*/
|
|
25
25
|
/**
|
|
26
26
|
* @import {
|
|
@@ -187,7 +187,7 @@ class StatsFactory {
|
|
|
187
187
|
* For each level waterfall.
|
|
188
188
|
* @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM
|
|
189
189
|
* @template {HM extends HookMap<infer H> ? H : never} H
|
|
190
|
-
* @template
|
|
190
|
+
* @template D
|
|
191
191
|
* @param {HM} hookMap hook map
|
|
192
192
|
* @param {Caches<H>} cache cache
|
|
193
193
|
* @param {string} type type
|
|
@@ -207,7 +207,7 @@ class StatsFactory {
|
|
|
207
207
|
* For each level filter.
|
|
208
208
|
* @template {StatsFactoryHooks[keyof StatsFactoryHooks]} T
|
|
209
209
|
* @template {T extends HookMap<infer H> ? H : never} H
|
|
210
|
-
* @template
|
|
210
|
+
* @template D
|
|
211
211
|
* @param {T} hookMap hook map
|
|
212
212
|
* @param {Caches<H>} cache cache
|
|
213
213
|
* @param {string} type type
|
|
@@ -421,13 +421,14 @@ class StatsFactory {
|
|
|
421
421
|
* for equal items. Inlined instead of `concatComparators(...c, keepOriginalOrder())`
|
|
422
422
|
* because that combination is single-use per sort and only thrashes the comparator
|
|
423
423
|
* caches (a fresh tiebreaker closure every call allocates a new cache entry).
|
|
424
|
-
* @
|
|
425
|
-
* @param {
|
|
424
|
+
* @template T
|
|
425
|
+
* @param {T[]} items items to sort in place
|
|
426
|
+
* @param {import("../util/comparators").Comparator<T>[]} comparators comparators applied in order
|
|
426
427
|
* @returns {void}
|
|
427
428
|
*/
|
|
428
429
|
const sortWithOriginalOrder = (items, comparators) => {
|
|
429
430
|
// original-index tiebreaker keeps the sort stable on engines without a stable Array.sort
|
|
430
|
-
/** @type {Map<
|
|
431
|
+
/** @type {Map<T, number>} */
|
|
431
432
|
const originalOrder = new Map();
|
|
432
433
|
for (let i = 0; i < items.length; i++) {
|
|
433
434
|
originalOrder.set(items[i], i);
|