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
@@ -5,7 +5,8 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
-
/** @typedef {import("estree").Node}
|
8
|
+
/** @typedef {import("estree").Node} Node */
|
9
|
+
/** @typedef {import("./JavascriptParser").Range} Range */
|
9
10
|
/** @typedef {import("./JavascriptParser").VariableInfoInterface} VariableInfoInterface */
|
10
11
|
|
11
12
|
const TypeUnknown = 0;
|
@@ -26,7 +27,7 @@ const TypeBigInt = 13;
|
|
26
27
|
class BasicEvaluatedExpression {
|
27
28
|
constructor() {
|
28
29
|
this.type = TypeUnknown;
|
29
|
-
/** @type {[number, number]} */
|
30
|
+
/** @type {[number, number] | undefined} */
|
30
31
|
this.range = undefined;
|
31
32
|
/** @type {boolean} */
|
32
33
|
this.falsy = false;
|
@@ -56,20 +57,23 @@ class BasicEvaluatedExpression {
|
|
56
57
|
this.items = undefined;
|
57
58
|
/** @type {BasicEvaluatedExpression[] | undefined} */
|
58
59
|
this.options = undefined;
|
59
|
-
/** @type {BasicEvaluatedExpression | undefined} */
|
60
|
+
/** @type {BasicEvaluatedExpression | undefined | null} */
|
60
61
|
this.prefix = undefined;
|
61
|
-
/** @type {BasicEvaluatedExpression | undefined} */
|
62
|
+
/** @type {BasicEvaluatedExpression | undefined | null} */
|
62
63
|
this.postfix = undefined;
|
64
|
+
/** @type {BasicEvaluatedExpression[] | undefined} */
|
63
65
|
this.wrappedInnerExpressions = undefined;
|
64
66
|
/** @type {string | VariableInfoInterface | undefined} */
|
65
67
|
this.identifier = undefined;
|
66
|
-
/** @type {VariableInfoInterface} */
|
68
|
+
/** @type {string | VariableInfoInterface | undefined} */
|
67
69
|
this.rootInfo = undefined;
|
68
|
-
/** @type {() => string[]} */
|
70
|
+
/** @type {(() => string[]) | undefined} */
|
69
71
|
this.getMembers = undefined;
|
70
|
-
/** @type {() => boolean[]} */
|
72
|
+
/** @type {(() => boolean[]) | undefined} */
|
71
73
|
this.getMembersOptionals = undefined;
|
72
|
-
/** @type {
|
74
|
+
/** @type {(() => Range[]) | undefined} */
|
75
|
+
this.getMemberRanges = undefined;
|
76
|
+
/** @type {Node | undefined} */
|
73
77
|
this.expression = undefined;
|
74
78
|
}
|
75
79
|
|
@@ -222,6 +226,10 @@ class BasicEvaluatedExpression {
|
|
222
226
|
return this.sideEffects;
|
223
227
|
}
|
224
228
|
|
229
|
+
/**
|
230
|
+
* Creates a boolean representation of this evaluated expression.
|
231
|
+
* @returns {boolean | undefined} true: truthy, false: falsy, undefined: unknown
|
232
|
+
*/
|
225
233
|
asBool() {
|
226
234
|
if (this.truthy) return true;
|
227
235
|
if (this.falsy || this.nullish) return false;
|
@@ -247,6 +255,10 @@ class BasicEvaluatedExpression {
|
|
247
255
|
return undefined;
|
248
256
|
}
|
249
257
|
|
258
|
+
/**
|
259
|
+
* Creates a nullish coalescing representation of this evaluated expression.
|
260
|
+
* @returns {boolean | undefined} true: nullish, false: not nullish, undefined: unknown
|
261
|
+
*/
|
250
262
|
asNullish() {
|
251
263
|
const nullish = this.isNullish();
|
252
264
|
|
@@ -267,6 +279,10 @@ class BasicEvaluatedExpression {
|
|
267
279
|
return undefined;
|
268
280
|
}
|
269
281
|
|
282
|
+
/**
|
283
|
+
* Creates a string representation of this evaluated expression.
|
284
|
+
* @returns {string | undefined} the string representation or undefined if not possible
|
285
|
+
*/
|
270
286
|
asString() {
|
271
287
|
if (this.isBoolean()) return `${this.bool}`;
|
272
288
|
if (this.isNull()) return "null";
|
@@ -277,7 +293,9 @@ class BasicEvaluatedExpression {
|
|
277
293
|
if (this.isRegExp()) return `${this.regExp}`;
|
278
294
|
if (this.isArray()) {
|
279
295
|
let array = [];
|
280
|
-
for (const item of
|
296
|
+
for (const item of /** @type {BasicEvaluatedExpression[]} */ (
|
297
|
+
this.items
|
298
|
+
)) {
|
281
299
|
const itemStr = item.asString();
|
282
300
|
if (itemStr === undefined) return undefined;
|
283
301
|
array.push(itemStr);
|
@@ -287,7 +305,9 @@ class BasicEvaluatedExpression {
|
|
287
305
|
if (this.isConstArray()) return `${this.array}`;
|
288
306
|
if (this.isTemplateString()) {
|
289
307
|
let str = "";
|
290
|
-
for (const part of
|
308
|
+
for (const part of /** @type {BasicEvaluatedExpression[]} */ (
|
309
|
+
this.parts
|
310
|
+
)) {
|
291
311
|
const partStr = part.asString();
|
292
312
|
if (partStr === undefined) return undefined;
|
293
313
|
str += partStr;
|
@@ -297,6 +317,10 @@ class BasicEvaluatedExpression {
|
|
297
317
|
return undefined;
|
298
318
|
}
|
299
319
|
|
320
|
+
/**
|
321
|
+
* @param {string} string value
|
322
|
+
* @returns {BasicEvaluatedExpression} basic evaluated expression
|
323
|
+
*/
|
300
324
|
setString(string) {
|
301
325
|
this.type = TypeString;
|
302
326
|
this.string = string;
|
@@ -316,6 +340,11 @@ class BasicEvaluatedExpression {
|
|
316
340
|
return this;
|
317
341
|
}
|
318
342
|
|
343
|
+
/**
|
344
|
+
* Set's the value of this expression to a number
|
345
|
+
* @param {number} number number to set
|
346
|
+
* @returns {this} this
|
347
|
+
*/
|
319
348
|
setNumber(number) {
|
320
349
|
this.type = TypeNumber;
|
321
350
|
this.number = number;
|
@@ -323,6 +352,11 @@ class BasicEvaluatedExpression {
|
|
323
352
|
return this;
|
324
353
|
}
|
325
354
|
|
355
|
+
/**
|
356
|
+
* Set's the value of this expression to a BigInt
|
357
|
+
* @param {bigint} bigint bigint to set
|
358
|
+
* @returns {this} this
|
359
|
+
*/
|
326
360
|
setBigInt(bigint) {
|
327
361
|
this.type = TypeBigInt;
|
328
362
|
this.bigint = bigint;
|
@@ -330,6 +364,11 @@ class BasicEvaluatedExpression {
|
|
330
364
|
return this;
|
331
365
|
}
|
332
366
|
|
367
|
+
/**
|
368
|
+
* Set's the value of this expression to a boolean
|
369
|
+
* @param {boolean} bool boolean to set
|
370
|
+
* @returns {this} this
|
371
|
+
*/
|
333
372
|
setBoolean(bool) {
|
334
373
|
this.type = TypeBoolean;
|
335
374
|
this.bool = bool;
|
@@ -337,6 +376,11 @@ class BasicEvaluatedExpression {
|
|
337
376
|
return this;
|
338
377
|
}
|
339
378
|
|
379
|
+
/**
|
380
|
+
* Set's the value of this expression to a regular expression
|
381
|
+
* @param {RegExp} regExp regular expression to set
|
382
|
+
* @returns {this} this
|
383
|
+
*/
|
340
384
|
setRegExp(regExp) {
|
341
385
|
this.type = TypeRegExp;
|
342
386
|
this.regExp = regExp;
|
@@ -344,16 +388,41 @@ class BasicEvaluatedExpression {
|
|
344
388
|
return this;
|
345
389
|
}
|
346
390
|
|
347
|
-
|
391
|
+
/**
|
392
|
+
* Set's the value of this expression to a particular identifier and its members.
|
393
|
+
*
|
394
|
+
* @param {string | VariableInfoInterface} identifier identifier to set
|
395
|
+
* @param {string | VariableInfoInterface} rootInfo root info
|
396
|
+
* @param {() => string[]} getMembers members
|
397
|
+
* @param {() => boolean[]=} getMembersOptionals optional members
|
398
|
+
* @param {() => Range[]=} getMemberRanges ranges of progressively increasing sub-expressions
|
399
|
+
* @returns {this} this
|
400
|
+
*/
|
401
|
+
setIdentifier(
|
402
|
+
identifier,
|
403
|
+
rootInfo,
|
404
|
+
getMembers,
|
405
|
+
getMembersOptionals,
|
406
|
+
getMemberRanges
|
407
|
+
) {
|
348
408
|
this.type = TypeIdentifier;
|
349
409
|
this.identifier = identifier;
|
350
410
|
this.rootInfo = rootInfo;
|
351
411
|
this.getMembers = getMembers;
|
352
412
|
this.getMembersOptionals = getMembersOptionals;
|
413
|
+
this.getMemberRanges = getMemberRanges;
|
353
414
|
this.sideEffects = true;
|
354
415
|
return this;
|
355
416
|
}
|
356
417
|
|
418
|
+
/**
|
419
|
+
* Wraps an array of expressions with a prefix and postfix expression.
|
420
|
+
*
|
421
|
+
* @param {BasicEvaluatedExpression | null | undefined} prefix Expression to be added before the innerExpressions
|
422
|
+
* @param {BasicEvaluatedExpression | null | undefined} postfix Expression to be added after the innerExpressions
|
423
|
+
* @param {BasicEvaluatedExpression[]} innerExpressions Expressions to be wrapped
|
424
|
+
* @returns {this} this
|
425
|
+
*/
|
357
426
|
setWrapped(prefix, postfix, innerExpressions) {
|
358
427
|
this.type = TypeWrapped;
|
359
428
|
this.prefix = prefix;
|
@@ -363,6 +432,12 @@ class BasicEvaluatedExpression {
|
|
363
432
|
return this;
|
364
433
|
}
|
365
434
|
|
435
|
+
/**
|
436
|
+
* Stores the options of a conditional expression.
|
437
|
+
*
|
438
|
+
* @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be set
|
439
|
+
* @returns {this} this
|
440
|
+
*/
|
366
441
|
setOptions(options) {
|
367
442
|
this.type = TypeConditional;
|
368
443
|
this.options = options;
|
@@ -370,6 +445,12 @@ class BasicEvaluatedExpression {
|
|
370
445
|
return this;
|
371
446
|
}
|
372
447
|
|
448
|
+
/**
|
449
|
+
* Adds options to a conditional expression.
|
450
|
+
*
|
451
|
+
* @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be added
|
452
|
+
* @returns {this} this
|
453
|
+
*/
|
373
454
|
addOptions(options) {
|
374
455
|
if (!this.options) {
|
375
456
|
this.type = TypeConditional;
|
@@ -382,6 +463,12 @@ class BasicEvaluatedExpression {
|
|
382
463
|
return this;
|
383
464
|
}
|
384
465
|
|
466
|
+
/**
|
467
|
+
* Set's the value of this expression to an array of expressions.
|
468
|
+
*
|
469
|
+
* @param {BasicEvaluatedExpression[]} items expressions to set
|
470
|
+
* @returns {this} this
|
471
|
+
*/
|
385
472
|
setItems(items) {
|
386
473
|
this.type = TypeArray;
|
387
474
|
this.items = items;
|
@@ -389,6 +476,12 @@ class BasicEvaluatedExpression {
|
|
389
476
|
return this;
|
390
477
|
}
|
391
478
|
|
479
|
+
/**
|
480
|
+
* Set's the value of this expression to an array of strings.
|
481
|
+
*
|
482
|
+
* @param {string[]} array array to set
|
483
|
+
* @returns {this} this
|
484
|
+
*/
|
392
485
|
setArray(array) {
|
393
486
|
this.type = TypeConstArray;
|
394
487
|
this.array = array;
|
@@ -396,6 +489,15 @@ class BasicEvaluatedExpression {
|
|
396
489
|
return this;
|
397
490
|
}
|
398
491
|
|
492
|
+
/**
|
493
|
+
* Set's the value of this expression to a processed/unprocessed template string. Used
|
494
|
+
* for evaluating TemplateLiteral expressions in the JavaScript Parser.
|
495
|
+
*
|
496
|
+
* @param {BasicEvaluatedExpression[]} quasis template string quasis
|
497
|
+
* @param {BasicEvaluatedExpression[]} parts template string parts
|
498
|
+
* @param {"cooked" | "raw"} kind template string kind
|
499
|
+
* @returns {this} this
|
500
|
+
*/
|
399
501
|
setTemplateString(quasis, parts, kind) {
|
400
502
|
this.type = TypeTemplateString;
|
401
503
|
this.quasis = quasis;
|
@@ -418,6 +520,12 @@ class BasicEvaluatedExpression {
|
|
418
520
|
return this;
|
419
521
|
}
|
420
522
|
|
523
|
+
/**
|
524
|
+
* Set's the value of the expression to nullish.
|
525
|
+
*
|
526
|
+
* @param {boolean} value true, if the expression is nullish
|
527
|
+
* @returns {this} this
|
528
|
+
*/
|
421
529
|
setNullish(value) {
|
422
530
|
this.nullish = value;
|
423
531
|
|
@@ -426,16 +534,34 @@ class BasicEvaluatedExpression {
|
|
426
534
|
return this;
|
427
535
|
}
|
428
536
|
|
537
|
+
/**
|
538
|
+
* Set's the range for the expression.
|
539
|
+
*
|
540
|
+
* @param {[number, number]} range range to set
|
541
|
+
* @returns {this} this
|
542
|
+
*/
|
429
543
|
setRange(range) {
|
430
544
|
this.range = range;
|
431
545
|
return this;
|
432
546
|
}
|
433
547
|
|
548
|
+
/**
|
549
|
+
* Set whether or not the expression has side effects.
|
550
|
+
*
|
551
|
+
* @param {boolean} sideEffects true, if the expression has side effects
|
552
|
+
* @returns {this} this
|
553
|
+
*/
|
434
554
|
setSideEffects(sideEffects = true) {
|
435
555
|
this.sideEffects = sideEffects;
|
436
556
|
return this;
|
437
557
|
}
|
438
558
|
|
559
|
+
/**
|
560
|
+
* Set the expression node for the expression.
|
561
|
+
*
|
562
|
+
* @param {Node | undefined} expression expression
|
563
|
+
* @returns {this} this
|
564
|
+
*/
|
439
565
|
setExpression(expression) {
|
440
566
|
this.expression = expression;
|
441
567
|
return this;
|
@@ -11,8 +11,8 @@ const Entrypoint = require("../Entrypoint");
|
|
11
11
|
|
12
12
|
/**
|
13
13
|
* @param {Entrypoint} entrypoint a chunk group
|
14
|
-
* @param {Chunk} excludedChunk1 current chunk which is excluded
|
15
|
-
* @param {Chunk} excludedChunk2 runtime chunk which is excluded
|
14
|
+
* @param {Chunk=} excludedChunk1 current chunk which is excluded
|
15
|
+
* @param {Chunk=} excludedChunk2 runtime chunk which is excluded
|
16
16
|
* @returns {Set<Chunk>} chunks
|
17
17
|
*/
|
18
18
|
const getAllChunks = (entrypoint, excludedChunk1, excludedChunk2) => {
|
@@ -17,7 +17,9 @@ const {
|
|
17
17
|
updateHashForEntryStartup
|
18
18
|
} = require("./StartupHelpers");
|
19
19
|
|
20
|
+
/** @typedef {import("../Chunk")} Chunk */
|
20
21
|
/** @typedef {import("../Compiler")} Compiler */
|
22
|
+
/** @typedef {import("../Entrypoint")} Entrypoint */
|
21
23
|
|
22
24
|
class CommonJsChunkFormatPlugin {
|
23
25
|
/**
|
@@ -66,7 +68,9 @@ class CommonJsChunkFormatPlugin {
|
|
66
68
|
chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)
|
67
69
|
);
|
68
70
|
if (entries.length > 0) {
|
69
|
-
const runtimeChunk =
|
71
|
+
const runtimeChunk =
|
72
|
+
/** @type {Entrypoint} */
|
73
|
+
(entries[0][1]).getRuntimeChunk();
|
70
74
|
const currentOutputName = compilation
|
71
75
|
.getPath(
|
72
76
|
getChunkFilenameTemplate(chunk, compilation.outputOptions),
|
@@ -83,7 +87,7 @@ class CommonJsChunkFormatPlugin {
|
|
83
87
|
compilation.outputOptions
|
84
88
|
),
|
85
89
|
{
|
86
|
-
chunk: runtimeChunk,
|
90
|
+
chunk: /** @type {Chunk} */ (runtimeChunk),
|
87
91
|
contentHashType: "javascript"
|
88
92
|
}
|
89
93
|
)
|
@@ -120,7 +124,7 @@ class CommonJsChunkFormatPlugin {
|
|
120
124
|
entrySource.add(source);
|
121
125
|
entrySource.add(";\n\n// load runtime\n");
|
122
126
|
entrySource.add(
|
123
|
-
`var
|
127
|
+
`var ${RuntimeGlobals.require} = require(${JSON.stringify(
|
124
128
|
runtimePath
|
125
129
|
)});\n`
|
126
130
|
);
|
@@ -11,6 +11,10 @@
|
|
11
11
|
/** @type {WeakMap<Compiler, Set<ChunkLoadingType>>} */
|
12
12
|
const enabledTypes = new WeakMap();
|
13
13
|
|
14
|
+
/**
|
15
|
+
* @param {Compiler} compiler compiler
|
16
|
+
* @returns {Set<ChunkLoadingType>} enabled types
|
17
|
+
*/
|
14
18
|
const getEnabledTypes = compiler => {
|
15
19
|
let set = enabledTypes.get(compiler);
|
16
20
|
if (set === undefined) {
|