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
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { pathToFileURL } = require("url");
|
|
9
|
-
const CommentCompilationWarning = require("../CommentCompilationWarning");
|
|
10
9
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
11
|
-
const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning");
|
|
12
10
|
const ConstDependency = require("../dependencies/ConstDependency");
|
|
13
11
|
const ContextDependencyHelpers = require("../dependencies/ContextDependencyHelpers");
|
|
14
12
|
const URLContextDependency = require("../dependencies/URLContextDependency");
|
|
15
13
|
const URLDependency = require("../dependencies/URLDependency");
|
|
14
|
+
const CommentCompilationWarning = require("../errors/CommentCompilationWarning");
|
|
15
|
+
const UnsupportedFeatureWarning = require("../errors/UnsupportedFeatureWarning");
|
|
16
16
|
const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression");
|
|
17
17
|
const { approve } = require("../javascript/JavascriptParserHelpers");
|
|
18
18
|
const InnerGraph = require("../optimize/InnerGraph");
|
|
@@ -28,12 +28,14 @@ const InnerGraph = require("../optimize/InnerGraph");
|
|
|
28
28
|
const PLUGIN_NAME = "URLParserPlugin";
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
+
* Returns file url.
|
|
31
32
|
* @param {NormalModule} module module
|
|
32
33
|
* @returns {URL} file url
|
|
33
34
|
*/
|
|
34
35
|
const getUrl = (module) => pathToFileURL(module.resource);
|
|
35
36
|
|
|
36
37
|
/**
|
|
38
|
+
* Checks whether this object is meta url.
|
|
37
39
|
* @param {JavascriptParser} parser parser parser
|
|
38
40
|
* @param {MemberExpression} arg arg
|
|
39
41
|
* @returns {boolean} true when it is `meta.url`, otherwise false
|
|
@@ -58,6 +60,7 @@ const isMetaUrl = (parser, arg) => {
|
|
|
58
60
|
const getEvaluatedExprCache = new WeakMap();
|
|
59
61
|
|
|
60
62
|
/**
|
|
63
|
+
* Gets evaluated expr.
|
|
61
64
|
* @param {NewExpressionNode} expr expression
|
|
62
65
|
* @param {JavascriptParser} parser parser parser
|
|
63
66
|
* @returns {BasicEvaluatedExpression | undefined} basic evaluated expression
|
|
@@ -67,6 +70,7 @@ const getEvaluatedExpr = (expr, parser) => {
|
|
|
67
70
|
if (result !== undefined) return result;
|
|
68
71
|
|
|
69
72
|
/**
|
|
73
|
+
* Returns basic evaluated expression.
|
|
70
74
|
* @returns {BasicEvaluatedExpression | undefined} basic evaluated expression
|
|
71
75
|
*/
|
|
72
76
|
const evaluate = () => {
|
|
@@ -90,6 +94,7 @@ const getEvaluatedExpr = (expr, parser) => {
|
|
|
90
94
|
|
|
91
95
|
class URLParserPlugin {
|
|
92
96
|
/**
|
|
97
|
+
* Creates an instance of URLParserPlugin.
|
|
93
98
|
* @param {JavascriptParserOptions} options options
|
|
94
99
|
*/
|
|
95
100
|
constructor(options) {
|
|
@@ -98,6 +103,7 @@ class URLParserPlugin {
|
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
/**
|
|
106
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
101
107
|
* @param {JavascriptParser} parser the parser
|
|
102
108
|
* @returns {void}
|
|
103
109
|
*/
|
|
@@ -6,10 +6,14 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Tracks values across a stack of nested sets where child scopes can add new
|
|
10
|
+
* values without mutating the sets created by their parents.
|
|
9
11
|
* @template T
|
|
10
12
|
*/
|
|
11
13
|
class AppendOnlyStackedSet {
|
|
12
14
|
/**
|
|
15
|
+
* Seeds the stacked set with an optional chain of previously created scope
|
|
16
|
+
* layers.
|
|
13
17
|
* @param {Set<T>[]} sets an optional array of sets
|
|
14
18
|
*/
|
|
15
19
|
constructor(sets = []) {
|
|
@@ -20,6 +24,8 @@ class AppendOnlyStackedSet {
|
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
/**
|
|
27
|
+
* Adds a value to the current scope layer, creating that layer lazily when
|
|
28
|
+
* the first write occurs.
|
|
23
29
|
* @param {T} el element
|
|
24
30
|
*/
|
|
25
31
|
add(el) {
|
|
@@ -31,6 +37,8 @@ class AppendOnlyStackedSet {
|
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
/**
|
|
40
|
+
* Checks whether a value is present in any scope layer currently visible to
|
|
41
|
+
* this stacked set.
|
|
34
42
|
* @param {T} el element
|
|
35
43
|
* @returns {boolean} result
|
|
36
44
|
*/
|
|
@@ -41,6 +49,9 @@ class AppendOnlyStackedSet {
|
|
|
41
49
|
return false;
|
|
42
50
|
}
|
|
43
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Removes every scope layer and any values accumulated in them.
|
|
54
|
+
*/
|
|
44
55
|
clear() {
|
|
45
56
|
this._sets = [];
|
|
46
57
|
if (this._current) {
|
|
@@ -49,6 +60,8 @@ class AppendOnlyStackedSet {
|
|
|
49
60
|
}
|
|
50
61
|
|
|
51
62
|
/**
|
|
63
|
+
* Creates a child stacked set that shares the existing scope history while
|
|
64
|
+
* allowing subsequent additions to be recorded in its own new layer.
|
|
52
65
|
* @returns {AppendOnlyStackedSet<T>} child
|
|
53
66
|
*/
|
|
54
67
|
createChild() {
|
|
@@ -56,6 +69,8 @@ class AppendOnlyStackedSet {
|
|
|
56
69
|
}
|
|
57
70
|
|
|
58
71
|
/**
|
|
72
|
+
* Iterates over the stacked sets from newest to oldest so consumers can
|
|
73
|
+
* inspect recently added values first.
|
|
59
74
|
* @returns {Iterator<T>} iterable iterator
|
|
60
75
|
*/
|
|
61
76
|
[Symbol.iterator]() {
|
package/lib/util/ArrayHelpers.js
CHANGED
|
@@ -34,6 +34,7 @@ module.exports.groupBy = (
|
|
|
34
34
|
) =>
|
|
35
35
|
arr.reduce(
|
|
36
36
|
/**
|
|
37
|
+
* Handles the callback logic for this hook.
|
|
37
38
|
* @param {[T[], T[]]} groups An accumulator storing already partitioned values returned from previous call.
|
|
38
39
|
* @param {T} value The value of the current element
|
|
39
40
|
* @returns {[T[], T[]]} returns an array of partitioned groups accumulator resulting from calling a predicate on the current value.
|
package/lib/util/ArrayQueue.js
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* FIFO queue backed by arrays with a reversed dequeue buffer to avoid the cost
|
|
10
|
+
* of repeated `Array#shift` operations.
|
|
9
11
|
* @template T
|
|
10
12
|
*/
|
|
11
13
|
class ArrayQueue {
|
|
12
14
|
/**
|
|
15
|
+
* Seeds the queue with an optional iterable of items in dequeue order.
|
|
13
16
|
* @param {Iterable<T>=} items The initial elements.
|
|
14
17
|
*/
|
|
15
18
|
constructor(items) {
|
|
@@ -26,7 +29,7 @@ class ArrayQueue {
|
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
/**
|
|
29
|
-
* Returns the number of
|
|
32
|
+
* Returns the current number of items waiting in either internal buffer.
|
|
30
33
|
* @returns {number} The number of elements in this queue.
|
|
31
34
|
*/
|
|
32
35
|
get length() {
|
|
@@ -34,7 +37,7 @@ class ArrayQueue {
|
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
/**
|
|
37
|
-
*
|
|
40
|
+
* Removes all pending items from both internal buffers.
|
|
38
41
|
*/
|
|
39
42
|
clear() {
|
|
40
43
|
this._list.length = 0;
|
|
@@ -42,7 +45,7 @@ class ArrayQueue {
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
/**
|
|
45
|
-
* Appends the
|
|
48
|
+
* Appends an item to the tail of the queue.
|
|
46
49
|
* @param {T} item The element to add.
|
|
47
50
|
* @returns {void}
|
|
48
51
|
*/
|
|
@@ -51,7 +54,8 @@ class ArrayQueue {
|
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
/**
|
|
54
|
-
*
|
|
57
|
+
* Removes and returns the next item in FIFO order, switching to a reversed
|
|
58
|
+
* buffer when that is cheaper than shifting from the front of the array.
|
|
55
59
|
* @returns {T | undefined} The head of the queue of `undefined` if this queue is empty.
|
|
56
60
|
*/
|
|
57
61
|
dequeue() {
|
|
@@ -68,7 +72,8 @@ class ArrayQueue {
|
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
/**
|
|
71
|
-
*
|
|
75
|
+
* Removes the first matching item from whichever internal buffer currently
|
|
76
|
+
* contains it.
|
|
72
77
|
* @param {T} item the item
|
|
73
78
|
* @returns {void}
|
|
74
79
|
*/
|
package/lib/util/AsyncQueue.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const { AsyncSeriesHook, SyncHook } = require("tapable");
|
|
9
|
-
const { makeWebpackError } = require("../HookWebpackError");
|
|
10
|
-
const WebpackError = require("../WebpackError");
|
|
9
|
+
const { makeWebpackError } = require("../errors/HookWebpackError");
|
|
10
|
+
const WebpackError = require("../errors/WebpackError");
|
|
11
11
|
const ArrayQueue = require("./ArrayQueue");
|
|
12
12
|
|
|
13
13
|
const QUEUED_STATE = 0;
|
|
@@ -17,6 +17,7 @@ const DONE_STATE = 2;
|
|
|
17
17
|
let inHandleResult = 0;
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
+
* Defines the callback callback.
|
|
20
21
|
* @template T
|
|
21
22
|
* @callback Callback
|
|
22
23
|
* @param {(WebpackError | null)=} err
|
|
@@ -25,12 +26,14 @@ let inHandleResult = 0;
|
|
|
25
26
|
*/
|
|
26
27
|
|
|
27
28
|
/**
|
|
29
|
+
* Represents AsyncQueueEntry.
|
|
28
30
|
* @template T
|
|
29
31
|
* @template K
|
|
30
32
|
* @template R
|
|
31
33
|
*/
|
|
32
34
|
class AsyncQueueEntry {
|
|
33
35
|
/**
|
|
36
|
+
* Creates an instance of AsyncQueueEntry.
|
|
34
37
|
* @param {T} item the item
|
|
35
38
|
* @param {Callback<R>} callback the callback
|
|
36
39
|
*/
|
|
@@ -50,22 +53,26 @@ class AsyncQueueEntry {
|
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
/**
|
|
56
|
+
* Defines the get key type used by this module.
|
|
53
57
|
* @template T, K
|
|
54
58
|
* @typedef {(item: T) => K} getKey
|
|
55
59
|
*/
|
|
56
60
|
|
|
57
61
|
/**
|
|
62
|
+
* Defines the processor type used by this module.
|
|
58
63
|
* @template T, R
|
|
59
64
|
* @typedef {(item: T, callback: Callback<R>) => void} Processor
|
|
60
65
|
*/
|
|
61
66
|
|
|
62
67
|
/**
|
|
68
|
+
* Represents AsyncQueue.
|
|
63
69
|
* @template T
|
|
64
70
|
* @template K
|
|
65
71
|
* @template R
|
|
66
72
|
*/
|
|
67
73
|
class AsyncQueue {
|
|
68
74
|
/**
|
|
75
|
+
* Creates an instance of AsyncQueue.
|
|
69
76
|
* @param {object} options options object
|
|
70
77
|
* @param {string=} options.name name of the queue
|
|
71
78
|
* @param {number=} options.parallelism how many items should be processed at once
|
|
@@ -119,6 +126,7 @@ class AsyncQueue {
|
|
|
119
126
|
}
|
|
120
127
|
|
|
121
128
|
/**
|
|
129
|
+
* Returns context of execution.
|
|
122
130
|
* @returns {string} context of execution
|
|
123
131
|
*/
|
|
124
132
|
getContext() {
|
|
@@ -126,6 +134,7 @@ class AsyncQueue {
|
|
|
126
134
|
}
|
|
127
135
|
|
|
128
136
|
/**
|
|
137
|
+
* Updates context using the provided value.
|
|
129
138
|
* @param {string} value context of execution
|
|
130
139
|
*/
|
|
131
140
|
setContext(value) {
|
|
@@ -133,6 +142,7 @@ class AsyncQueue {
|
|
|
133
142
|
}
|
|
134
143
|
|
|
135
144
|
/**
|
|
145
|
+
* Processes the provided item.
|
|
136
146
|
* @param {T} item an item
|
|
137
147
|
* @param {Callback<R>} callback callback function
|
|
138
148
|
* @returns {void}
|
|
@@ -185,6 +195,7 @@ class AsyncQueue {
|
|
|
185
195
|
}
|
|
186
196
|
|
|
187
197
|
/**
|
|
198
|
+
* Processes the provided item.
|
|
188
199
|
* @param {T} item an item
|
|
189
200
|
* @returns {void}
|
|
190
201
|
*/
|
|
@@ -225,6 +236,7 @@ class AsyncQueue {
|
|
|
225
236
|
}
|
|
226
237
|
|
|
227
238
|
/**
|
|
239
|
+
* Describes how this stop operation behaves.
|
|
228
240
|
* @returns {void}
|
|
229
241
|
*/
|
|
230
242
|
stop() {
|
|
@@ -245,6 +257,7 @@ class AsyncQueue {
|
|
|
245
257
|
}
|
|
246
258
|
|
|
247
259
|
/**
|
|
260
|
+
* Increase parallelism.
|
|
248
261
|
* @returns {void}
|
|
249
262
|
*/
|
|
250
263
|
increaseParallelism() {
|
|
@@ -258,6 +271,7 @@ class AsyncQueue {
|
|
|
258
271
|
}
|
|
259
272
|
|
|
260
273
|
/**
|
|
274
|
+
* Decrease parallelism.
|
|
261
275
|
* @returns {void}
|
|
262
276
|
*/
|
|
263
277
|
decreaseParallelism() {
|
|
@@ -266,6 +280,7 @@ class AsyncQueue {
|
|
|
266
280
|
}
|
|
267
281
|
|
|
268
282
|
/**
|
|
283
|
+
* Checks whether this async queue is processing.
|
|
269
284
|
* @param {T} item an item
|
|
270
285
|
* @returns {boolean} true, if the item is currently being processed
|
|
271
286
|
*/
|
|
@@ -276,6 +291,7 @@ class AsyncQueue {
|
|
|
276
291
|
}
|
|
277
292
|
|
|
278
293
|
/**
|
|
294
|
+
* Checks whether this async queue is queued.
|
|
279
295
|
* @param {T} item an item
|
|
280
296
|
* @returns {boolean} true, if the item is currently queued
|
|
281
297
|
*/
|
|
@@ -286,6 +302,7 @@ class AsyncQueue {
|
|
|
286
302
|
}
|
|
287
303
|
|
|
288
304
|
/**
|
|
305
|
+
* Checks whether this async queue is done.
|
|
289
306
|
* @param {T} item an item
|
|
290
307
|
* @returns {boolean} true, if the item is currently queued
|
|
291
308
|
*/
|
|
@@ -296,6 +313,7 @@ class AsyncQueue {
|
|
|
296
313
|
}
|
|
297
314
|
|
|
298
315
|
/**
|
|
316
|
+
* Describes how this ensure processing operation behaves.
|
|
299
317
|
* @returns {void}
|
|
300
318
|
*/
|
|
301
319
|
_ensureProcessing() {
|
|
@@ -324,6 +342,7 @@ class AsyncQueue {
|
|
|
324
342
|
}
|
|
325
343
|
|
|
326
344
|
/**
|
|
345
|
+
* Processes the provided entry.
|
|
327
346
|
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
328
347
|
* @returns {void}
|
|
329
348
|
*/
|
|
@@ -351,6 +370,7 @@ class AsyncQueue {
|
|
|
351
370
|
}
|
|
352
371
|
|
|
353
372
|
/**
|
|
373
|
+
* Processes the provided entry.
|
|
354
374
|
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
355
375
|
* @param {(WebpackError | null)=} err error, if any
|
|
356
376
|
* @param {(R | null)=} result result, if any
|
package/lib/util/Hash.js
CHANGED
|
@@ -33,7 +33,7 @@ class Hash {
|
|
|
33
33
|
* @returns {Hash} updated hash
|
|
34
34
|
*/
|
|
35
35
|
update(data, inputEncoding) {
|
|
36
|
-
const AbstractMethodError = require("../AbstractMethodError");
|
|
36
|
+
const AbstractMethodError = require("../errors/AbstractMethodError");
|
|
37
37
|
|
|
38
38
|
throw new AbstractMethodError();
|
|
39
39
|
}
|
|
@@ -59,7 +59,7 @@ class Hash {
|
|
|
59
59
|
* @returns {string | Buffer} digest
|
|
60
60
|
*/
|
|
61
61
|
digest(encoding) {
|
|
62
|
-
const AbstractMethodError = require("../AbstractMethodError");
|
|
62
|
+
const AbstractMethodError = require("../errors/AbstractMethodError");
|
|
63
63
|
|
|
64
64
|
throw new AbstractMethodError();
|
|
65
65
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Returns last item.
|
|
9
10
|
* @template T
|
|
10
11
|
* @param {Iterable<T>} set a set
|
|
11
12
|
* @returns {T | undefined} last item
|
|
@@ -18,6 +19,7 @@ const last = (set) => {
|
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
/**
|
|
22
|
+
* Returns true, if some items match the filter predicate.
|
|
21
23
|
* @template T
|
|
22
24
|
* @param {Iterable<T>} iterable iterable
|
|
23
25
|
* @param {(value: T) => boolean | null | undefined} filter predicate
|
|
@@ -31,6 +33,7 @@ const someInIterable = (iterable, filter) => {
|
|
|
31
33
|
};
|
|
32
34
|
|
|
33
35
|
/**
|
|
36
|
+
* Returns count of items.
|
|
34
37
|
* @template T
|
|
35
38
|
* @param {Iterable<T>} iterable an iterable
|
|
36
39
|
* @returns {number} count of items
|
|
@@ -9,23 +9,28 @@ const { first } = require("./SetHelpers");
|
|
|
9
9
|
const SortableSet = require("./SortableSet");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
+
* Callback that extracts the grouping key for an item at one bucket layer.
|
|
12
13
|
* @template T
|
|
13
14
|
* @template K
|
|
14
15
|
* @typedef {(item: T) => K} GetKey
|
|
15
16
|
*/
|
|
16
17
|
|
|
17
18
|
/**
|
|
19
|
+
* Comparison function used to order keys or leaf items.
|
|
18
20
|
* @template T
|
|
19
21
|
* @typedef {(a: T, n: T) => number} Comparator
|
|
20
22
|
*/
|
|
21
23
|
|
|
22
24
|
/**
|
|
25
|
+
* Internal bucket entry, either another nested bucket set or a sorted leaf set.
|
|
23
26
|
* @template T
|
|
24
27
|
* @template K
|
|
25
28
|
* @typedef {LazyBucketSortedSet<T, K> | SortableSet<T>} Entry
|
|
26
29
|
*/
|
|
27
30
|
|
|
28
31
|
/**
|
|
32
|
+
* Constructor argument accepted for nested bucket layers or the final leaf
|
|
33
|
+
* comparator.
|
|
29
34
|
* @template T
|
|
30
35
|
* @template K
|
|
31
36
|
* @typedef {GetKey<T, K> | Comparator<K> | Comparator<T>} Arg
|
|
@@ -45,6 +50,8 @@ const SortableSet = require("./SortableSet");
|
|
|
45
50
|
*/
|
|
46
51
|
class LazyBucketSortedSet {
|
|
47
52
|
/**
|
|
53
|
+
* Creates a lazily sorted, potentially multi-level bucket structure whose
|
|
54
|
+
* order is only fully resolved when items are popped.
|
|
48
55
|
* @param {GetKey<T, K>} getKey function to get key from item
|
|
49
56
|
* @param {Comparator<K>=} comparator comparator to sort keys
|
|
50
57
|
* @param {...Arg<T, K>} args more pairs of getKey and comparator plus optional final comparator for the last layer
|
|
@@ -62,6 +69,8 @@ class LazyBucketSortedSet {
|
|
|
62
69
|
}
|
|
63
70
|
|
|
64
71
|
/**
|
|
72
|
+
* Adds an item to the unsorted staging area so sorting can be deferred until
|
|
73
|
+
* an ordered pop is requested.
|
|
65
74
|
* @param {T} item an item
|
|
66
75
|
* @returns {void}
|
|
67
76
|
*/
|
|
@@ -71,6 +80,8 @@ class LazyBucketSortedSet {
|
|
|
71
80
|
}
|
|
72
81
|
|
|
73
82
|
/**
|
|
83
|
+
* Inserts an item into the correct nested bucket, creating intermediate
|
|
84
|
+
* bucket structures on demand.
|
|
74
85
|
* @param {K} key key of item
|
|
75
86
|
* @param {T} item the item
|
|
76
87
|
* @returns {void}
|
|
@@ -95,6 +106,8 @@ class LazyBucketSortedSet {
|
|
|
95
106
|
}
|
|
96
107
|
|
|
97
108
|
/**
|
|
109
|
+
* Removes an item from either the unsorted staging area or its resolved
|
|
110
|
+
* bucket and prunes empty buckets as needed.
|
|
98
111
|
* @param {T} item an item
|
|
99
112
|
* @returns {void}
|
|
100
113
|
*/
|
|
@@ -113,6 +126,7 @@ class LazyBucketSortedSet {
|
|
|
113
126
|
}
|
|
114
127
|
|
|
115
128
|
/**
|
|
129
|
+
* Removes an empty bucket key and its corresponding nested entry.
|
|
116
130
|
* @param {K} key key to be removed
|
|
117
131
|
* @returns {void}
|
|
118
132
|
*/
|
|
@@ -122,6 +136,8 @@ class LazyBucketSortedSet {
|
|
|
122
136
|
}
|
|
123
137
|
|
|
124
138
|
/**
|
|
139
|
+
* Removes and returns the smallest item according to the configured bucket
|
|
140
|
+
* order, sorting only the portions of the structure that are needed.
|
|
125
141
|
* @returns {T | undefined} an item
|
|
126
142
|
*/
|
|
127
143
|
popFirst() {
|
|
@@ -158,6 +174,8 @@ class LazyBucketSortedSet {
|
|
|
158
174
|
}
|
|
159
175
|
|
|
160
176
|
/**
|
|
177
|
+
* Begins an in-place update for an item and returns a completion callback
|
|
178
|
+
* that can either reinsert it under a new key or remove it entirely.
|
|
161
179
|
* @param {T} item to be updated item
|
|
162
180
|
* @returns {(remove?: true) => void} finish update
|
|
163
181
|
*/
|
|
@@ -222,6 +240,8 @@ class LazyBucketSortedSet {
|
|
|
222
240
|
}
|
|
223
241
|
|
|
224
242
|
/**
|
|
243
|
+
* Appends iterators for every stored bucket and leaf to support unordered
|
|
244
|
+
* traversal across the entire structure.
|
|
225
245
|
* @param {Iterator<T>[]} iterators list of iterators to append to
|
|
226
246
|
* @returns {void}
|
|
227
247
|
*/
|
|
@@ -245,6 +265,7 @@ class LazyBucketSortedSet {
|
|
|
245
265
|
}
|
|
246
266
|
|
|
247
267
|
/**
|
|
268
|
+
* Iterates over all stored items without imposing bucket sort order.
|
|
248
269
|
* @returns {Iterator<T>} the iterator
|
|
249
270
|
*/
|
|
250
271
|
[Symbol.iterator]() {
|
package/lib/util/LazySet.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
const makeSerializable = require("./makeSerializable");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
+
* Merges every queued iterable directly into the concrete backing set.
|
|
11
12
|
* @template T
|
|
12
13
|
* @param {Set<T>} targetSet set where items should be added
|
|
13
14
|
* @param {Set<Iterable<T>>} toMerge iterables to be merged
|
|
@@ -22,6 +23,8 @@ const merge = (targetSet, toMerge) => {
|
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
26
|
+
* Flattens nested `LazySet` instances into a single collection of iterables
|
|
27
|
+
* that can later be merged into the backing set.
|
|
25
28
|
* @template T
|
|
26
29
|
* @param {Set<Iterable<T>>} targetSet set where iterables should be added
|
|
27
30
|
* @param {LazySet<T>[]} toDeepMerge lazy sets to be flattened
|
|
@@ -40,6 +43,7 @@ const flatten = (targetSet, toDeepMerge) => {
|
|
|
40
43
|
};
|
|
41
44
|
|
|
42
45
|
/**
|
|
46
|
+
* Defines the set iterator type used by this module.
|
|
43
47
|
* @template T
|
|
44
48
|
* @typedef {import("typescript-iterable").SetIterator<T>} SetIterator
|
|
45
49
|
*/
|
|
@@ -52,6 +56,8 @@ const flatten = (targetSet, toDeepMerge) => {
|
|
|
52
56
|
*/
|
|
53
57
|
class LazySet {
|
|
54
58
|
/**
|
|
59
|
+
* Seeds the set with an optional iterable while preparing internal queues for
|
|
60
|
+
* deferred merges.
|
|
55
61
|
* @param {Iterable<T>=} iterable init iterable
|
|
56
62
|
*/
|
|
57
63
|
constructor(iterable) {
|
|
@@ -65,11 +71,17 @@ class LazySet {
|
|
|
65
71
|
this._deopt = false;
|
|
66
72
|
}
|
|
67
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Flattens any nested lazy sets that were queued for merging.
|
|
76
|
+
*/
|
|
68
77
|
_flatten() {
|
|
69
78
|
flatten(this._toMerge, this._toDeepMerge);
|
|
70
79
|
this._toDeepMerge.length = 0;
|
|
71
80
|
}
|
|
72
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Materializes all deferred additions into the backing set.
|
|
84
|
+
*/
|
|
73
85
|
_merge() {
|
|
74
86
|
this._flatten();
|
|
75
87
|
merge(this._set, this._toMerge);
|
|
@@ -77,6 +89,10 @@ class LazySet {
|
|
|
77
89
|
this._needMerge = false;
|
|
78
90
|
}
|
|
79
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Reports whether the set is empty without forcing a full merge.
|
|
94
|
+
* @returns {boolean} true when no items have been stored or queued
|
|
95
|
+
*/
|
|
80
96
|
_isEmpty() {
|
|
81
97
|
return (
|
|
82
98
|
this._set.size === 0 &&
|
|
@@ -85,12 +101,17 @@ class LazySet {
|
|
|
85
101
|
);
|
|
86
102
|
}
|
|
87
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Returns the number of items after applying any deferred merges.
|
|
106
|
+
* @returns {number} number of items in the set
|
|
107
|
+
*/
|
|
88
108
|
get size() {
|
|
89
109
|
if (this._needMerge) this._merge();
|
|
90
110
|
return this._set.size;
|
|
91
111
|
}
|
|
92
112
|
|
|
93
113
|
/**
|
|
114
|
+
* Adds a single item immediately to the concrete backing set.
|
|
94
115
|
* @param {T} item an item
|
|
95
116
|
* @returns {LazySet<T>} itself
|
|
96
117
|
*/
|
|
@@ -100,6 +121,8 @@ class LazySet {
|
|
|
100
121
|
}
|
|
101
122
|
|
|
102
123
|
/**
|
|
124
|
+
* Queues another iterable or lazy set for later merging so large bulk adds
|
|
125
|
+
* can stay cheap until the set is read.
|
|
103
126
|
* @param {Iterable<T> | LazySet<T>} iterable a immutable iterable or another immutable LazySet which will eventually be merged into the Set
|
|
104
127
|
* @returns {LazySet<T>} itself
|
|
105
128
|
*/
|
|
@@ -126,6 +149,9 @@ class LazySet {
|
|
|
126
149
|
return this;
|
|
127
150
|
}
|
|
128
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Removes all items and clears every deferred merge queue.
|
|
154
|
+
*/
|
|
129
155
|
clear() {
|
|
130
156
|
this._set.clear();
|
|
131
157
|
this._toMerge.clear();
|
|
@@ -135,6 +161,8 @@ class LazySet {
|
|
|
135
161
|
}
|
|
136
162
|
|
|
137
163
|
/**
|
|
164
|
+
* Deletes an item after first materializing any deferred additions that may
|
|
165
|
+
* contain it.
|
|
138
166
|
* @param {T} value an item
|
|
139
167
|
* @returns {boolean} true, if the value was in the Set before
|
|
140
168
|
*/
|
|
@@ -144,6 +172,8 @@ class LazySet {
|
|
|
144
172
|
}
|
|
145
173
|
|
|
146
174
|
/**
|
|
175
|
+
* Returns the set's entry iterator and permanently switches future
|
|
176
|
+
* operations to eager merge mode to preserve iterator correctness.
|
|
147
177
|
* @returns {SetIterator<[T, T]>} entries
|
|
148
178
|
*/
|
|
149
179
|
entries() {
|
|
@@ -153,6 +183,8 @@ class LazySet {
|
|
|
153
183
|
}
|
|
154
184
|
|
|
155
185
|
/**
|
|
186
|
+
* Iterates over every item after forcing pending merges and switching to
|
|
187
|
+
* eager mode for correctness during iteration.
|
|
156
188
|
* @template K
|
|
157
189
|
* @param {(value: T, value2: T, set: Set<T>) => void} callbackFn function called for each entry
|
|
158
190
|
* @param {K} thisArg this argument for the callbackFn
|
|
@@ -166,6 +198,7 @@ class LazySet {
|
|
|
166
198
|
}
|
|
167
199
|
|
|
168
200
|
/**
|
|
201
|
+
* Checks whether an item is present after applying any deferred merges.
|
|
169
202
|
* @param {T} item an item
|
|
170
203
|
* @returns {boolean} true, when the item is in the Set
|
|
171
204
|
*/
|
|
@@ -175,6 +208,7 @@ class LazySet {
|
|
|
175
208
|
}
|
|
176
209
|
|
|
177
210
|
/**
|
|
211
|
+
* Returns the key iterator, eagerly materializing pending merges first.
|
|
178
212
|
* @returns {SetIterator<T>} keys
|
|
179
213
|
*/
|
|
180
214
|
keys() {
|
|
@@ -184,6 +218,7 @@ class LazySet {
|
|
|
184
218
|
}
|
|
185
219
|
|
|
186
220
|
/**
|
|
221
|
+
* Returns the value iterator, eagerly materializing pending merges first.
|
|
187
222
|
* @returns {SetIterator<T>} values
|
|
188
223
|
*/
|
|
189
224
|
values() {
|
|
@@ -193,6 +228,7 @@ class LazySet {
|
|
|
193
228
|
}
|
|
194
229
|
|
|
195
230
|
/**
|
|
231
|
+
* Returns the default iterator over values after forcing pending merges.
|
|
196
232
|
* @returns {SetIterator<T>} iterable iterator
|
|
197
233
|
*/
|
|
198
234
|
[Symbol.iterator]() {
|
|
@@ -207,6 +243,8 @@ class LazySet {
|
|
|
207
243
|
}
|
|
208
244
|
|
|
209
245
|
/**
|
|
246
|
+
* Serializes the fully materialized set contents into webpack's object
|
|
247
|
+
* serialization stream.
|
|
210
248
|
* @param {import("../serialization/ObjectMiddleware").ObjectSerializerContext} context context
|
|
211
249
|
*/
|
|
212
250
|
serialize({ write }) {
|
|
@@ -216,6 +254,7 @@ class LazySet {
|
|
|
216
254
|
}
|
|
217
255
|
|
|
218
256
|
/**
|
|
257
|
+
* Restores a `LazySet` from serialized item data.
|
|
219
258
|
* @template T
|
|
220
259
|
* @param {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} context context
|
|
221
260
|
* @returns {LazySet<T>} lazy set
|