@depup/webpack 5.106.0-depup.0 → 5.109.0-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/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 +141 -9
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +23 -26
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +54 -37
- package/lib/Compilation.js +635 -107
- package/lib/Compiler.js +93 -31
- 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 +498 -127
- 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 +399 -108
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +376 -78
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +575 -149
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +92 -6
- 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 +15 -0
- 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 -60
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +5 -2
- 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 +485 -181
- package/lib/NormalModuleFactory.js +148 -29
- 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 +104 -26
- 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 +29 -3
- 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 +43 -7
- 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 +591 -41
- 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/ModuleFederationPlugin.js +12 -26
- 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 +534 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +156 -77
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +356 -204
- package/lib/css/CssParser.js +3452 -1950
- package/lib/css/syntax.js +4058 -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 +138 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +62 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +187 -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 +682 -368
- 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 +32 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +140 -46
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +253 -37
- 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 +59 -3
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +426 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +136 -17
- 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 +71 -49
- 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 +34 -8
- package/lib/html/HtmlGenerator.js +1470 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1111 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9020 -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 +25 -2
- 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 +579 -183
- package/lib/javascript/JavascriptParser.js +1289 -462
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +4380 -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 +23 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +18 -1
- 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 +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +585 -116
- 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 +159 -34
- package/lib/optimize/RealContentHashPlugin.js +125 -50
- 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 +54 -6
- 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 +663 -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 +552 -463
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +50 -3
- 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 +94 -12
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +64 -18
- package/lib/stats/StatsFactory.js +39 -18
- 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 +97 -6
- 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 +1117 -79
- 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 +8608 -1159
- 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
|
@@ -12,6 +12,7 @@ const Cache = require("../Cache");
|
|
|
12
12
|
/** @typedef {import("../Compiler")} Compiler */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
+
* Defines the memory with gc cache plugin options type used by this module.
|
|
15
16
|
* @typedef {object} MemoryWithGcCachePluginOptions
|
|
16
17
|
* @property {number} maxGenerations max generations
|
|
17
18
|
*/
|
|
@@ -20,14 +21,16 @@ const PLUGIN_NAME = "MemoryWithGcCachePlugin";
|
|
|
20
21
|
|
|
21
22
|
class MemoryWithGcCachePlugin {
|
|
22
23
|
/**
|
|
24
|
+
* Creates an instance of MemoryWithGcCachePlugin.
|
|
23
25
|
* @param {MemoryWithGcCachePluginOptions} options options
|
|
24
26
|
*/
|
|
25
27
|
constructor({ maxGenerations }) {
|
|
28
|
+
/** @type {number} */
|
|
26
29
|
this._maxGenerations = maxGenerations;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
/**
|
|
30
|
-
*
|
|
33
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
31
34
|
* @param {Compiler} compiler the compiler instance
|
|
32
35
|
* @returns {void}
|
|
33
36
|
*/
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
const FileSystemInfo = require("../FileSystemInfo");
|
|
9
9
|
const ProgressPlugin = require("../ProgressPlugin");
|
|
10
|
-
const { formatSize } = require("../SizeFormatHelpers");
|
|
11
10
|
const SerializerMiddleware = require("../serialization/SerializerMiddleware");
|
|
12
11
|
const LazySet = require("../util/LazySet");
|
|
12
|
+
const formatSize = require("../util/formatSize");
|
|
13
13
|
const makeSerializable = require("../util/makeSerializable");
|
|
14
14
|
const memoize = require("../util/memoize");
|
|
15
15
|
const {
|
|
@@ -37,6 +37,7 @@ const {
|
|
|
37
37
|
|
|
38
38
|
class PackContainer {
|
|
39
39
|
/**
|
|
40
|
+
* Creates an instance of PackContainer.
|
|
40
41
|
* @param {Pack} data stored data
|
|
41
42
|
* @param {string} version version identifier
|
|
42
43
|
* @param {Snapshot} buildSnapshot snapshot of all build dependencies
|
|
@@ -67,6 +68,7 @@ class PackContainer {
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
/**
|
|
71
|
+
* Serializes this instance into the provided serializer context.
|
|
70
72
|
* @param {ObjectSerializerContext} context context
|
|
71
73
|
*/
|
|
72
74
|
serialize({ write, writeLazy }) {
|
|
@@ -80,6 +82,7 @@ class PackContainer {
|
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
/**
|
|
85
|
+
* Restores this instance from the provided deserializer context.
|
|
83
86
|
* @param {ObjectDeserializerContext} context context
|
|
84
87
|
*/
|
|
85
88
|
deserialize({ read }) {
|
|
@@ -102,10 +105,11 @@ const MIN_CONTENT_SIZE = 1024 * 1024; // 1 MB
|
|
|
102
105
|
const CONTENT_COUNT_TO_MERGE = 10;
|
|
103
106
|
const MIN_ITEMS_IN_FRESH_PACK = 100;
|
|
104
107
|
const MAX_ITEMS_IN_FRESH_PACK = 50000;
|
|
105
|
-
const MAX_TIME_IN_FRESH_PACK =
|
|
108
|
+
const MAX_TIME_IN_FRESH_PACK = 60 * 1000; // 1 min
|
|
106
109
|
|
|
107
110
|
class PackItemInfo {
|
|
108
111
|
/**
|
|
112
|
+
* Creates an instance of PackItemInfo.
|
|
109
113
|
* @param {string} identifier identifier of item
|
|
110
114
|
* @param {string | null | undefined} etag etag of item
|
|
111
115
|
* @param {Data} value fresh value of item
|
|
@@ -126,6 +130,7 @@ class PackItemInfo {
|
|
|
126
130
|
|
|
127
131
|
class Pack {
|
|
128
132
|
/**
|
|
133
|
+
* Creates an instance of Pack.
|
|
129
134
|
* @param {Logger} logger a logger
|
|
130
135
|
* @param {number} maxAge max age of cache items
|
|
131
136
|
*/
|
|
@@ -149,6 +154,7 @@ class Pack {
|
|
|
149
154
|
}
|
|
150
155
|
|
|
151
156
|
/**
|
|
157
|
+
* Adds the provided identifier to the pack.
|
|
152
158
|
* @param {string} identifier identifier
|
|
153
159
|
*/
|
|
154
160
|
_addRequest(identifier) {
|
|
@@ -170,6 +176,7 @@ class Pack {
|
|
|
170
176
|
}
|
|
171
177
|
|
|
172
178
|
/**
|
|
179
|
+
* Returns cached content.
|
|
173
180
|
* @param {string} identifier unique name for the resource
|
|
174
181
|
* @param {string | null} etag etag of the resource
|
|
175
182
|
* @returns {Data} cached content
|
|
@@ -193,6 +200,7 @@ class Pack {
|
|
|
193
200
|
}
|
|
194
201
|
|
|
195
202
|
/**
|
|
203
|
+
* Updates value using the provided identifier.
|
|
196
204
|
* @param {string} identifier unique name for the resource
|
|
197
205
|
* @param {string | null} etag etag of the resource
|
|
198
206
|
* @param {Data} data cached content
|
|
@@ -244,6 +252,7 @@ class Pack {
|
|
|
244
252
|
}
|
|
245
253
|
|
|
246
254
|
/**
|
|
255
|
+
* Returns new location of data entries.
|
|
247
256
|
* @returns {number} new location of data entries
|
|
248
257
|
*/
|
|
249
258
|
_findLocation() {
|
|
@@ -254,6 +263,7 @@ class Pack {
|
|
|
254
263
|
}
|
|
255
264
|
|
|
256
265
|
/**
|
|
266
|
+
* Gc and update location.
|
|
257
267
|
* @private
|
|
258
268
|
* @param {Items} items items
|
|
259
269
|
* @param {Items} usedItems used items
|
|
@@ -604,6 +614,7 @@ class Pack {
|
|
|
604
614
|
}
|
|
605
615
|
|
|
606
616
|
/**
|
|
617
|
+
* Serializes this instance into the provided serializer context.
|
|
607
618
|
* @param {ObjectSerializerContext} context context
|
|
608
619
|
*/
|
|
609
620
|
serialize({ write, writeSeparate }) {
|
|
@@ -637,6 +648,7 @@ class Pack {
|
|
|
637
648
|
}
|
|
638
649
|
|
|
639
650
|
/**
|
|
651
|
+
* Restores this instance from the provided deserializer context.
|
|
640
652
|
* @param {ObjectDeserializerContext & { logger: Logger }} context context
|
|
641
653
|
*/
|
|
642
654
|
deserialize({ read, logger }) {
|
|
@@ -694,13 +706,16 @@ makeSerializable(Pack, "webpack/lib/cache/PackFileCacheStrategy", "Pack");
|
|
|
694
706
|
|
|
695
707
|
class PackContentItems {
|
|
696
708
|
/**
|
|
709
|
+
* Creates an instance of PackContentItems.
|
|
697
710
|
* @param {Content} map items
|
|
698
711
|
*/
|
|
699
712
|
constructor(map) {
|
|
713
|
+
/** @type {Content} */
|
|
700
714
|
this.map = map;
|
|
701
715
|
}
|
|
702
716
|
|
|
703
717
|
/**
|
|
718
|
+
* Serializes this instance into the provided serializer context.
|
|
704
719
|
* @param {ObjectSerializerContext & { logger: Logger, profile: boolean | undefined }} context context
|
|
705
720
|
*/
|
|
706
721
|
serialize({ write, snapshot, rollback, logger, profile }) {
|
|
@@ -778,13 +793,14 @@ class PackContentItems {
|
|
|
778
793
|
}
|
|
779
794
|
|
|
780
795
|
/**
|
|
796
|
+
* Restores this instance from the provided deserializer context.
|
|
781
797
|
* @param {ObjectDeserializerContext & { logger: Logger, profile: boolean | undefined }} context context
|
|
782
798
|
*/
|
|
783
799
|
deserialize({ read, logger, profile }) {
|
|
784
800
|
if (read()) {
|
|
785
801
|
this.map = read();
|
|
786
802
|
} else if (profile) {
|
|
787
|
-
/** @type {
|
|
803
|
+
/** @type {Content} */
|
|
788
804
|
const map = new Map();
|
|
789
805
|
let key = read();
|
|
790
806
|
while (key !== null) {
|
|
@@ -810,7 +826,7 @@ class PackContentItems {
|
|
|
810
826
|
}
|
|
811
827
|
this.map = map;
|
|
812
828
|
} else {
|
|
813
|
-
/** @type {
|
|
829
|
+
/** @type {Content} */
|
|
814
830
|
const map = new Map();
|
|
815
831
|
let key = read();
|
|
816
832
|
while (key !== null) {
|
|
@@ -851,6 +867,7 @@ class PackContent {
|
|
|
851
867
|
*/
|
|
852
868
|
|
|
853
869
|
/**
|
|
870
|
+
* Creates an instance of PackContent.
|
|
854
871
|
* @param {Items} items keys
|
|
855
872
|
* @param {Items} usedItems used keys
|
|
856
873
|
* @param {PackContentItems | (() => Promise<PackContentItems>)} dataOrFn sync or async content
|
|
@@ -875,6 +892,7 @@ class PackContent {
|
|
|
875
892
|
}
|
|
876
893
|
|
|
877
894
|
/**
|
|
895
|
+
* Returns result.
|
|
878
896
|
* @param {string} identifier identifier
|
|
879
897
|
* @returns {string | Promise<string>} result
|
|
880
898
|
*/
|
|
@@ -927,6 +945,7 @@ class PackContent {
|
|
|
927
945
|
}
|
|
928
946
|
|
|
929
947
|
/**
|
|
948
|
+
* Returns maybe a promise if lazy.
|
|
930
949
|
* @param {string} reason explanation why unpack is necessary
|
|
931
950
|
* @returns {void | Promise<void>} maybe a promise if lazy
|
|
932
951
|
*/
|
|
@@ -971,6 +990,7 @@ class PackContent {
|
|
|
971
990
|
}
|
|
972
991
|
|
|
973
992
|
/**
|
|
993
|
+
* Returns the estimated size for the requested source type.
|
|
974
994
|
* @returns {number} size of the content or -1 if not known
|
|
975
995
|
*/
|
|
976
996
|
getSize() {
|
|
@@ -985,6 +1005,7 @@ class PackContent {
|
|
|
985
1005
|
}
|
|
986
1006
|
|
|
987
1007
|
/**
|
|
1008
|
+
* Processes the provided identifier.
|
|
988
1009
|
* @param {string} identifier identifier
|
|
989
1010
|
*/
|
|
990
1011
|
delete(identifier) {
|
|
@@ -994,6 +1015,7 @@ class PackContent {
|
|
|
994
1015
|
}
|
|
995
1016
|
|
|
996
1017
|
/**
|
|
1018
|
+
* Processes the provided write.
|
|
997
1019
|
* @param {(lazy: LazyFunction) => (() => PackContentItems | Promise<PackContentItems>)} write write function
|
|
998
1020
|
* @returns {void}
|
|
999
1021
|
*/
|
|
@@ -1086,6 +1108,7 @@ class PackContent {
|
|
|
1086
1108
|
}
|
|
1087
1109
|
|
|
1088
1110
|
/**
|
|
1111
|
+
* Allow collecting memory.
|
|
1089
1112
|
* @param {Buffer} buf buffer
|
|
1090
1113
|
* @returns {Buffer} buffer that can be collected
|
|
1091
1114
|
*/
|
|
@@ -1099,6 +1122,7 @@ const allowCollectingMemory = (buf) => {
|
|
|
1099
1122
|
|
|
1100
1123
|
class PackFileCacheStrategy {
|
|
1101
1124
|
/**
|
|
1125
|
+
* Creates an instance of PackFileCacheStrategy.
|
|
1102
1126
|
* @param {object} options options
|
|
1103
1127
|
* @param {Compiler} options.compiler the compiler
|
|
1104
1128
|
* @param {IntermediateFileSystem} options.fs the filesystem
|
|
@@ -1110,7 +1134,7 @@ class PackFileCacheStrategy {
|
|
|
1110
1134
|
* @param {number} options.maxAge max age of cache items
|
|
1111
1135
|
* @param {boolean=} options.profile track and log detailed timing information for individual cache items
|
|
1112
1136
|
* @param {boolean=} options.allowCollectingMemory allow to collect unused memory created during deserialization
|
|
1113
|
-
* @param {false | "gzip" | "brotli"=} options.compression compression used
|
|
1137
|
+
* @param {false | "gzip" | "brotli" | "zstd"=} options.compression compression used
|
|
1114
1138
|
* @param {boolean=} options.readonly disable storing cache into filesystem
|
|
1115
1139
|
*/
|
|
1116
1140
|
constructor({
|
|
@@ -1158,15 +1182,21 @@ class PackFileCacheStrategy {
|
|
|
1158
1182
|
this.readonly = readonly;
|
|
1159
1183
|
/** @type {boolean | undefined} */
|
|
1160
1184
|
this.allowCollectingMemory = allowCollectingMemory;
|
|
1161
|
-
/** @type {false | "gzip" | "brotli" | undefined} */
|
|
1185
|
+
/** @type {false | "gzip" | "brotli" | "zstd" | undefined} */
|
|
1162
1186
|
this.compression = compression;
|
|
1187
|
+
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
1188
|
+
if (compression === "zstd" && !require("zlib").createZstdCompress) {
|
|
1189
|
+
throw new Error("cache.compression: 'zstd' requires Node.js >= 22.15.0");
|
|
1190
|
+
}
|
|
1163
1191
|
/** @type {string} */
|
|
1164
1192
|
this._extension =
|
|
1165
1193
|
compression === "brotli"
|
|
1166
1194
|
? ".pack.br"
|
|
1167
1195
|
: compression === "gzip"
|
|
1168
1196
|
? ".pack.gz"
|
|
1169
|
-
: "
|
|
1197
|
+
: compression === "zstd"
|
|
1198
|
+
? ".pack.zst"
|
|
1199
|
+
: ".pack";
|
|
1170
1200
|
/** @type {SnapshotOptions} */
|
|
1171
1201
|
this.snapshot = snapshot;
|
|
1172
1202
|
/** @type {BuildDependencies} */
|
|
@@ -1186,6 +1216,7 @@ class PackFileCacheStrategy {
|
|
|
1186
1216
|
}
|
|
1187
1217
|
|
|
1188
1218
|
/**
|
|
1219
|
+
* Returns pack.
|
|
1189
1220
|
* @returns {Promise<Pack>} pack
|
|
1190
1221
|
*/
|
|
1191
1222
|
_getPack() {
|
|
@@ -1196,6 +1227,7 @@ class PackFileCacheStrategy {
|
|
|
1196
1227
|
}
|
|
1197
1228
|
|
|
1198
1229
|
/**
|
|
1230
|
+
* Returns the pack.
|
|
1199
1231
|
* @returns {Promise<Pack>} the pack
|
|
1200
1232
|
*/
|
|
1201
1233
|
_openPack() {
|
|
@@ -1362,6 +1394,7 @@ class PackFileCacheStrategy {
|
|
|
1362
1394
|
}
|
|
1363
1395
|
|
|
1364
1396
|
/**
|
|
1397
|
+
* Returns promise.
|
|
1365
1398
|
* @param {string} identifier unique name for the resource
|
|
1366
1399
|
* @param {Etag | null} etag etag of the resource
|
|
1367
1400
|
* @param {Data} data cached content
|
|
@@ -1376,6 +1409,7 @@ class PackFileCacheStrategy {
|
|
|
1376
1409
|
}
|
|
1377
1410
|
|
|
1378
1411
|
/**
|
|
1412
|
+
* Returns promise to the cached content.
|
|
1379
1413
|
* @param {string} identifier unique name for the resource
|
|
1380
1414
|
* @param {Etag | null} etag etag of the resource
|
|
1381
1415
|
* @returns {Promise<Data>} promise to the cached content
|
|
@@ -1396,6 +1430,7 @@ class PackFileCacheStrategy {
|
|
|
1396
1430
|
}
|
|
1397
1431
|
|
|
1398
1432
|
/**
|
|
1433
|
+
* Stores build dependencies.
|
|
1399
1434
|
* @param {FileSystemDependencies | Iterable<string>} dependencies dependencies to store
|
|
1400
1435
|
*/
|
|
1401
1436
|
storeBuildDependencies(dependencies) {
|
|
@@ -1429,6 +1464,7 @@ class PackFileCacheStrategy {
|
|
|
1429
1464
|
);
|
|
1430
1465
|
promise = new Promise(
|
|
1431
1466
|
/**
|
|
1467
|
+
* Handles the callback logic for this hook.
|
|
1432
1468
|
* @param {(value?: undefined) => void} resolve resolve
|
|
1433
1469
|
* @param {(reason?: Error) => void} reject reject
|
|
1434
1470
|
*/
|
|
@@ -22,6 +22,7 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
22
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
+
* Defines the sync hook type used by this module.
|
|
25
26
|
* @template T
|
|
26
27
|
* @typedef {import("tapable").SyncHook<T>} SyncHook
|
|
27
28
|
*/
|
|
@@ -30,15 +31,19 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
30
31
|
|
|
31
32
|
class CacheEntry {
|
|
32
33
|
/**
|
|
34
|
+
* Creates an instance of CacheEntry.
|
|
33
35
|
* @param {ResolveRequest} result result
|
|
34
36
|
* @param {Snapshot} snapshot snapshot
|
|
35
37
|
*/
|
|
36
38
|
constructor(result, snapshot) {
|
|
39
|
+
/** @type {ResolveRequest} */
|
|
37
40
|
this.result = result;
|
|
41
|
+
/** @type {Snapshot} */
|
|
38
42
|
this.snapshot = snapshot;
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
/**
|
|
46
|
+
* Serializes this instance into the provided serializer context.
|
|
42
47
|
* @param {ObjectSerializerContext} context context
|
|
43
48
|
*/
|
|
44
49
|
serialize({ write }) {
|
|
@@ -47,6 +52,7 @@ class CacheEntry {
|
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
/**
|
|
55
|
+
* Restores this instance from the provided deserializer context.
|
|
50
56
|
* @param {ObjectDeserializerContext} context context
|
|
51
57
|
*/
|
|
52
58
|
deserialize({ read }) {
|
|
@@ -58,6 +64,7 @@ class CacheEntry {
|
|
|
58
64
|
makeSerializable(CacheEntry, "webpack/lib/cache/ResolverCachePlugin");
|
|
59
65
|
|
|
60
66
|
/**
|
|
67
|
+
* Adds the provided set to the cache entry.
|
|
61
68
|
* @template T
|
|
62
69
|
* @param {Set<T> | LazySet<T>} set set to add items to
|
|
63
70
|
* @param {Set<T> | LazySet<T> | Iterable<T>} otherSet set to add items from
|
|
@@ -74,6 +81,7 @@ const addAllToSet = (set, otherSet) => {
|
|
|
74
81
|
};
|
|
75
82
|
|
|
76
83
|
/**
|
|
84
|
+
* Returns stringified version.
|
|
77
85
|
* @template {object} T
|
|
78
86
|
* @param {T} object an object
|
|
79
87
|
* @param {boolean} excludeContext if true, context is not included in string
|
|
@@ -98,7 +106,7 @@ const PLUGIN_NAME = "ResolverCachePlugin";
|
|
|
98
106
|
|
|
99
107
|
class ResolverCachePlugin {
|
|
100
108
|
/**
|
|
101
|
-
*
|
|
109
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
102
110
|
* @param {Compiler} compiler the compiler instance
|
|
103
111
|
* @returns {void}
|
|
104
112
|
*/
|
|
@@ -135,6 +143,7 @@ class ResolverCachePlugin {
|
|
|
135
143
|
/** @typedef {ResolveRequest & { _ResolverCachePluginCacheMiss: true }} ResolveRequestWithCacheMiss */
|
|
136
144
|
|
|
137
145
|
/**
|
|
146
|
+
* Processes the provided item cache.
|
|
138
147
|
* @param {ItemCacheFacade} itemCache cache
|
|
139
148
|
* @param {Resolver} resolver the resolver
|
|
140
149
|
* @param {ResolveContext} resolveContext context for resolving meta info
|
|
@@ -175,6 +184,7 @@ class ResolverCachePlugin {
|
|
|
175
184
|
(yieldResult).push(obj);
|
|
176
185
|
}
|
|
177
186
|
/**
|
|
187
|
+
* Processes the provided key.
|
|
178
188
|
* @param {"fileDependencies" | "contextDependencies" | "missingDependencies"} key key
|
|
179
189
|
*/
|
|
180
190
|
const propagate = (key) => {
|
|
@@ -375,6 +385,7 @@ class ResolverCachePlugin {
|
|
|
375
385
|
}
|
|
376
386
|
};
|
|
377
387
|
/**
|
|
388
|
+
* Process cache result.
|
|
378
389
|
* @param {(Error | null)=} err error if any
|
|
379
390
|
* @param {(CacheEntry | null)=} cacheEntry cache entry
|
|
380
391
|
* @returns {void}
|
|
@@ -13,17 +13,19 @@ const createHash = require("../util/createHash");
|
|
|
13
13
|
/** @typedef {import("../util/Hash").HashFunction} HashFunction */
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
+
* Represents the lazy hashed etag runtime component.
|
|
16
17
|
* @typedef {object} HashableObject
|
|
17
18
|
* @property {(hash: Hash) => void} updateHash
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
21
|
class LazyHashedEtag {
|
|
21
22
|
/**
|
|
23
|
+
* Creates an instance of LazyHashedEtag.
|
|
22
24
|
* @param {HashableObject} obj object with updateHash method
|
|
23
25
|
* @param {HashFunction} hashFunction the hash function to use
|
|
24
26
|
*/
|
|
25
27
|
constructor(obj, hashFunction = DEFAULTS.HASH_FUNCTION) {
|
|
26
|
-
/** @type {HashableObject} */
|
|
28
|
+
/** @type {HashableObject | undefined} */
|
|
27
29
|
this._obj = obj;
|
|
28
30
|
/** @type {undefined | string} */
|
|
29
31
|
this._hash = undefined;
|
|
@@ -32,13 +34,21 @@ class LazyHashedEtag {
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
/**
|
|
37
|
+
* Returns a string representation.
|
|
35
38
|
* @returns {string} hash of object
|
|
36
39
|
*/
|
|
37
40
|
toString() {
|
|
38
41
|
if (this._hash === undefined) {
|
|
39
42
|
const hash = createHash(this._hashFunction);
|
|
40
|
-
|
|
43
|
+
/** @type {HashableObject} */
|
|
44
|
+
(this._obj).updateHash(hash);
|
|
41
45
|
this._hash = hash.digest("base64");
|
|
46
|
+
// Drop the captured object once the hash is memoized. The hash is
|
|
47
|
+
// never reset, so we never need `_obj` again — and many callers
|
|
48
|
+
// (e.g. `SourceMapDevToolPlugin`, `RealContentHashPlugin`) capture
|
|
49
|
+
// a heavy `CachedSource` here that would otherwise stay reachable
|
|
50
|
+
// through this etag for the lifetime of the compilation cache.
|
|
51
|
+
this._obj = undefined;
|
|
42
52
|
}
|
|
43
53
|
return this._hash;
|
|
44
54
|
}
|
|
@@ -53,6 +63,7 @@ const mapStrings = new Map();
|
|
|
53
63
|
const mapObjects = new WeakMap();
|
|
54
64
|
|
|
55
65
|
/**
|
|
66
|
+
* Returns etag.
|
|
56
67
|
* @param {HashableObject} obj object with updateHash method
|
|
57
68
|
* @param {HashFunction=} hashFunction the hash function to use
|
|
58
69
|
* @returns {LazyHashedEtag} etag
|
package/lib/cache/mergeEtags.js
CHANGED
|
@@ -9,11 +9,14 @@
|
|
|
9
9
|
|
|
10
10
|
class MergedEtag {
|
|
11
11
|
/**
|
|
12
|
+
* Creates an instance of MergedEtag.
|
|
12
13
|
* @param {Etag} a first
|
|
13
14
|
* @param {Etag} b second
|
|
14
15
|
*/
|
|
15
16
|
constructor(a, b) {
|
|
17
|
+
/** @type {Etag} */
|
|
16
18
|
this.a = a;
|
|
19
|
+
/** @type {Etag} */
|
|
17
20
|
this.b = b;
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -28,6 +31,7 @@ const dualObjectMap = new WeakMap();
|
|
|
28
31
|
const objectStringMap = new WeakMap();
|
|
29
32
|
|
|
30
33
|
/**
|
|
34
|
+
* Merges the provided values into a single result.
|
|
31
35
|
* @param {Etag} a first
|
|
32
36
|
* @param {Etag} b second
|
|
33
37
|
* @returns {string | MergedEtag} result
|