@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.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 +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- 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 +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -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 +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- 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} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -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 +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -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 +49 -12
- 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 +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- 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 +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -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 +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- 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 +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- 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 +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- 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 +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -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 +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- 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 +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- 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 +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- 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/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/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,16 +26,19 @@ 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
|
*/
|
|
37
40
|
constructor(item, callback) {
|
|
41
|
+
/** @type {T} */
|
|
38
42
|
this.item = item;
|
|
39
43
|
/** @type {typeof QUEUED_STATE | typeof PROCESSING_STATE | typeof DONE_STATE} */
|
|
40
44
|
this.state = QUEUED_STATE;
|
|
@@ -50,22 +54,26 @@ class AsyncQueueEntry {
|
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
/**
|
|
57
|
+
* Defines the get key type used by this module.
|
|
53
58
|
* @template T, K
|
|
54
59
|
* @typedef {(item: T) => K} getKey
|
|
55
60
|
*/
|
|
56
61
|
|
|
57
62
|
/**
|
|
63
|
+
* Defines the processor type used by this module.
|
|
58
64
|
* @template T, R
|
|
59
65
|
* @typedef {(item: T, callback: Callback<R>) => void} Processor
|
|
60
66
|
*/
|
|
61
67
|
|
|
62
68
|
/**
|
|
69
|
+
* Represents AsyncQueue.
|
|
63
70
|
* @template T
|
|
64
71
|
* @template K
|
|
65
72
|
* @template R
|
|
66
73
|
*/
|
|
67
74
|
class AsyncQueue {
|
|
68
75
|
/**
|
|
76
|
+
* Creates an instance of AsyncQueue.
|
|
69
77
|
* @param {object} options options object
|
|
70
78
|
* @param {string=} options.name name of the queue
|
|
71
79
|
* @param {number=} options.parallelism how many items should be processed at once
|
|
@@ -75,10 +83,15 @@ class AsyncQueue {
|
|
|
75
83
|
* @param {Processor<T, R>} options.processor async function to process items
|
|
76
84
|
*/
|
|
77
85
|
constructor({ name, context, parallelism, parent, processor, getKey }) {
|
|
86
|
+
/** @type {string | undefined} */
|
|
78
87
|
this._name = name;
|
|
88
|
+
/** @type {string} */
|
|
79
89
|
this._context = context || "normal";
|
|
90
|
+
/** @type {number} */
|
|
80
91
|
this._parallelism = parallelism || 1;
|
|
92
|
+
/** @type {Processor<T, R>} */
|
|
81
93
|
this._processor = processor;
|
|
94
|
+
/** @type {getKey<T, K>} */
|
|
82
95
|
this._getKey =
|
|
83
96
|
getKey ||
|
|
84
97
|
/** @type {getKey<T, K>} */ ((item) => /** @type {T & K} */ (item));
|
|
@@ -88,9 +101,13 @@ class AsyncQueue {
|
|
|
88
101
|
this._queued = new ArrayQueue();
|
|
89
102
|
/** @type {AsyncQueue<T, K, R>[] | undefined} */
|
|
90
103
|
this._children = undefined;
|
|
104
|
+
/** @type {number} */
|
|
91
105
|
this._activeTasks = 0;
|
|
106
|
+
/** @type {boolean} */
|
|
92
107
|
this._willEnsureProcessing = false;
|
|
108
|
+
/** @type {boolean} */
|
|
93
109
|
this._needProcessing = false;
|
|
110
|
+
/** @type {boolean} */
|
|
94
111
|
this._stopped = false;
|
|
95
112
|
/** @type {AsyncQueue<T, K, R>} */
|
|
96
113
|
this._root = parent ? parent._root : this;
|
|
@@ -119,6 +136,7 @@ class AsyncQueue {
|
|
|
119
136
|
}
|
|
120
137
|
|
|
121
138
|
/**
|
|
139
|
+
* Returns context of execution.
|
|
122
140
|
* @returns {string} context of execution
|
|
123
141
|
*/
|
|
124
142
|
getContext() {
|
|
@@ -126,6 +144,7 @@ class AsyncQueue {
|
|
|
126
144
|
}
|
|
127
145
|
|
|
128
146
|
/**
|
|
147
|
+
* Updates context using the provided value.
|
|
129
148
|
* @param {string} value context of execution
|
|
130
149
|
*/
|
|
131
150
|
setContext(value) {
|
|
@@ -133,12 +152,18 @@ class AsyncQueue {
|
|
|
133
152
|
}
|
|
134
153
|
|
|
135
154
|
/**
|
|
155
|
+
* Processes the provided item.
|
|
136
156
|
* @param {T} item an item
|
|
137
157
|
* @param {Callback<R>} callback callback function
|
|
138
158
|
* @returns {void}
|
|
139
159
|
*/
|
|
140
160
|
add(item, callback) {
|
|
141
161
|
if (this._stopped) return callback(new WebpackError("Queue was stopped"));
|
|
162
|
+
// skip async hook dispatch when unused — this runs per module × queue
|
|
163
|
+
if (!this.hooks.beforeAdd.isUsed()) {
|
|
164
|
+
this._add(item, callback);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
142
167
|
this.hooks.beforeAdd.callAsync(item, (err) => {
|
|
143
168
|
if (err) {
|
|
144
169
|
callback(
|
|
@@ -146,45 +171,56 @@ class AsyncQueue {
|
|
|
146
171
|
);
|
|
147
172
|
return;
|
|
148
173
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
174
|
+
this._add(item, callback);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Processes the provided item, after the beforeAdd hook.
|
|
180
|
+
* @param {T} item an item
|
|
181
|
+
* @param {Callback<R>} callback callback function
|
|
182
|
+
* @returns {void}
|
|
183
|
+
*/
|
|
184
|
+
_add(item, callback) {
|
|
185
|
+
const key = this._getKey(item);
|
|
186
|
+
const entry = this._entries.get(key);
|
|
187
|
+
if (entry !== undefined) {
|
|
188
|
+
if (entry.state === DONE_STATE) {
|
|
189
|
+
if (inHandleResult++ > 3) {
|
|
190
|
+
process.nextTick(() => callback(entry.error, entry.result));
|
|
161
191
|
} else {
|
|
162
|
-
entry.
|
|
192
|
+
callback(entry.error, entry.result);
|
|
163
193
|
}
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
if (this._stopped) {
|
|
168
|
-
this.hooks.added.call(item);
|
|
169
|
-
this._root._activeTasks++;
|
|
170
|
-
process.nextTick(() =>
|
|
171
|
-
this._handleResult(newEntry, new WebpackError("Queue was stopped"))
|
|
172
|
-
);
|
|
194
|
+
inHandleResult--;
|
|
195
|
+
} else if (entry.callbacks === undefined) {
|
|
196
|
+
entry.callbacks = [callback];
|
|
173
197
|
} else {
|
|
174
|
-
|
|
175
|
-
this._queued.enqueue(newEntry);
|
|
176
|
-
const root = this._root;
|
|
177
|
-
root._needProcessing = true;
|
|
178
|
-
if (root._willEnsureProcessing === false) {
|
|
179
|
-
root._willEnsureProcessing = true;
|
|
180
|
-
setImmediate(root._ensureProcessing);
|
|
181
|
-
}
|
|
182
|
-
this.hooks.added.call(item);
|
|
198
|
+
entry.callbacks.push(callback);
|
|
183
199
|
}
|
|
184
|
-
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const newEntry = new AsyncQueueEntry(item, callback);
|
|
203
|
+
if (this._stopped) {
|
|
204
|
+
this.hooks.added.call(item);
|
|
205
|
+
this._root._activeTasks++;
|
|
206
|
+
process.nextTick(() =>
|
|
207
|
+
this._handleResult(newEntry, new WebpackError("Queue was stopped"))
|
|
208
|
+
);
|
|
209
|
+
} else {
|
|
210
|
+
this._entries.set(key, newEntry);
|
|
211
|
+
this._queued.enqueue(newEntry);
|
|
212
|
+
const root = this._root;
|
|
213
|
+
root._needProcessing = true;
|
|
214
|
+
if (root._willEnsureProcessing === false) {
|
|
215
|
+
root._willEnsureProcessing = true;
|
|
216
|
+
setImmediate(root._ensureProcessing);
|
|
217
|
+
}
|
|
218
|
+
this.hooks.added.call(item);
|
|
219
|
+
}
|
|
185
220
|
}
|
|
186
221
|
|
|
187
222
|
/**
|
|
223
|
+
* Processes the provided item.
|
|
188
224
|
* @param {T} item an item
|
|
189
225
|
* @returns {void}
|
|
190
226
|
*/
|
|
@@ -225,6 +261,7 @@ class AsyncQueue {
|
|
|
225
261
|
}
|
|
226
262
|
|
|
227
263
|
/**
|
|
264
|
+
* Describes how this stop operation behaves.
|
|
228
265
|
* @returns {void}
|
|
229
266
|
*/
|
|
230
267
|
stop() {
|
|
@@ -245,6 +282,7 @@ class AsyncQueue {
|
|
|
245
282
|
}
|
|
246
283
|
|
|
247
284
|
/**
|
|
285
|
+
* Increase parallelism.
|
|
248
286
|
* @returns {void}
|
|
249
287
|
*/
|
|
250
288
|
increaseParallelism() {
|
|
@@ -258,6 +296,7 @@ class AsyncQueue {
|
|
|
258
296
|
}
|
|
259
297
|
|
|
260
298
|
/**
|
|
299
|
+
* Decrease parallelism.
|
|
261
300
|
* @returns {void}
|
|
262
301
|
*/
|
|
263
302
|
decreaseParallelism() {
|
|
@@ -266,6 +305,7 @@ class AsyncQueue {
|
|
|
266
305
|
}
|
|
267
306
|
|
|
268
307
|
/**
|
|
308
|
+
* Checks whether this async queue is processing.
|
|
269
309
|
* @param {T} item an item
|
|
270
310
|
* @returns {boolean} true, if the item is currently being processed
|
|
271
311
|
*/
|
|
@@ -276,6 +316,7 @@ class AsyncQueue {
|
|
|
276
316
|
}
|
|
277
317
|
|
|
278
318
|
/**
|
|
319
|
+
* Checks whether this async queue is queued.
|
|
279
320
|
* @param {T} item an item
|
|
280
321
|
* @returns {boolean} true, if the item is currently queued
|
|
281
322
|
*/
|
|
@@ -286,6 +327,7 @@ class AsyncQueue {
|
|
|
286
327
|
}
|
|
287
328
|
|
|
288
329
|
/**
|
|
330
|
+
* Checks whether this async queue is done.
|
|
289
331
|
* @param {T} item an item
|
|
290
332
|
* @returns {boolean} true, if the item is currently queued
|
|
291
333
|
*/
|
|
@@ -296,6 +338,7 @@ class AsyncQueue {
|
|
|
296
338
|
}
|
|
297
339
|
|
|
298
340
|
/**
|
|
341
|
+
* Describes how this ensure processing operation behaves.
|
|
299
342
|
* @returns {void}
|
|
300
343
|
*/
|
|
301
344
|
_ensureProcessing() {
|
|
@@ -324,10 +367,16 @@ class AsyncQueue {
|
|
|
324
367
|
}
|
|
325
368
|
|
|
326
369
|
/**
|
|
370
|
+
* Processes the provided entry.
|
|
327
371
|
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
328
372
|
* @returns {void}
|
|
329
373
|
*/
|
|
330
374
|
_startProcessing(entry) {
|
|
375
|
+
// skip async hook dispatch when unused — this runs per module × queue
|
|
376
|
+
if (!this.hooks.beforeStart.isUsed()) {
|
|
377
|
+
this._startProcessing2(entry);
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
331
380
|
this.hooks.beforeStart.callAsync(entry.item, (err) => {
|
|
332
381
|
if (err) {
|
|
333
382
|
this._handleResult(
|
|
@@ -336,66 +385,97 @@ class AsyncQueue {
|
|
|
336
385
|
);
|
|
337
386
|
return;
|
|
338
387
|
}
|
|
339
|
-
|
|
340
|
-
try {
|
|
341
|
-
this._processor(entry.item, (e, r) => {
|
|
342
|
-
inCallback = true;
|
|
343
|
-
this._handleResult(entry, e, r);
|
|
344
|
-
});
|
|
345
|
-
} catch (err) {
|
|
346
|
-
if (inCallback) throw err;
|
|
347
|
-
this._handleResult(entry, /** @type {WebpackError} */ (err), null);
|
|
348
|
-
}
|
|
349
|
-
this.hooks.started.call(entry.item);
|
|
388
|
+
this._startProcessing2(entry);
|
|
350
389
|
});
|
|
351
390
|
}
|
|
352
391
|
|
|
353
392
|
/**
|
|
393
|
+
* Processes the provided entry, after the beforeStart hook.
|
|
394
|
+
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
395
|
+
* @returns {void}
|
|
396
|
+
*/
|
|
397
|
+
_startProcessing2(entry) {
|
|
398
|
+
let inCallback = false;
|
|
399
|
+
try {
|
|
400
|
+
this._processor(entry.item, (e, r) => {
|
|
401
|
+
inCallback = true;
|
|
402
|
+
this._handleResult(entry, e, r);
|
|
403
|
+
});
|
|
404
|
+
} catch (err) {
|
|
405
|
+
if (inCallback) throw err;
|
|
406
|
+
this._handleResult(entry, /** @type {WebpackError} */ (err), null);
|
|
407
|
+
}
|
|
408
|
+
this.hooks.started.call(entry.item);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Processes the provided entry.
|
|
354
413
|
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
355
414
|
* @param {(WebpackError | null)=} err error, if any
|
|
356
415
|
* @param {(R | null)=} result result, if any
|
|
357
416
|
* @returns {void}
|
|
358
417
|
*/
|
|
359
418
|
_handleResult(entry, err, result) {
|
|
419
|
+
// skip async hook dispatch when unused — this runs per module × queue
|
|
420
|
+
if (!this.hooks.result.isUsed()) {
|
|
421
|
+
this._handleResult2(entry, err, result);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
360
424
|
this.hooks.result.callAsync(entry.item, err, result, (hookError) => {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
425
|
+
this._handleResult2(
|
|
426
|
+
entry,
|
|
427
|
+
hookError
|
|
428
|
+
? makeWebpackError(
|
|
429
|
+
hookError,
|
|
430
|
+
`AsyncQueue(${this._name}).hooks.result`
|
|
431
|
+
)
|
|
432
|
+
: err,
|
|
433
|
+
result
|
|
434
|
+
);
|
|
435
|
+
});
|
|
436
|
+
}
|
|
372
437
|
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
438
|
+
/**
|
|
439
|
+
* Finalizes the provided entry, after the result hook.
|
|
440
|
+
* @param {AsyncQueueEntry<T, K, R>} entry the entry
|
|
441
|
+
* @param {(WebpackError | null)=} error error, if any
|
|
442
|
+
* @param {(R | null)=} result result, if any
|
|
443
|
+
* @returns {void}
|
|
444
|
+
*/
|
|
445
|
+
_handleResult2(entry, error, result) {
|
|
446
|
+
const callback = /** @type {Callback<R>} */ (entry.callback);
|
|
447
|
+
const callbacks = entry.callbacks;
|
|
448
|
+
entry.state = DONE_STATE;
|
|
449
|
+
entry.callback = undefined;
|
|
450
|
+
entry.callbacks = undefined;
|
|
451
|
+
entry.result = result;
|
|
452
|
+
entry.error = error;
|
|
379
453
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
} else {
|
|
454
|
+
const root = this._root;
|
|
455
|
+
root._activeTasks--;
|
|
456
|
+
if (root._willEnsureProcessing === false && root._needProcessing) {
|
|
457
|
+
root._willEnsureProcessing = true;
|
|
458
|
+
setImmediate(root._ensureProcessing);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if (inHandleResult++ > 3) {
|
|
462
|
+
process.nextTick(() => {
|
|
390
463
|
callback(error, result);
|
|
391
464
|
if (callbacks !== undefined) {
|
|
392
465
|
for (const callback of callbacks) {
|
|
393
466
|
callback(error, result);
|
|
394
467
|
}
|
|
395
468
|
}
|
|
469
|
+
});
|
|
470
|
+
} else {
|
|
471
|
+
callback(error, result);
|
|
472
|
+
if (callbacks !== undefined) {
|
|
473
|
+
for (const callback of callbacks) {
|
|
474
|
+
callback(error, result);
|
|
475
|
+
}
|
|
396
476
|
}
|
|
397
|
-
|
|
398
|
-
|
|
477
|
+
}
|
|
478
|
+
inHandleResult--;
|
|
399
479
|
}
|
|
400
480
|
|
|
401
481
|
clear() {
|
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,23 +50,32 @@ 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
|
|
51
58
|
*/
|
|
52
59
|
constructor(getKey, comparator, ...args) {
|
|
60
|
+
/** @type {GetKey<T, K>} */
|
|
53
61
|
this._getKey = getKey;
|
|
62
|
+
/** @type {Arg<T, K>[]} */
|
|
54
63
|
this._innerArgs = args;
|
|
64
|
+
/** @type {boolean} */
|
|
55
65
|
this._leaf = args.length <= 1;
|
|
66
|
+
/** @type {SortableSet<K>} */
|
|
56
67
|
this._keys = new SortableSet(undefined, comparator);
|
|
57
68
|
/** @type {Map<K, Entry<T, K>>} */
|
|
58
69
|
this._map = new Map();
|
|
59
70
|
/** @type {Set<T>} */
|
|
60
71
|
this._unsortedItems = new Set();
|
|
72
|
+
/** @type {number} */
|
|
61
73
|
this.size = 0;
|
|
62
74
|
}
|
|
63
75
|
|
|
64
76
|
/**
|
|
77
|
+
* Adds an item to the unsorted staging area so sorting can be deferred until
|
|
78
|
+
* an ordered pop is requested.
|
|
65
79
|
* @param {T} item an item
|
|
66
80
|
* @returns {void}
|
|
67
81
|
*/
|
|
@@ -71,6 +85,8 @@ class LazyBucketSortedSet {
|
|
|
71
85
|
}
|
|
72
86
|
|
|
73
87
|
/**
|
|
88
|
+
* Inserts an item into the correct nested bucket, creating intermediate
|
|
89
|
+
* bucket structures on demand.
|
|
74
90
|
* @param {K} key key of item
|
|
75
91
|
* @param {T} item the item
|
|
76
92
|
* @returns {void}
|
|
@@ -95,6 +111,8 @@ class LazyBucketSortedSet {
|
|
|
95
111
|
}
|
|
96
112
|
|
|
97
113
|
/**
|
|
114
|
+
* Removes an item from either the unsorted staging area or its resolved
|
|
115
|
+
* bucket and prunes empty buckets as needed.
|
|
98
116
|
* @param {T} item an item
|
|
99
117
|
* @returns {void}
|
|
100
118
|
*/
|
|
@@ -113,6 +131,7 @@ class LazyBucketSortedSet {
|
|
|
113
131
|
}
|
|
114
132
|
|
|
115
133
|
/**
|
|
134
|
+
* Removes an empty bucket key and its corresponding nested entry.
|
|
116
135
|
* @param {K} key key to be removed
|
|
117
136
|
* @returns {void}
|
|
118
137
|
*/
|
|
@@ -122,6 +141,8 @@ class LazyBucketSortedSet {
|
|
|
122
141
|
}
|
|
123
142
|
|
|
124
143
|
/**
|
|
144
|
+
* Removes and returns the smallest item according to the configured bucket
|
|
145
|
+
* order, sorting only the portions of the structure that are needed.
|
|
125
146
|
* @returns {T | undefined} an item
|
|
126
147
|
*/
|
|
127
148
|
popFirst() {
|
|
@@ -158,6 +179,8 @@ class LazyBucketSortedSet {
|
|
|
158
179
|
}
|
|
159
180
|
|
|
160
181
|
/**
|
|
182
|
+
* Begins an in-place update for an item and returns a completion callback
|
|
183
|
+
* that can either reinsert it under a new key or remove it entirely.
|
|
161
184
|
* @param {T} item to be updated item
|
|
162
185
|
* @returns {(remove?: true) => void} finish update
|
|
163
186
|
*/
|
|
@@ -222,6 +245,8 @@ class LazyBucketSortedSet {
|
|
|
222
245
|
}
|
|
223
246
|
|
|
224
247
|
/**
|
|
248
|
+
* Appends iterators for every stored bucket and leaf to support unordered
|
|
249
|
+
* traversal across the entire structure.
|
|
225
250
|
* @param {Iterator<T>[]} iterators list of iterators to append to
|
|
226
251
|
* @returns {void}
|
|
227
252
|
*/
|
|
@@ -245,6 +270,7 @@ class LazyBucketSortedSet {
|
|
|
245
270
|
}
|
|
246
271
|
|
|
247
272
|
/**
|
|
273
|
+
* Iterates over all stored items without imposing bucket sort order.
|
|
248
274
|
* @returns {Iterator<T>} the iterator
|
|
249
275
|
*/
|
|
250
276
|
[Symbol.iterator]() {
|