webpack 5.76.1 → 5.88.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.
Potentially problematic release.
This version of webpack might be problematic. Click here for more details.
- package/README.md +10 -4
- package/bin/webpack.js +26 -2
- package/hot/dev-server.js +2 -1
- package/hot/lazy-compilation-node.js +10 -0
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +22 -0
- package/hot/only-dev-server.js +2 -1
- package/hot/poll.js +3 -0
- package/hot/signal.js +4 -0
- package/lib/APIPlugin.js +174 -116
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -0
- package/lib/BannerPlugin.js +4 -0
- package/lib/CacheFacade.js +4 -0
- package/lib/CaseSensitiveModulesWarning.js +3 -1
- package/lib/Chunk.js +36 -18
- package/lib/ChunkGraph.js +4 -4
- package/lib/ChunkGroup.js +25 -10
- package/lib/CleanPlugin.js +30 -7
- package/lib/CodeGenerationResults.js +2 -2
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +17 -8
- package/lib/Compiler.js +12 -8
- package/lib/ConcatenationScope.js +2 -2
- package/lib/ConditionalInitFragment.js +11 -1
- package/lib/ConstPlugin.js +79 -44
- package/lib/ContextModule.js +20 -6
- package/lib/ContextModuleFactory.js +2 -1
- package/lib/ContextReplacementPlugin.js +13 -0
- package/lib/CssModule.js +169 -0
- package/lib/DefinePlugin.js +152 -86
- package/lib/DelegatedModule.js +22 -4
- package/lib/DelegatedModuleFactoryPlugin.js +6 -0
- package/lib/DependenciesBlock.js +17 -1
- package/lib/Dependency.js +19 -5
- package/lib/DllEntryPlugin.js +16 -1
- package/lib/DllModule.js +17 -2
- package/lib/DllModuleFactory.js +1 -1
- package/lib/DllReferencePlugin.js +13 -1
- package/lib/Entrypoint.js +1 -1
- package/lib/ErrorHelpers.js +62 -22
- package/lib/EvalSourceMapDevToolPlugin.js +9 -2
- package/lib/ExportsInfo.js +20 -3
- package/lib/ExportsInfoApiPlugin.js +30 -14
- package/lib/ExternalModule.js +30 -9
- package/lib/FileSystemInfo.js +9 -1
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +336 -348
- package/lib/FlagDependencyUsagePlugin.js +9 -9
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/HookWebpackError.js +1 -1
- package/lib/HotModuleReplacementPlugin.js +60 -46
- package/lib/IgnoreErrorModuleFactory.js +1 -1
- package/lib/InitFragment.js +28 -5
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +22 -5
- package/lib/LoaderOptionsPlugin.js +12 -2
- package/lib/MainTemplate.js +2 -2
- package/lib/Module.js +44 -12
- package/lib/ModuleBuildError.js +9 -0
- package/lib/ModuleDependencyError.js +4 -2
- package/lib/ModuleDependencyWarning.js +4 -2
- package/lib/ModuleError.js +9 -0
- package/lib/ModuleFactory.js +1 -1
- package/lib/ModuleFilenameHelpers.js +114 -4
- package/lib/ModuleGraph.js +33 -23
- package/lib/ModuleGraphConnection.js +19 -6
- package/lib/ModuleInfoHeaderPlugin.js +9 -2
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +9 -0
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +2 -0
- package/lib/ModuleStoreError.js +2 -1
- package/lib/ModuleTypeConstants.js +169 -0
- package/lib/ModuleWarning.js +9 -0
- package/lib/MultiWatching.js +4 -0
- package/lib/NodeStuffPlugin.js +65 -35
- package/lib/NormalModule.js +12 -2
- package/lib/NormalModuleFactory.js +56 -8
- package/lib/NormalModuleReplacementPlugin.js +5 -3
- package/lib/NullFactory.js +1 -1
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +71 -15
- package/lib/ProvidePlugin.js +30 -14
- package/lib/RawModule.js +13 -2
- package/lib/RecordIdsPlugin.js +4 -4
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimeModule.js +12 -11
- package/lib/RuntimePlugin.js +10 -3
- package/lib/RuntimeTemplate.js +29 -11
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +47 -11
- package/lib/Template.js +5 -3
- package/lib/UseStrictPlugin.js +29 -11
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +7 -0
- package/lib/WatchIgnorePlugin.js +4 -0
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +41 -44
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +24 -9
- package/lib/asset/AssetModulesPlugin.js +28 -12
- package/lib/asset/AssetParser.js +15 -7
- package/lib/asset/AssetSourceParser.js +8 -3
- package/lib/asset/RawDataUrlModule.js +15 -4
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -0
- package/lib/cache/PackFileCacheStrategy.js +42 -15
- package/lib/cache/ResolverCachePlugin.js +3 -0
- package/lib/config/browserslistTargetHandler.js +10 -10
- package/lib/config/defaults.js +306 -105
- package/lib/config/normalization.js +110 -71
- package/lib/config/target.js +37 -10
- package/lib/container/ContainerEntryModule.js +11 -1
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +3 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +12 -2
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/RemoteModule.js +11 -1
- package/lib/container/RemoteRuntimeModule.js +3 -2
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/css/CssExportsGenerator.js +9 -0
- package/lib/css/CssGenerator.js +5 -1
- package/lib/css/CssLoadingRuntimeModule.js +53 -22
- package/lib/css/CssModulesPlugin.js +253 -74
- package/lib/css/CssParser.js +697 -282
- package/lib/css/walkCssTokens.js +269 -138
- package/lib/debug/ProfilingPlugin.js +33 -12
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +13 -2
- package/lib/dependencies/AMDPlugin.js +33 -20
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -0
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +8 -2
- package/lib/dependencies/AMDRequireDependency.js +16 -1
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CachedConstDependency.js +14 -0
- package/lib/dependencies/CommonJsDependencyHelpers.js +9 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +19 -0
- package/lib/dependencies/CommonJsExportsDependency.js +16 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +77 -5
- package/lib/dependencies/CommonJsFullRequireDependency.js +10 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +174 -63
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +17 -0
- package/lib/dependencies/CommonJsRequireDependency.js +7 -0
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +16 -0
- package/lib/dependencies/ConstDependency.js +11 -2
- package/lib/dependencies/ContextDependency.js +15 -2
- package/lib/dependencies/ContextDependencyHelpers.js +3 -3
- package/lib/dependencies/ContextElementDependency.js +8 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +10 -1
- package/lib/dependencies/CriticalDependencyWarning.js +3 -0
- package/lib/dependencies/CssExportDependency.js +8 -0
- package/lib/dependencies/CssImportDependency.js +55 -3
- package/lib/dependencies/CssLocalIdentifierDependency.js +15 -1
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +10 -1
- package/lib/dependencies/CssUrlDependency.js +46 -16
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +10 -6
- package/lib/dependencies/ExportsInfoDependency.js +25 -4
- package/lib/dependencies/HarmonyAcceptDependency.js +10 -1
- package/lib/dependencies/HarmonyAcceptImportDependency.js +3 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +2 -1
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +22 -2
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +32 -6
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +5 -0
- package/lib/dependencies/HarmonyExportExpressionDependency.js +20 -3
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +22 -6
- package/lib/dependencies/HarmonyExportInitFragment.js +2 -1
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +11 -5
- package/lib/dependencies/HarmonyImportDependency.js +10 -1
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +53 -22
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +7 -2
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +139 -16
- package/lib/dependencies/HarmonyModulesPlugin.js +23 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -0
- package/lib/dependencies/ImportDependency.js +15 -4
- package/lib/dependencies/ImportEagerDependency.js +7 -4
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +51 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +18 -5
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +103 -51
- package/lib/dependencies/ImportParserPlugin.js +83 -25
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +7 -4
- package/lib/dependencies/JsonExportsDependency.js +9 -1
- package/lib/dependencies/LocalModule.js +16 -0
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +18 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +8 -0
- package/lib/dependencies/ModuleDependency.js +9 -1
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +14 -2
- package/lib/dependencies/PureExpressionDependency.js +10 -1
- package/lib/dependencies/RequireContextDependency.js +6 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +13 -5
- package/lib/dependencies/RequireContextPlugin.js +19 -6
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +6 -1
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +5 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +17 -0
- package/lib/dependencies/RequireResolveDependency.js +6 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +8 -0
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +48 -21
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +13 -4
- package/lib/dependencies/URLPlugin.js +31 -18
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +5 -0
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +105 -32
- package/lib/dependencies/getFunctionExpression.js +7 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +21 -8
- package/lib/esm/ModuleChunkLoadingPlugin.js +9 -0
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +19 -12
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +14 -5
- package/lib/ids/ChunkModuleIdRangePlugin.js +11 -0
- package/lib/ids/DeterministicChunkIdsPlugin.js +11 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +11 -7
- package/lib/ids/HashedModuleIdsPlugin.js +9 -2
- package/lib/ids/IdHelpers.js +6 -0
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +14 -3
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +1 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -2
- package/lib/index.js +8 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +137 -11
- package/lib/javascript/ChunkHelpers.js +2 -2
- package/lib/javascript/CommonJsChunkFormatPlugin.js +7 -3
- package/lib/javascript/EnableChunkLoadingPlugin.js +4 -0
- package/lib/javascript/JavascriptModulesPlugin.js +194 -194
- package/lib/javascript/JavascriptParser.js +941 -256
- package/lib/javascript/JavascriptParserHelpers.js +37 -15
- package/lib/javascript/StartupHelpers.js +2 -2
- package/lib/json/JsonData.js +26 -1
- package/lib/json/JsonGenerator.js +21 -7
- package/lib/json/JsonModulesPlugin.js +14 -5
- package/lib/json/JsonParser.js +27 -13
- package/lib/library/AbstractLibraryPlugin.js +4 -0
- package/lib/library/AmdLibraryPlugin.js +22 -6
- package/lib/library/AssignLibraryPlugin.js +6 -4
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -1
- package/lib/library/ModuleLibraryPlugin.js +8 -4
- package/lib/library/SystemLibraryPlugin.js +1 -0
- package/lib/library/UmdLibraryPlugin.js +4 -0
- package/lib/logging/runtime.js +1 -1
- package/lib/logging/truncateArgs.js +4 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +17 -2
- package/lib/node/NodeTargetPlugin.js +3 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +1 -1
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +18 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +12 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +15 -8
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +8 -0
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -2
- package/lib/optimize/ConcatenatedModule.js +8 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -0
- package/lib/optimize/FlagIncludedChunksPlugin.js +11 -5
- package/lib/optimize/InnerGraph.js +5 -5
- package/lib/optimize/InnerGraphPlugin.js +57 -48
- package/lib/optimize/LimitChunkCountPlugin.js +29 -4
- package/lib/optimize/MangleExportsPlugin.js +1 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -0
- package/lib/optimize/ModuleConcatenationPlugin.js +59 -2
- package/lib/optimize/RealContentHashPlugin.js +86 -30
- package/lib/optimize/RemoveParentModulesPlugin.js +6 -0
- package/lib/optimize/RuntimeChunkPlugin.js +9 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +53 -44
- package/lib/optimize/SplitChunksPlugin.js +71 -31
- package/lib/performance/SizeLimitsPlugin.js +7 -4
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +3 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +6 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -2
- package/lib/rules/BasicEffectRulePlugin.js +4 -0
- package/lib/rules/BasicMatcherRulePlugin.js +5 -0
- package/lib/rules/RuleSetCompiler.js +3 -3
- package/lib/rules/UseEffectRulePlugin.js +6 -4
- package/lib/runtime/AsyncModuleRuntimeModule.js +9 -6
- package/lib/runtime/AutoPublicPathRuntimeModule.js +16 -5
- package/lib/runtime/BaseUriRuntimeModule.js +8 -4
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +4 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +4 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +5 -2
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +45 -26
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +27 -6
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +65 -50
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +1 -1
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +13 -4
- package/lib/runtime/StartupEntrypointRuntimeModule.js +11 -7
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +38 -0
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +164 -1
- package/lib/serialization/DateObjectSerializer.js +15 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -8
- package/lib/serialization/FileMiddleware.js +17 -0
- package/lib/serialization/MapObjectSerializer.js +24 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +25 -8
- package/lib/serialization/ObjectMiddleware.js +33 -2
- package/lib/serialization/PlainObjectSerializer.js +23 -12
- package/lib/serialization/RegExpObjectSerializer.js +16 -5
- package/lib/serialization/SetObjectSerializer.js +21 -6
- package/lib/serialization/types.js +1 -1
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +13 -2
- package/lib/sharing/ConsumeSharedPlugin.js +4 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +22 -7
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +11 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +22 -21
- package/lib/sharing/ShareRuntimeModule.js +19 -9
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/sharing/utils.js +320 -7
- package/lib/stats/DefaultStatsFactoryPlugin.js +105 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +9 -0
- package/lib/stats/DefaultStatsPrinterPlugin.js +43 -0
- package/lib/util/AsyncQueue.js +4 -2
- package/lib/util/LazySet.js +10 -2
- package/lib/util/MapHelpers.js +19 -5
- package/lib/util/ParallelismFactorCalculator.js +10 -0
- package/lib/util/Semaphore.js +1 -1
- package/lib/util/StackedCacheMap.js +6 -0
- package/lib/util/StringXor.js +51 -0
- package/lib/util/binarySearchBounds.js +49 -0
- package/lib/util/compileBooleanMatcher.js +31 -0
- package/lib/util/createHash.js +35 -13
- package/lib/util/deprecation.js +18 -3
- package/lib/util/deterministicGrouping.js +50 -11
- package/lib/util/findGraphRoots.js +4 -2
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +4 -0
- package/lib/util/internalSerializables.js +1 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +3 -3
- package/lib/util/numberHash.js +75 -21
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +9 -54
- package/lib/util/propertyName.js +79 -0
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +14 -1
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +10 -0
- package/lib/util/smartGrouping.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +4 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +15 -2
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +14 -3
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +28 -8
- package/lib/wasm-async/AsyncWebAssemblyParser.js +11 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +39 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +19 -5
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +15 -4
- package/lib/wasm-sync/WebAssemblyUtils.js +1 -1
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +26 -9
- package/lib/webpack.js +12 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +9 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +20 -17
- package/module.d.ts +55 -37
- package/package.json +59 -56
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +132 -5
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +8 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +1 -1
- package/schemas/plugins/css/CssParserOptions.json +1 -1
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +1608 -667
@@ -22,6 +22,8 @@ const {
|
|
22
22
|
/** @typedef {import("../Compiler")} Compiler */
|
23
23
|
/** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */
|
24
24
|
/** @typedef {import("../logging/Logger").Logger} Logger */
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
26
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
25
27
|
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
26
28
|
|
27
29
|
class PackContainer {
|
@@ -58,6 +60,9 @@ class PackContainer {
|
|
58
60
|
writeLazy(this.data);
|
59
61
|
}
|
60
62
|
|
63
|
+
/**
|
64
|
+
* @param {ObjectDeserializerContext} context context
|
65
|
+
*/
|
61
66
|
deserialize({ read }) {
|
62
67
|
this.version = read();
|
63
68
|
this.buildSnapshot = read();
|
@@ -99,7 +104,7 @@ class Pack {
|
|
99
104
|
constructor(logger, maxAge) {
|
100
105
|
/** @type {Map<string, PackItemInfo>} */
|
101
106
|
this.itemInfo = new Map();
|
102
|
-
/** @type {string[]} */
|
107
|
+
/** @type {(string | undefined)[]} */
|
103
108
|
this.requests = [];
|
104
109
|
this.requestsTimeout = undefined;
|
105
110
|
/** @type {Map<string, PackItemInfo>} */
|
@@ -111,6 +116,9 @@ class Pack {
|
|
111
116
|
this.maxAge = maxAge;
|
112
117
|
}
|
113
118
|
|
119
|
+
/**
|
120
|
+
* @param {string} identifier identifier
|
121
|
+
*/
|
114
122
|
_addRequest(identifier) {
|
115
123
|
this.requests.push(identifier);
|
116
124
|
if (this.requestsTimeout === undefined) {
|
@@ -149,7 +157,7 @@ class Pack {
|
|
149
157
|
if (!this.content[loc]) {
|
150
158
|
return undefined;
|
151
159
|
}
|
152
|
-
return this.content[loc].get(identifier);
|
160
|
+
return /** @type {PackContent} */ (this.content[loc]).get(identifier);
|
153
161
|
}
|
154
162
|
}
|
155
163
|
|
@@ -175,7 +183,7 @@ class Pack {
|
|
175
183
|
if (loc >= 0) {
|
176
184
|
this._addRequest(identifier);
|
177
185
|
this.freshContent.set(identifier, info);
|
178
|
-
const content = this.content[loc];
|
186
|
+
const content = /** @type {PackContent} */ (this.content[loc]);
|
179
187
|
content.delete(identifier);
|
180
188
|
if (content.items.size === 0) {
|
181
189
|
this.content[loc] = undefined;
|
@@ -351,11 +359,12 @@ class Pack {
|
|
351
359
|
mergedIndices = smallUnusedContents;
|
352
360
|
} else return;
|
353
361
|
|
362
|
+
/** @type {PackContent[] } */
|
354
363
|
const mergedContent = [];
|
355
364
|
|
356
365
|
// 3. Remove old content entries
|
357
366
|
for (const i of mergedIndices) {
|
358
|
-
mergedContent.push(this.content[i]);
|
367
|
+
mergedContent.push(/** @type {PackContent} */ (this.content[i]));
|
359
368
|
this.content[i] = undefined;
|
360
369
|
}
|
361
370
|
|
@@ -364,7 +373,7 @@ class Pack {
|
|
364
373
|
const mergedItems = new Set();
|
365
374
|
/** @type {Set<string>} */
|
366
375
|
const mergedUsedItems = new Set();
|
367
|
-
/** @type {(function(Map<string, any>): Promise)[]} */
|
376
|
+
/** @type {(function(Map<string, any>): Promise<void>)[]} */
|
368
377
|
const addToMergedMap = [];
|
369
378
|
for (const content of mergedContent) {
|
370
379
|
for (const identifier of content.items) {
|
@@ -498,17 +507,20 @@ class Pack {
|
|
498
507
|
* Only runs for one content to avoid large invalidation.
|
499
508
|
*/
|
500
509
|
_gcOldestContent() {
|
501
|
-
/** @type {PackItemInfo} */
|
510
|
+
/** @type {PackItemInfo | undefined} */
|
502
511
|
let oldest = undefined;
|
503
512
|
for (const info of this.itemInfo.values()) {
|
504
513
|
if (oldest === undefined || info.lastAccess < oldest.lastAccess) {
|
505
514
|
oldest = info;
|
506
515
|
}
|
507
516
|
}
|
508
|
-
if (
|
509
|
-
|
517
|
+
if (
|
518
|
+
Date.now() - /** @type {PackItemInfo} */ (oldest).lastAccess >
|
519
|
+
this.maxAge
|
520
|
+
) {
|
521
|
+
const loc = /** @type {PackItemInfo} */ (oldest).location;
|
510
522
|
if (loc < 0) return;
|
511
|
-
const content = this.content[loc];
|
523
|
+
const content = /** @type {PackContent} */ (this.content[loc]);
|
512
524
|
const items = new Set(content.items);
|
513
525
|
const usedItems = new Set(content.used);
|
514
526
|
this._gcAndUpdateLocation(items, usedItems, loc);
|
@@ -771,6 +783,7 @@ class PackContent {
|
|
771
783
|
|
772
784
|
// We are in state B
|
773
785
|
const { lazyName } = this;
|
786
|
+
/** @type {string | undefined} */
|
774
787
|
let timeMessage;
|
775
788
|
if (lazyName) {
|
776
789
|
// only log once
|
@@ -811,7 +824,7 @@ class PackContent {
|
|
811
824
|
|
812
825
|
/**
|
813
826
|
* @param {string} reason explanation why unpack is necessary
|
814
|
-
* @returns {void | Promise} maybe a promise if lazy
|
827
|
+
* @returns {void | Promise<void>} maybe a promise if lazy
|
815
828
|
*/
|
816
829
|
unpack(reason) {
|
817
830
|
if (this.content) return;
|
@@ -819,6 +832,7 @@ class PackContent {
|
|
819
832
|
// Move from state B to C
|
820
833
|
if (this.lazy) {
|
821
834
|
const { lazyName } = this;
|
835
|
+
/** @type {string | undefined} */
|
822
836
|
let timeMessage;
|
823
837
|
if (lazyName) {
|
824
838
|
// only log once
|
@@ -862,6 +876,9 @@ class PackContent {
|
|
862
876
|
return size;
|
863
877
|
}
|
864
878
|
|
879
|
+
/**
|
880
|
+
* @param {string} identifier identifier
|
881
|
+
*/
|
865
882
|
delete(identifier) {
|
866
883
|
this.items.delete(identifier);
|
867
884
|
this.used.delete(identifier);
|
@@ -906,6 +923,7 @@ class PackContent {
|
|
906
923
|
}
|
907
924
|
// State B2
|
908
925
|
const { lazyName } = this;
|
926
|
+
/** @type {string | undefined} */
|
909
927
|
let timeMessage;
|
910
928
|
if (lazyName) {
|
911
929
|
// only log once
|
@@ -981,6 +999,7 @@ class PackFileCacheStrategy {
|
|
981
999
|
* @param {boolean} options.profile track and log detailed timing information for individual cache items
|
982
1000
|
* @param {boolean} options.allowCollectingMemory allow to collect unused memory created during deserialization
|
983
1001
|
* @param {false | "gzip" | "brotli"} options.compression compression used
|
1002
|
+
* @param {boolean} options.readonly disable storing cache into filesystem
|
984
1003
|
*/
|
985
1004
|
constructor({
|
986
1005
|
compiler,
|
@@ -993,7 +1012,8 @@ class PackFileCacheStrategy {
|
|
993
1012
|
maxAge,
|
994
1013
|
profile,
|
995
1014
|
allowCollectingMemory,
|
996
|
-
compression
|
1015
|
+
compression,
|
1016
|
+
readonly
|
997
1017
|
}) {
|
998
1018
|
this.fileSerializer = createFileSerializer(
|
999
1019
|
fs,
|
@@ -1012,6 +1032,7 @@ class PackFileCacheStrategy {
|
|
1012
1032
|
this.logger = logger;
|
1013
1033
|
this.maxAge = maxAge;
|
1014
1034
|
this.profile = profile;
|
1035
|
+
this.readonly = readonly;
|
1015
1036
|
this.allowCollectingMemory = allowCollectingMemory;
|
1016
1037
|
this.compression = compression;
|
1017
1038
|
this._extension =
|
@@ -1025,17 +1046,20 @@ class PackFileCacheStrategy {
|
|
1025
1046
|
this.buildDependencies = new Set();
|
1026
1047
|
/** @type {LazySet<string>} */
|
1027
1048
|
this.newBuildDependencies = new LazySet();
|
1028
|
-
/** @type {Snapshot} */
|
1049
|
+
/** @type {Snapshot | undefined} */
|
1029
1050
|
this.resolveBuildDependenciesSnapshot = undefined;
|
1030
|
-
/** @type {Map<string, string | false>} */
|
1051
|
+
/** @type {Map<string, string | false> | undefined} */
|
1031
1052
|
this.resolveResults = undefined;
|
1032
|
-
/** @type {Snapshot} */
|
1053
|
+
/** @type {Snapshot | undefined} */
|
1033
1054
|
this.buildSnapshot = undefined;
|
1034
|
-
/** @type {Promise<Pack>} */
|
1055
|
+
/** @type {Promise<Pack> | undefined} */
|
1035
1056
|
this.packPromise = this._openPack();
|
1036
1057
|
this.storePromise = Promise.resolve();
|
1037
1058
|
}
|
1038
1059
|
|
1060
|
+
/**
|
1061
|
+
* @returns {Promise<Pack>} pack
|
1062
|
+
*/
|
1039
1063
|
_getPack() {
|
1040
1064
|
if (this.packPromise === undefined) {
|
1041
1065
|
this.packPromise = this.storePromise.then(() => this._openPack());
|
@@ -1213,6 +1237,8 @@ class PackFileCacheStrategy {
|
|
1213
1237
|
* @returns {Promise<void>} promise
|
1214
1238
|
*/
|
1215
1239
|
store(identifier, etag, data) {
|
1240
|
+
if (this.readonly) return Promise.resolve();
|
1241
|
+
|
1216
1242
|
return this._getPack().then(pack => {
|
1217
1243
|
pack.set(identifier, etag === null ? null : etag.toString(), data);
|
1218
1244
|
});
|
@@ -1239,6 +1265,7 @@ class PackFileCacheStrategy {
|
|
1239
1265
|
}
|
1240
1266
|
|
1241
1267
|
storeBuildDependencies(dependencies) {
|
1268
|
+
if (this.readonly) return;
|
1242
1269
|
this.newBuildDependencies.addAll(dependencies);
|
1243
1270
|
}
|
1244
1271
|
|
@@ -124,8 +124,11 @@ class ResolverCachePlugin {
|
|
124
124
|
const newResolveContext = {
|
125
125
|
...resolveContext,
|
126
126
|
stack: new Set(),
|
127
|
+
/** @type {LazySet<string>} */
|
127
128
|
missingDependencies: new LazySet(),
|
129
|
+
/** @type {LazySet<string>} */
|
128
130
|
fileDependencies: new LazySet(),
|
131
|
+
/** @type {LazySet<string>} */
|
129
132
|
contextDependencies: new LazySet()
|
130
133
|
};
|
131
134
|
let yieldResult;
|
@@ -23,7 +23,7 @@ const inputRx = /^(?:((?:[A-Z]:)?[/\\].*?))?(?::(.+?))?$/i;
|
|
23
23
|
*/
|
24
24
|
|
25
25
|
/**
|
26
|
-
* @param {string} input input string
|
26
|
+
* @param {string | null | undefined} input input string
|
27
27
|
* @param {string} context the context directory
|
28
28
|
* @returns {BrowserslistHandlerConfig} config
|
29
29
|
*/
|
@@ -47,7 +47,7 @@ const parse = (input, context) => {
|
|
47
47
|
};
|
48
48
|
|
49
49
|
/**
|
50
|
-
* @param {string} input input string
|
50
|
+
* @param {string | null | undefined} input input string
|
51
51
|
* @param {string} context the context directory
|
52
52
|
* @returns {string[] | undefined} selected browsers
|
53
53
|
*/
|
@@ -66,7 +66,7 @@ const load = (input, context) => {
|
|
66
66
|
})
|
67
67
|
: browserslist.loadConfig({ path: context, env });
|
68
68
|
|
69
|
-
if (!config) return
|
69
|
+
if (!config) return;
|
70
70
|
return browserslist(config);
|
71
71
|
};
|
72
72
|
|
@@ -120,7 +120,7 @@ const resolve = browsers => {
|
|
120
120
|
and_qq: [10, 4],
|
121
121
|
// baidu: Not supported
|
122
122
|
// and_uc: Not supported
|
123
|
-
|
123
|
+
kaios: [3, 0],
|
124
124
|
node: [12, 17]
|
125
125
|
});
|
126
126
|
|
@@ -187,7 +187,7 @@ const resolve = browsers => {
|
|
187
187
|
// and_qq: Unknown support
|
188
188
|
// baidu: Unknown support
|
189
189
|
// and_uc: Unknown support
|
190
|
-
|
190
|
+
kaios: [3, 0],
|
191
191
|
node: [0, 12]
|
192
192
|
}),
|
193
193
|
destructuring: rawChecker({
|
@@ -206,7 +206,7 @@ const resolve = browsers => {
|
|
206
206
|
// and_qq: Unknown support
|
207
207
|
// baidu: Unknown support
|
208
208
|
// and_uc: Unknown support
|
209
|
-
|
209
|
+
kaios: [2, 5],
|
210
210
|
node: [6, 0]
|
211
211
|
}),
|
212
212
|
bigIntLiteral: rawChecker({
|
@@ -225,7 +225,7 @@ const resolve = browsers => {
|
|
225
225
|
// and_qq: Not supported
|
226
226
|
// baidu: Not supported
|
227
227
|
// and_uc: Not supported
|
228
|
-
|
228
|
+
kaios: [3, 0],
|
229
229
|
node: [10, 4]
|
230
230
|
}),
|
231
231
|
// Support syntax `import` and `export` and no limitations and bugs on Node.js
|
@@ -246,7 +246,7 @@ const resolve = browsers => {
|
|
246
246
|
and_qq: [10, 4],
|
247
247
|
// baidu: Not supported
|
248
248
|
// and_uc: Not supported
|
249
|
-
|
249
|
+
kaios: [3, 0],
|
250
250
|
node: [12, 17]
|
251
251
|
}),
|
252
252
|
dynamicImport: es6DynamicImport,
|
@@ -269,7 +269,7 @@ const resolve = browsers => {
|
|
269
269
|
// and_qq: Unknown support
|
270
270
|
// baidu: Unknown support
|
271
271
|
// and_uc: Unknown support
|
272
|
-
|
272
|
+
kaios: [3, 0],
|
273
273
|
node: 12
|
274
274
|
}),
|
275
275
|
optionalChaining: rawChecker({
|
@@ -288,7 +288,7 @@ const resolve = browsers => {
|
|
288
288
|
// and_qq: Not supported
|
289
289
|
// baidu: Not supported
|
290
290
|
// and_uc: Not supported
|
291
|
-
|
291
|
+
kaios: [3, 0],
|
292
292
|
node: 14
|
293
293
|
}),
|
294
294
|
templateLiteral: rawChecker({
|