webpack 5.106.1 → 5.107.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 +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +101 -19
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +158 -68
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +19 -6
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +33 -4
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +5 -2
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -0
- package/lib/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +22 -1
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +39 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +18 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/README.md
CHANGED
|
@@ -302,12 +302,12 @@ For information about the governance of the webpack project, see [GOVERNANCE.md]
|
|
|
302
302
|
|
|
303
303
|
- [alexander-akait](https://github.com/alexander-akait) -
|
|
304
304
|
**Alexander Akait** <<sheo13666q@gmail.com>> (he/him)
|
|
305
|
+
- [avivkeller](https://github.com/avivkeller) -
|
|
306
|
+
**Aviv Keller** <<me@aviv.sh>> (he/him)
|
|
305
307
|
- [evenstensberg](https://github.com/evenstensberg) -
|
|
306
308
|
**Even Stensberg** <<evenstensberg@gmail.com>> (he/him)
|
|
307
309
|
- [ovflowd](https://github.com/ovflowd) -
|
|
308
310
|
**Claudio Wunder** <<cwunder@gnome.org>> (he/they)
|
|
309
|
-
- [snitin315](https://github.com/snitin315) -
|
|
310
|
-
**Nitin Kumar** <<snitin315@gmail.com>> (he/him)
|
|
311
311
|
- [thelarkinn](https://github.com/thelarkinn) -
|
|
312
312
|
**Sean Larkin** <<selarkin@microsoft.com>> (he/him)
|
|
313
313
|
|
package/lib/APIPlugin.js
CHANGED
|
@@ -14,10 +14,10 @@ const {
|
|
|
14
14
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
15
15
|
} = require("./ModuleTypeConstants");
|
|
16
16
|
const RuntimeGlobals = require("./RuntimeGlobals");
|
|
17
|
-
const WebpackError = require("./WebpackError");
|
|
18
17
|
const ConstDependency = require("./dependencies/ConstDependency");
|
|
19
18
|
const ModuleInitFragmentDependency = require("./dependencies/ModuleInitFragmentDependency");
|
|
20
19
|
const RuntimeRequirementsDependency = require("./dependencies/RuntimeRequirementsDependency");
|
|
20
|
+
const WebpackError = require("./errors/WebpackError");
|
|
21
21
|
const BasicEvaluatedExpression = require("./javascript/BasicEvaluatedExpression");
|
|
22
22
|
const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin");
|
|
23
23
|
const {
|
|
@@ -34,6 +34,7 @@ const GetFullHashRuntimeModule = require("./runtime/GetFullHashRuntimeModule");
|
|
|
34
34
|
/** @typedef {import("./javascript/JavascriptParser").Range} Range */
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
+
* Returns the replacement definitions used for webpack API identifiers.
|
|
37
38
|
* @returns {Record<string, { expr: string, req: string[] | null, type?: string, assign: boolean }>} replacements
|
|
38
39
|
*/
|
|
39
40
|
function getReplacements() {
|
|
@@ -140,7 +141,7 @@ const PLUGIN_NAME = "APIPlugin";
|
|
|
140
141
|
|
|
141
142
|
class APIPlugin {
|
|
142
143
|
/**
|
|
143
|
-
*
|
|
144
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
144
145
|
* @param {Compiler} compiler the compiler instance
|
|
145
146
|
* @returns {void}
|
|
146
147
|
*/
|
|
@@ -204,6 +205,7 @@ class APIPlugin {
|
|
|
204
205
|
);
|
|
205
206
|
|
|
206
207
|
/**
|
|
208
|
+
* Handles the hook callback for this code path.
|
|
207
209
|
* @param {JavascriptParser} parser the parser
|
|
208
210
|
*/
|
|
209
211
|
const handler = (parser) => {
|
|
@@ -71,6 +71,7 @@ class AsyncDependenciesBlock extends DependenciesBlock {
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
|
+
* Updates the hash with the data contributed by this instance.
|
|
74
75
|
* @param {Hash} hash the hash used to track dependencies
|
|
75
76
|
* @param {UpdateHashContext} context context
|
|
76
77
|
* @returns {void}
|
|
@@ -88,6 +89,7 @@ class AsyncDependenciesBlock extends DependenciesBlock {
|
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
/**
|
|
92
|
+
* Serializes this instance into the provided serializer context.
|
|
91
93
|
* @param {ObjectSerializerContext} context context
|
|
92
94
|
*/
|
|
93
95
|
serialize(context) {
|
|
@@ -99,6 +101,7 @@ class AsyncDependenciesBlock extends DependenciesBlock {
|
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
/**
|
|
104
|
+
* Restores this instance from the provided deserializer context.
|
|
102
105
|
* @param {ObjectDeserializerContext} context context
|
|
103
106
|
*/
|
|
104
107
|
deserialize(context) {
|
|
@@ -13,9 +13,14 @@ const PrefetchDependency = require("./dependencies/PrefetchDependency");
|
|
|
13
13
|
|
|
14
14
|
const PLUGIN_NAME = "AutomaticPrefetchPlugin";
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Records modules from one compilation and adds them back as prefetch
|
|
18
|
+
* dependencies in the next compilation.
|
|
19
|
+
*/
|
|
16
20
|
class AutomaticPrefetchPlugin {
|
|
17
21
|
/**
|
|
18
|
-
*
|
|
22
|
+
* Registers hooks that remember previously built normal modules and enqueue
|
|
23
|
+
* them as `PrefetchDependency` requests during the next make phase.
|
|
19
24
|
* @param {Compiler} compiler the compiler instance
|
|
20
25
|
* @returns {void}
|
|
21
26
|
*/
|
package/lib/BannerPlugin.js
CHANGED
|
@@ -21,6 +21,8 @@ const Template = require("./Template");
|
|
|
21
21
|
/** @typedef {(data: { hash?: string, chunk: Chunk, filename: string }) => string} BannerFunction */
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
+
* Wraps banner text in a JavaScript block comment, preserving multi-line
|
|
25
|
+
* formatting and escaping accidental comment terminators.
|
|
24
26
|
* @param {string} str string to wrap
|
|
25
27
|
* @returns {string} wrapped string
|
|
26
28
|
*/
|
|
@@ -38,8 +40,14 @@ const wrapComment = (str) => {
|
|
|
38
40
|
|
|
39
41
|
const PLUGIN_NAME = "BannerPlugin";
|
|
40
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Prepends or appends banner text to emitted assets that match the configured
|
|
45
|
+
* file filters.
|
|
46
|
+
*/
|
|
41
47
|
class BannerPlugin {
|
|
42
48
|
/**
|
|
49
|
+
* Normalizes banner options and compiles the configured banner source into a
|
|
50
|
+
* function that can render per-asset banner text.
|
|
43
51
|
* @param {BannerPluginArgument} options options object
|
|
44
52
|
*/
|
|
45
53
|
constructor(options) {
|
|
@@ -69,7 +77,8 @@ class BannerPlugin {
|
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
/**
|
|
72
|
-
*
|
|
80
|
+
* Validates the configured options and injects rendered banner comments into
|
|
81
|
+
* matching compilation assets at the configured process-assets stage.
|
|
73
82
|
* @param {Compiler} compiler the compiler instance
|
|
74
83
|
* @returns {void}
|
|
75
84
|
*/
|
package/lib/Cache.js
CHANGED
|
@@ -9,19 +9,20 @@ const { AsyncParallelHook, AsyncSeriesBailHook, SyncHook } = require("tapable");
|
|
|
9
9
|
const {
|
|
10
10
|
makeWebpackError,
|
|
11
11
|
makeWebpackErrorCallback
|
|
12
|
-
} = require("./HookWebpackError");
|
|
13
|
-
|
|
14
|
-
/** @typedef {import("./WebpackError")} WebpackError */
|
|
12
|
+
} = require("./errors/HookWebpackError");
|
|
15
13
|
|
|
16
14
|
/**
|
|
15
|
+
* Cache validation token whose string representation identifies the build
|
|
16
|
+
* inputs associated with a cached value.
|
|
17
17
|
* @typedef {object} Etag
|
|
18
18
|
* @property {() => string} toString
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
+
* Completion callback used by cache operations that either fail with a `Error` or resolve with a typed result.
|
|
22
23
|
* @template T
|
|
23
24
|
* @callback CallbackCache
|
|
24
|
-
* @param {
|
|
25
|
+
* @param {Error | null} err
|
|
25
26
|
* @param {T=} result
|
|
26
27
|
* @returns {void}
|
|
27
28
|
*/
|
|
@@ -29,6 +30,8 @@ const {
|
|
|
29
30
|
/** @typedef {EXPECTED_ANY} Data */
|
|
30
31
|
|
|
31
32
|
/**
|
|
33
|
+
* Handler invoked after a cache read succeeds so additional cache layers can
|
|
34
|
+
* react to the retrieved value.
|
|
32
35
|
* @template T
|
|
33
36
|
* @callback GotHandler
|
|
34
37
|
* @param {T} result
|
|
@@ -37,6 +40,8 @@ const {
|
|
|
37
40
|
*/
|
|
38
41
|
|
|
39
42
|
/**
|
|
43
|
+
* Creates a callback wrapper that waits for a fixed number of completions and
|
|
44
|
+
* forwards the first error immediately.
|
|
40
45
|
* @param {number} times times
|
|
41
46
|
* @param {(err?: Error | null) => void} callback callback
|
|
42
47
|
* @returns {(err?: Error | null) => void} callback
|
|
@@ -51,7 +56,14 @@ const needCalls = (times, callback) => (err) => {
|
|
|
51
56
|
}
|
|
52
57
|
};
|
|
53
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Abstract cache interface backed by tapable hooks for reading, writing, idle
|
|
61
|
+
* transitions, and shutdown across webpack cache implementations.
|
|
62
|
+
*/
|
|
54
63
|
class Cache {
|
|
64
|
+
/**
|
|
65
|
+
* Initializes the cache lifecycle hooks implemented by cache backends.
|
|
66
|
+
*/
|
|
55
67
|
constructor() {
|
|
56
68
|
this.hooks = {
|
|
57
69
|
/** @type {AsyncSeriesBailHook<[string, Etag | null, GotHandler<EXPECTED_ANY>[]], Data>} */
|
|
@@ -70,6 +82,8 @@ class Cache {
|
|
|
70
82
|
}
|
|
71
83
|
|
|
72
84
|
/**
|
|
85
|
+
* Retrieves a cached value and lets registered `gotHandlers` observe the
|
|
86
|
+
* result before the caller receives it.
|
|
73
87
|
* @template T
|
|
74
88
|
* @param {string} identifier the cache identifier
|
|
75
89
|
* @param {Etag | null} etag the etag
|
|
@@ -103,6 +117,8 @@ class Cache {
|
|
|
103
117
|
}
|
|
104
118
|
|
|
105
119
|
/**
|
|
120
|
+
* Stores a cache entry for the identifier and etag through the registered
|
|
121
|
+
* cache backend hooks.
|
|
106
122
|
* @template T
|
|
107
123
|
* @param {string} identifier the cache identifier
|
|
108
124
|
* @param {Etag | null} etag the etag
|
|
@@ -120,7 +136,8 @@ class Cache {
|
|
|
120
136
|
}
|
|
121
137
|
|
|
122
138
|
/**
|
|
123
|
-
*
|
|
139
|
+
* Persists the set of build dependencies required to determine whether the
|
|
140
|
+
* cache can be restored in a future compilation.
|
|
124
141
|
* @param {Iterable<string>} dependencies list of all build dependencies
|
|
125
142
|
* @param {CallbackCache<void>} callback signals when the dependencies are stored
|
|
126
143
|
* @returns {void}
|
|
@@ -133,6 +150,8 @@ class Cache {
|
|
|
133
150
|
}
|
|
134
151
|
|
|
135
152
|
/**
|
|
153
|
+
* Signals that webpack is entering an idle phase and cache backends may flush
|
|
154
|
+
* or compact pending work.
|
|
136
155
|
* @returns {void}
|
|
137
156
|
*/
|
|
138
157
|
beginIdle() {
|
|
@@ -140,6 +159,8 @@ class Cache {
|
|
|
140
159
|
}
|
|
141
160
|
|
|
142
161
|
/**
|
|
162
|
+
* Signals that webpack is leaving the idle phase and waits for cache
|
|
163
|
+
* backends to finish any asynchronous resume work.
|
|
143
164
|
* @param {CallbackCache<void>} callback signals when the call finishes
|
|
144
165
|
* @returns {void}
|
|
145
166
|
*/
|
|
@@ -150,6 +171,7 @@ class Cache {
|
|
|
150
171
|
}
|
|
151
172
|
|
|
152
173
|
/**
|
|
174
|
+
* Shuts down every registered cache backend and waits for cleanup to finish.
|
|
153
175
|
* @param {CallbackCache<void>} callback signals when the call finishes
|
|
154
176
|
* @returns {void}
|
|
155
177
|
*/
|
package/lib/CacheFacade.js
CHANGED
|
@@ -16,6 +16,7 @@ const mergeEtags = require("./cache/mergeEtags");
|
|
|
16
16
|
/** @typedef {import("./util/Hash").HashFunction} HashFunction */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Defines the callback cache callback.
|
|
19
20
|
* @template T
|
|
20
21
|
* @callback CallbackCache
|
|
21
22
|
* @param {(Error | null)=} err
|
|
@@ -24,6 +25,7 @@ const mergeEtags = require("./cache/mergeEtags");
|
|
|
24
25
|
*/
|
|
25
26
|
|
|
26
27
|
/**
|
|
28
|
+
* Defines the callback normal error cache callback.
|
|
27
29
|
* @template T
|
|
28
30
|
* @callback CallbackNormalErrorCache
|
|
29
31
|
* @param {(Error | null)=} err
|
|
@@ -33,6 +35,7 @@ const mergeEtags = require("./cache/mergeEtags");
|
|
|
33
35
|
|
|
34
36
|
class MultiItemCache {
|
|
35
37
|
/**
|
|
38
|
+
* Creates an instance of MultiItemCache.
|
|
36
39
|
* @param {ItemCacheFacade[]} items item caches
|
|
37
40
|
*/
|
|
38
41
|
constructor(items) {
|
|
@@ -43,6 +46,7 @@ class MultiItemCache {
|
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/**
|
|
49
|
+
* Returns value.
|
|
46
50
|
* @template T
|
|
47
51
|
* @param {CallbackCache<T>} callback signals when the value is retrieved
|
|
48
52
|
* @returns {void}
|
|
@@ -52,11 +56,13 @@ class MultiItemCache {
|
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**
|
|
59
|
+
* Returns promise with the data.
|
|
55
60
|
* @template T
|
|
56
61
|
* @returns {Promise<T>} promise with the data
|
|
57
62
|
*/
|
|
58
63
|
getPromise() {
|
|
59
64
|
/**
|
|
65
|
+
* Returns promise with the data.
|
|
60
66
|
* @param {number} i index
|
|
61
67
|
* @returns {Promise<T>} promise with the data
|
|
62
68
|
*/
|
|
@@ -69,6 +75,7 @@ class MultiItemCache {
|
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
/**
|
|
78
|
+
* Processes the provided data.
|
|
72
79
|
* @template T
|
|
73
80
|
* @param {T} data the value to store
|
|
74
81
|
* @param {CallbackCache<void>} callback signals when the value is stored
|
|
@@ -83,6 +90,7 @@ class MultiItemCache {
|
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
/**
|
|
93
|
+
* Stores the provided data.
|
|
86
94
|
* @template T
|
|
87
95
|
* @param {T} data the value to store
|
|
88
96
|
* @returns {Promise<void>} promise signals when the value is stored
|
|
@@ -96,6 +104,7 @@ class MultiItemCache {
|
|
|
96
104
|
|
|
97
105
|
class ItemCacheFacade {
|
|
98
106
|
/**
|
|
107
|
+
* Creates an instance of ItemCacheFacade.
|
|
99
108
|
* @param {Cache} cache the root cache
|
|
100
109
|
* @param {string} name the child cache item name
|
|
101
110
|
* @param {Etag | null} etag the etag
|
|
@@ -107,6 +116,7 @@ class ItemCacheFacade {
|
|
|
107
116
|
}
|
|
108
117
|
|
|
109
118
|
/**
|
|
119
|
+
* Returns value.
|
|
110
120
|
* @template T
|
|
111
121
|
* @param {CallbackCache<T>} callback signals when the value is retrieved
|
|
112
122
|
* @returns {void}
|
|
@@ -116,6 +126,7 @@ class ItemCacheFacade {
|
|
|
116
126
|
}
|
|
117
127
|
|
|
118
128
|
/**
|
|
129
|
+
* Returns promise with the data.
|
|
119
130
|
* @template T
|
|
120
131
|
* @returns {Promise<T>} promise with the data
|
|
121
132
|
*/
|
|
@@ -132,6 +143,7 @@ class ItemCacheFacade {
|
|
|
132
143
|
}
|
|
133
144
|
|
|
134
145
|
/**
|
|
146
|
+
* Processes the provided data.
|
|
135
147
|
* @template T
|
|
136
148
|
* @param {T} data the value to store
|
|
137
149
|
* @param {CallbackCache<void>} callback signals when the value is stored
|
|
@@ -142,6 +154,7 @@ class ItemCacheFacade {
|
|
|
142
154
|
}
|
|
143
155
|
|
|
144
156
|
/**
|
|
157
|
+
* Stores the provided data.
|
|
145
158
|
* @template T
|
|
146
159
|
* @param {T} data the value to store
|
|
147
160
|
* @returns {Promise<void>} promise signals when the value is stored
|
|
@@ -159,6 +172,7 @@ class ItemCacheFacade {
|
|
|
159
172
|
}
|
|
160
173
|
|
|
161
174
|
/**
|
|
175
|
+
* Processes the provided computer.
|
|
162
176
|
* @template T
|
|
163
177
|
* @param {(callback: CallbackNormalErrorCache<T>) => void} computer function to compute the value if not cached
|
|
164
178
|
* @param {CallbackNormalErrorCache<T>} callback signals when the value is retrieved
|
|
@@ -179,6 +193,7 @@ class ItemCacheFacade {
|
|
|
179
193
|
}
|
|
180
194
|
|
|
181
195
|
/**
|
|
196
|
+
* Returns promise with the data.
|
|
182
197
|
* @template T
|
|
183
198
|
* @param {() => Promise<T> | T} computer function to compute the value if not cached
|
|
184
199
|
* @returns {Promise<T>} promise with the data
|
|
@@ -194,6 +209,7 @@ class ItemCacheFacade {
|
|
|
194
209
|
|
|
195
210
|
class CacheFacade {
|
|
196
211
|
/**
|
|
212
|
+
* Creates an instance of CacheFacade.
|
|
197
213
|
* @param {Cache} cache the root cache
|
|
198
214
|
* @param {string} name the child cache name
|
|
199
215
|
* @param {HashFunction=} hashFunction the hash function to use
|
|
@@ -205,6 +221,7 @@ class CacheFacade {
|
|
|
205
221
|
}
|
|
206
222
|
|
|
207
223
|
/**
|
|
224
|
+
* Returns child cache.
|
|
208
225
|
* @param {string} name the child cache name#
|
|
209
226
|
* @returns {CacheFacade} child cache
|
|
210
227
|
*/
|
|
@@ -217,6 +234,7 @@ class CacheFacade {
|
|
|
217
234
|
}
|
|
218
235
|
|
|
219
236
|
/**
|
|
237
|
+
* Returns item cache.
|
|
220
238
|
* @param {string} identifier the cache identifier
|
|
221
239
|
* @param {Etag | null} etag the etag
|
|
222
240
|
* @returns {ItemCacheFacade} item cache
|
|
@@ -230,6 +248,7 @@ class CacheFacade {
|
|
|
230
248
|
}
|
|
231
249
|
|
|
232
250
|
/**
|
|
251
|
+
* Gets lazy hashed etag.
|
|
233
252
|
* @param {HashableObject} obj an hashable object
|
|
234
253
|
* @returns {Etag} an etag that is lazy hashed
|
|
235
254
|
*/
|
|
@@ -238,6 +257,7 @@ class CacheFacade {
|
|
|
238
257
|
}
|
|
239
258
|
|
|
240
259
|
/**
|
|
260
|
+
* Merges the provided values into a single result.
|
|
241
261
|
* @param {Etag} a an etag
|
|
242
262
|
* @param {Etag} b another etag
|
|
243
263
|
* @returns {Etag} an etag that represents both
|
|
@@ -247,6 +267,7 @@ class CacheFacade {
|
|
|
247
267
|
}
|
|
248
268
|
|
|
249
269
|
/**
|
|
270
|
+
* Returns value.
|
|
250
271
|
* @template T
|
|
251
272
|
* @param {string} identifier the cache identifier
|
|
252
273
|
* @param {Etag | null} etag the etag
|
|
@@ -258,6 +279,7 @@ class CacheFacade {
|
|
|
258
279
|
}
|
|
259
280
|
|
|
260
281
|
/**
|
|
282
|
+
* Returns promise with the data.
|
|
261
283
|
* @template T
|
|
262
284
|
* @param {string} identifier the cache identifier
|
|
263
285
|
* @param {Etag | null} etag the etag
|
|
@@ -276,6 +298,7 @@ class CacheFacade {
|
|
|
276
298
|
}
|
|
277
299
|
|
|
278
300
|
/**
|
|
301
|
+
* Processes the provided identifier.
|
|
279
302
|
* @template T
|
|
280
303
|
* @param {string} identifier the cache identifier
|
|
281
304
|
* @param {Etag | null} etag the etag
|
|
@@ -288,6 +311,7 @@ class CacheFacade {
|
|
|
288
311
|
}
|
|
289
312
|
|
|
290
313
|
/**
|
|
314
|
+
* Stores the provided identifier.
|
|
291
315
|
* @template T
|
|
292
316
|
* @param {string} identifier the cache identifier
|
|
293
317
|
* @param {Etag | null} etag the etag
|
|
@@ -307,6 +331,7 @@ class CacheFacade {
|
|
|
307
331
|
}
|
|
308
332
|
|
|
309
333
|
/**
|
|
334
|
+
* Processes the provided identifier.
|
|
310
335
|
* @template T
|
|
311
336
|
* @param {string} identifier the cache identifier
|
|
312
337
|
* @param {Etag | null} etag the etag
|
|
@@ -329,6 +354,7 @@ class CacheFacade {
|
|
|
329
354
|
}
|
|
330
355
|
|
|
331
356
|
/**
|
|
357
|
+
* Returns promise with the data.
|
|
332
358
|
* @template T
|
|
333
359
|
* @param {string} identifier the cache identifier
|
|
334
360
|
* @param {Etag | null} etag the etag
|