webpack 5.106.1 → 5.107.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/APIPlugin.js +4 -2
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +10 -1
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +26 -0
- package/lib/Chunk.js +46 -0
- package/lib/ChunkGraph.js +111 -0
- package/lib/ChunkGroup.js +57 -13
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CleanPlugin.js +14 -1
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +23 -8
- package/lib/Compilation.js +161 -27
- package/lib/Compiler.js +41 -17
- package/lib/ConcatenationScope.js +24 -1
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +4 -1
- package/lib/ContextExclusionPlugin.js +2 -1
- package/lib/ContextModule.js +14 -2
- package/lib/ContextModuleFactory.js +10 -0
- package/lib/ContextReplacementPlugin.js +4 -1
- package/lib/DefinePlugin.js +22 -9
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +48 -4
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +3 -0
- package/lib/EntryPlugin.js +2 -1
- package/lib/Entrypoint.js +4 -0
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -10
- package/lib/ExportsInfo.js +56 -2
- package/lib/ExportsInfoApiPlugin.js +2 -1
- package/lib/ExternalModule.js +114 -15
- package/lib/ExternalModuleFactoryPlugin.js +15 -0
- package/lib/ExternalsPlugin.js +2 -1
- package/lib/FileSystemInfo.js +291 -71
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -1
- package/lib/FlagDependencyExportsPlugin.js +4 -1
- package/lib/FlagDependencyUsagePlugin.js +5 -1
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -1
- package/lib/Generator.js +16 -3
- package/lib/HotModuleReplacementPlugin.js +35 -9
- package/lib/IgnorePlugin.js +4 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +10 -0
- package/lib/JavascriptMetaInfoPlugin.js +2 -1
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +2 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +101 -19
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +3 -0
- package/lib/ModuleGraph.js +66 -0
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleSourceTypeConstants.js +32 -1
- package/lib/ModuleTemplate.js +8 -0
- package/lib/ModuleTypeConstants.js +12 -3
- package/lib/MultiCompiler.js +30 -2
- package/lib/MultiStats.js +8 -0
- package/lib/MultiWatching.js +3 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +11 -2
- package/lib/NormalModule.js +43 -33
- package/lib/NormalModuleFactory.js +35 -2
- package/lib/NormalModuleReplacementPlugin.js +1 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +2 -1
- package/lib/ProgressPlugin.js +158 -68
- package/lib/ProvidePlugin.js +3 -1
- package/lib/RawModule.js +12 -0
- package/lib/RecordIdsPlugin.js +8 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +6 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +13 -0
- package/lib/RuntimeTemplate.js +35 -1
- package/lib/SelfModuleFactory.js +2 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +3 -1
- package/lib/Stats.js +5 -0
- package/lib/Template.js +20 -0
- package/lib/TemplatedPathPlugin.js +10 -3
- package/lib/UseStrictPlugin.js +2 -1
- package/lib/WarnCaseSensitiveModulesPlugin.js +71 -3
- package/lib/WarnDeprecatedOptionPlugin.js +2 -2
- package/lib/WarnNoModeSetPlugin.js +17 -2
- package/lib/WatchIgnorePlugin.js +4 -1
- package/lib/Watching.js +16 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +3 -1
- package/lib/WebpackOptionsApply.js +14 -1
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +12 -2
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +42 -10
- package/lib/asset/AssetModulesPlugin.js +7 -2
- package/lib/asset/AssetParser.js +2 -0
- package/lib/asset/AssetSourceGenerator.js +12 -2
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +11 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -0
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +19 -6
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -1
- package/lib/cache/AddManagedPathsPlugin.js +2 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +3 -1
- package/lib/cache/PackFileCacheStrategy.js +33 -4
- package/lib/cache/ResolverCachePlugin.js +10 -1
- package/lib/cache/getLazyHashedEtag.js +4 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +33 -1
- package/lib/config/browserslistTargetHandler.js +2 -0
- package/lib/config/defaults.js +232 -12
- package/lib/config/normalization.js +15 -1
- package/lib/config/target.js +11 -0
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +12 -0
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +4 -0
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +2 -1
- package/lib/container/FallbackDependency.js +4 -0
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +12 -0
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/ModuleFederationPlugin.js +3 -1
- package/lib/container/RemoteModule.js +13 -0
- package/lib/container/RemoteRuntimeModule.js +1 -0
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +336 -100
- package/lib/css/CssInjectStyleRuntimeModule.js +45 -42
- package/lib/css/CssLoadingRuntimeModule.js +23 -4
- package/lib/{CssModule.js → css/CssModule.js} +21 -15
- package/lib/css/CssModulesPlugin.js +235 -89
- package/lib/css/CssParser.js +616 -261
- package/lib/css/walkCssTokens.js +179 -2
- package/lib/debug/ProfilingPlugin.js +19 -1
- package/lib/dependencies/AMDDefineDependency.js +7 -0
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +12 -0
- package/lib/dependencies/AMDPlugin.js +4 -1
- package/lib/dependencies/AMDRequireArrayDependency.js +6 -0
- package/lib/dependencies/AMDRequireContextDependency.js +3 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +14 -1
- package/lib/dependencies/AMDRequireDependency.js +4 -0
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +6 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +64 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +62 -10
- package/lib/dependencies/CommonJsExportsDependency.js +4 -0
- package/lib/dependencies/CommonJsExportsParserPlugin.js +9 -1
- package/lib/dependencies/CommonJsFullRequireDependency.js +36 -9
- package/lib/dependencies/CommonJsImportsParserPlugin.js +24 -3
- package/lib/dependencies/CommonJsPlugin.js +4 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +3 -0
- package/lib/dependencies/CommonJsRequireDependency.js +70 -4
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +5 -0
- package/lib/dependencies/ConstDependency.js +6 -1
- package/lib/dependencies/ContextDependency.js +9 -2
- package/lib/dependencies/ContextDependencyHelpers.js +4 -1
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +4 -0
- package/lib/dependencies/CreateRequireParserPlugin.js +7 -1
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -0
- package/lib/dependencies/CriticalDependencyWarning.js +2 -1
- package/lib/dependencies/CssIcssExportDependency.js +339 -66
- package/lib/dependencies/CssIcssImportDependency.js +53 -8
- package/lib/dependencies/CssIcssSymbolDependency.js +16 -4
- package/lib/dependencies/CssImportDependency.js +12 -0
- package/lib/dependencies/CssUrlDependency.js +32 -0
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +3 -0
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportsInfoDependency.js +6 -0
- package/lib/dependencies/ExternalModuleDependency.js +5 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +3 -0
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +6 -0
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +4 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +10 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +27 -14
- package/lib/dependencies/HarmonyExportHeaderDependency.js +4 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -5
- package/lib/dependencies/HarmonyExportInitFragment.js +6 -0
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +5 -0
- package/lib/dependencies/HarmonyExports.js +2 -0
- package/lib/dependencies/HarmonyImportDependency.js +21 -2
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -1
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +4 -0
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +18 -3
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +5 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +4 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +133 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +101 -0
- package/lib/dependencies/HtmlScriptSrcDependency.js +318 -0
- package/lib/dependencies/HtmlSourceDependency.js +127 -0
- package/lib/dependencies/ImportContextDependency.js +4 -0
- package/lib/dependencies/ImportDependency.js +5 -0
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +4 -1
- package/lib/dependencies/ImportMetaContextPlugin.js +2 -1
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +6 -0
- package/lib/dependencies/ImportParserPlugin.js +9 -2
- package/lib/dependencies/ImportPhase.js +7 -3
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +2 -0
- package/lib/dependencies/JsonExportsDependency.js +6 -1
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +2 -0
- package/lib/dependencies/LoaderPlugin.js +4 -1
- package/lib/dependencies/LocalModule.js +4 -0
- package/lib/dependencies/LocalModuleDependency.js +4 -0
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +7 -1
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +4 -0
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +6 -1
- package/lib/dependencies/PureExpressionDependency.js +7 -1
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -0
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/RequireEnsureDependency.js +4 -0
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +4 -0
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +4 -1
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +3 -0
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +5 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -1
- package/lib/dependencies/StaticExportsDependency.js +3 -0
- package/lib/dependencies/SystemPlugin.js +5 -2
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/URLContextDependency.js +3 -0
- package/lib/dependencies/URLDependency.js +6 -0
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +4 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -2
- package/lib/dependencies/WebpackIsIncludedDependency.js +2 -0
- package/lib/dependencies/WorkerDependency.js +6 -1
- package/lib/dependencies/WorkerPlugin.js +11 -3
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +1 -0
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +44 -31
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +7 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +4 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +6 -5
- package/lib/{DllModule.js → dll/DllModule.js} +35 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +8 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +23 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +13 -10
- package/lib/electron/ElectronTargetPlugin.js +2 -1
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +4 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +4 -4
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +11 -5
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +6 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +4 -3
- package/lib/errors/JSONParseError.js +114 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +8 -5
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +2 -2
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +5 -4
- package/lib/{ModuleError.js → errors/ModuleError.js} +7 -5
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +1 -1
- package/lib/{ModuleNotFoundError.js → errors/ModuleNotFoundError.js} +3 -2
- package/lib/{ModuleParseError.js → errors/ModuleParseError.js} +11 -6
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +2 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +2 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +8 -5
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +5 -4
- package/lib/errors/NonErrorEmittedError.js +28 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +8 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +5 -1
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +5 -0
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +20 -1
- package/lib/hmr/lazyCompilationBackend.js +2 -0
- package/lib/html/HtmlGenerator.js +379 -0
- package/lib/html/HtmlModulesPlugin.js +433 -0
- package/lib/html/HtmlParser.js +1489 -0
- package/lib/html/walkHtmlTokens.js +2733 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +22 -1
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +39 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +1 -1
- package/lib/javascript/BasicEvaluatedExpression.js +4 -2
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +5 -1
- package/lib/javascript/JavascriptGenerator.js +10 -0
- package/lib/javascript/JavascriptModulesPlugin.js +112 -9
- package/lib/javascript/JavascriptParser.js +360 -16
- package/lib/javascript/JavascriptParserHelpers.js +7 -1
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +14 -25
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +16 -0
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +9 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +1 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +86 -1
- package/lib/library/SystemLibraryPlugin.js +8 -0
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +2 -1
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +2 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +4 -1
- package/lib/node/ReadFileCompileWasmPlugin.js +4 -1
- package/lib/node/RequireChunkLoadingRuntimeModule.js +3 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +3 -1
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +62 -6
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -1
- package/lib/optimize/InnerGraph.js +16 -1
- package/lib/optimize/InnerGraphPlugin.js +14 -2
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +36 -8
- package/lib/optimize/RealContentHashPlugin.js +104 -26
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +118 -4
- package/lib/optimize/SplitChunksPlugin.js +50 -2
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +6 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +18 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -0
- package/lib/runtime/AutoPublicPathRuntimeModule.js +1 -0
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -0
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -0
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +1 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +121 -13
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -0
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +1 -0
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +1 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +35 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +1 -0
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +43 -1
- package/lib/schemes/VirtualUrlPlugin.js +7 -2
- package/lib/serialization/AggregateErrorSerializer.js +2 -0
- package/lib/serialization/ArraySerializer.js +2 -0
- package/lib/serialization/BinaryMiddleware.js +20 -1
- package/lib/serialization/DateObjectSerializer.js +2 -0
- package/lib/serialization/ErrorObjectSerializer.js +3 -0
- package/lib/serialization/FileMiddleware.js +21 -0
- package/lib/serialization/MapObjectSerializer.js +2 -0
- package/lib/serialization/NullPrototypeObjectSerializer.js +2 -0
- package/lib/serialization/ObjectMiddleware.js +23 -0
- package/lib/serialization/PlainObjectSerializer.js +7 -0
- package/lib/serialization/RegExpObjectSerializer.js +2 -0
- package/lib/serialization/Serializer.js +5 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +2 -0
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +15 -0
- package/lib/sharing/ConsumeSharedPlugin.js +8 -3
- package/lib/sharing/ConsumeSharedRuntimeModule.js +9 -4
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +4 -0
- package/lib/sharing/ProvideSharedModule.js +12 -1
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +5 -2
- package/lib/sharing/SharePlugin.js +2 -1
- package/lib/sharing/ShareRuntimeModule.js +1 -0
- package/lib/sharing/resolveMatchedConfigs.js +4 -1
- package/lib/sharing/utils.js +8 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +58 -3
- package/lib/stats/DefaultStatsPresetPlugin.js +12 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +38 -2
- package/lib/stats/StatsFactory.js +13 -1
- package/lib/stats/StatsPrinter.js +7 -0
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +8 -2
- package/lib/util/AppendOnlyStackedSet.js +15 -0
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +22 -2
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +21 -0
- package/lib/util/LazySet.js +39 -0
- package/lib/util/LocConverter.js +53 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +14 -1
- package/lib/util/SetHelpers.js +3 -0
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +45 -0
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +13 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +33 -0
- package/lib/util/binarySearchBounds.js +1 -0
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +34 -3
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +9 -3
- package/lib/util/conventions.js +46 -1
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +1 -0
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +20 -0
- package/lib/util/extractSourceMap.js +1 -0
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +5 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +4 -1
- package/lib/util/fs.js +71 -8
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/hash-digest.js +8 -0
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +67 -0
- package/lib/util/internalSerializables.js +35 -19
- package/lib/util/magicComment.js +10 -6
- package/lib/util/makeSerializable.js +6 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +1 -0
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +1 -0
- package/lib/util/registerExternalSerializer.js +20 -0
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +1 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -0
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +12 -3
- package/lib/wasm-async/AsyncWebAssemblyParser.js +2 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +12 -1
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +6 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +1 -0
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -2
- package/lib/wasm-sync/WebAssemblyGenerator.js +26 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +7 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -1
- package/lib/wasm-sync/WebAssemblyParser.js +2 -0
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -1
- package/lib/web/FetchCompileWasmPlugin.js +13 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +1 -0
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +13 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -0
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/package.json +31 -31
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +161 -57
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +22 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → css/CssAutoOrModuleParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +5325 -353
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/util/conventions.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
|
|
9
9
|
// Copy from css-loader
|
|
10
10
|
/**
|
|
11
|
+
* Preserve camel case.
|
|
11
12
|
* @param {string} string string
|
|
12
13
|
* @returns {string} result
|
|
13
14
|
*/
|
|
@@ -51,6 +52,7 @@ const preserveCamelCase = (string) => {
|
|
|
51
52
|
|
|
52
53
|
// Copy from css-loader
|
|
53
54
|
/**
|
|
55
|
+
* Returns result.
|
|
54
56
|
* @param {string} input input
|
|
55
57
|
* @returns {string} result
|
|
56
58
|
*/
|
|
@@ -79,6 +81,27 @@ module.exports.camelCase = (input) => {
|
|
|
79
81
|
};
|
|
80
82
|
|
|
81
83
|
/**
|
|
84
|
+
* Safely stringify an arbitrary value for an error message — falls back to
|
|
85
|
+
* `String(...)` when JSON.stringify would throw (BigInt, circular, etc.).
|
|
86
|
+
* @param {EXPECTED_ANY} value value to stringify
|
|
87
|
+
* @returns {string} stringified value
|
|
88
|
+
*/
|
|
89
|
+
const safeStringify = (value) => {
|
|
90
|
+
try {
|
|
91
|
+
const json = JSON.stringify(value);
|
|
92
|
+
if (json !== undefined) return json;
|
|
93
|
+
} catch (_err) {
|
|
94
|
+
// fall through to String fallback
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
return String(value);
|
|
98
|
+
} catch (_err) {
|
|
99
|
+
return "[value cannot be converted to string]";
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Returns results.
|
|
82
105
|
* @param {string} input input
|
|
83
106
|
* @param {CssGeneratorExportsConvention | undefined} convention convention
|
|
84
107
|
* @returns {string[]} results
|
|
@@ -87,7 +110,28 @@ module.exports.cssExportConvention = (input, convention) => {
|
|
|
87
110
|
/** @type {Set<string>} */
|
|
88
111
|
const set = new Set();
|
|
89
112
|
if (typeof convention === "function") {
|
|
90
|
-
|
|
113
|
+
const result = convention(input);
|
|
114
|
+
const validate = (/** @type {string} */ name) => {
|
|
115
|
+
if (typeof name !== "string" || name.length === 0) {
|
|
116
|
+
throw new Error(
|
|
117
|
+
`exportsConvention function must return a non-empty string or an array of non-empty strings, got ${safeStringify(result)}`
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
if (Array.isArray(result)) {
|
|
122
|
+
if (result.length === 0) {
|
|
123
|
+
throw new Error(
|
|
124
|
+
"exportsConvention function returned an empty array; it must return at least one name"
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
for (const name of result) {
|
|
128
|
+
validate(name);
|
|
129
|
+
set.add(name);
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
validate(result);
|
|
133
|
+
set.add(result);
|
|
134
|
+
}
|
|
91
135
|
} else {
|
|
92
136
|
switch (convention) {
|
|
93
137
|
case "camel-case": {
|
|
@@ -119,6 +163,7 @@ module.exports.cssExportConvention = (input, convention) => {
|
|
|
119
163
|
|
|
120
164
|
// Copy from css-loader
|
|
121
165
|
/**
|
|
166
|
+
* Returns result.
|
|
122
167
|
* @param {string} input input
|
|
123
168
|
* @returns {string} result
|
|
124
169
|
*/
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Utilities for building V3 source-map `mappings` strings without pulling in a
|
|
9
|
+
* full source-map library. The shape of the input is intentionally minimal —
|
|
10
|
+
* one slot per generated line, each holding zero, one, or many segments — so
|
|
11
|
+
* call sites that have a "one mapping per line" structure (like the CSS-module
|
|
12
|
+
* exports emit in `lib/css/CssGenerator.js`) can build mappings directly,
|
|
13
|
+
* while richer call sites can pass arrays of segments.
|
|
14
|
+
*
|
|
15
|
+
* TODO move this encoder into `webpack-sources` and replace the body of this
|
|
16
|
+
* file with re-exports. The public shape (`encodeVLQ`, `encodeMappings(lines)`,
|
|
17
|
+
* `MappingSegment`, `LineMappings`) is intended to match what would land
|
|
18
|
+
* upstream so call sites don't have to change.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const VLQ_BASE64 =
|
|
22
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Encode a signed integer as a base64 VLQ string per the source-map V3 spec.
|
|
26
|
+
* @param {number} value signed integer to encode
|
|
27
|
+
* @returns {string} base64 VLQ encoded value
|
|
28
|
+
*/
|
|
29
|
+
const encodeVLQ = (value) => {
|
|
30
|
+
let vlq = value < 0 ? (-value << 1) | 1 : value << 1;
|
|
31
|
+
let result = "";
|
|
32
|
+
do {
|
|
33
|
+
let digit = vlq & 0x1f;
|
|
34
|
+
vlq >>>= 5;
|
|
35
|
+
if (vlq > 0) digit |= 0x20;
|
|
36
|
+
result += VLQ_BASE64[digit];
|
|
37
|
+
} while (vlq > 0);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @typedef {object} MappingSegment
|
|
43
|
+
* @property {number=} generatedColumn 0-based generated column (defaults to 0)
|
|
44
|
+
* @property {number=} sourceIndex index into the surrounding source map's `sources` array; omit for a generated-only segment
|
|
45
|
+
* @property {number=} originalLine 0-based line in the original source (required when `sourceIndex` is set)
|
|
46
|
+
* @property {number=} originalColumn 0-based column in the original source (required when `sourceIndex` is set)
|
|
47
|
+
* @property {number=} nameIndex index into the surrounding source map's `names` array
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/** @typedef {null | MappingSegment | MappingSegment[]} LineMappings */
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Encode a V3 source-map `mappings` string from a per-generated-line
|
|
54
|
+
* description of segments.
|
|
55
|
+
*
|
|
56
|
+
* Each entry of `lines` describes the mappings for one generated line:
|
|
57
|
+
*
|
|
58
|
+
* - `null` (or `undefined`) — the line has no mappings.
|
|
59
|
+
* - a single `MappingSegment` — convenience for the common "one mapping at
|
|
60
|
+
* column 0" case.
|
|
61
|
+
* - `MappingSegment[]` — multiple segments on the same line.
|
|
62
|
+
*
|
|
63
|
+
* Lines are joined with `;`, segments within a line with `,`. All numeric
|
|
64
|
+
* fields are encoded as deltas relative to the previous emitted segment, per
|
|
65
|
+
* the V3 spec.
|
|
66
|
+
* @param {LineMappings[]} lines per-generated-line mapping segments
|
|
67
|
+
* @returns {string} VLQ-encoded V3 mappings string
|
|
68
|
+
*/
|
|
69
|
+
const encodeMappings = (lines) => {
|
|
70
|
+
let prevSourceIndex = 0;
|
|
71
|
+
let prevOriginalLine = 0;
|
|
72
|
+
let prevOriginalColumn = 0;
|
|
73
|
+
let prevNameIndex = 0;
|
|
74
|
+
|
|
75
|
+
const encodedLines = [];
|
|
76
|
+
|
|
77
|
+
for (const line of lines) {
|
|
78
|
+
if (line === null || line === undefined) {
|
|
79
|
+
encodedLines.push("");
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const segments = Array.isArray(line) ? line : [line];
|
|
84
|
+
let prevGeneratedColumn = 0;
|
|
85
|
+
const encodedSegments = [];
|
|
86
|
+
|
|
87
|
+
for (const segment of segments) {
|
|
88
|
+
const generatedColumn = segment.generatedColumn || 0;
|
|
89
|
+
let encoded = encodeVLQ(generatedColumn - prevGeneratedColumn);
|
|
90
|
+
prevGeneratedColumn = generatedColumn;
|
|
91
|
+
|
|
92
|
+
if (segment.sourceIndex !== undefined) {
|
|
93
|
+
const originalLine = /** @type {number} */ (segment.originalLine);
|
|
94
|
+
const originalColumn = /** @type {number} */ (segment.originalColumn);
|
|
95
|
+
encoded += encodeVLQ(segment.sourceIndex - prevSourceIndex);
|
|
96
|
+
encoded += encodeVLQ(originalLine - prevOriginalLine);
|
|
97
|
+
encoded += encodeVLQ(originalColumn - prevOriginalColumn);
|
|
98
|
+
prevSourceIndex = segment.sourceIndex;
|
|
99
|
+
prevOriginalLine = originalLine;
|
|
100
|
+
prevOriginalColumn = originalColumn;
|
|
101
|
+
|
|
102
|
+
if (segment.nameIndex !== undefined) {
|
|
103
|
+
encoded += encodeVLQ(segment.nameIndex - prevNameIndex);
|
|
104
|
+
prevNameIndex = segment.nameIndex;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
encodedSegments.push(encoded);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
encodedLines.push(encodedSegments.join(","));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return encodedLines.join(";");
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
module.exports.encodeMappings = encodeMappings;
|
|
118
|
+
module.exports.encodeVLQ = encodeVLQ;
|
package/lib/util/dataURL.js
CHANGED
package/lib/util/deprecation.js
CHANGED
|
@@ -11,16 +11,19 @@ const util = require("util");
|
|
|
11
11
|
const deprecationCache = new Map();
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Defines the fake hook marker type used by this module.
|
|
14
15
|
* @typedef {object} FakeHookMarker
|
|
15
16
|
* @property {true} _fakeHook it's a fake hook
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
/**
|
|
20
|
+
* Defines the shared type used by this module.
|
|
19
21
|
* @template T
|
|
20
22
|
* @typedef {T & FakeHookMarker} FakeHook<T>
|
|
21
23
|
*/
|
|
22
24
|
|
|
23
25
|
/**
|
|
26
|
+
* Creates a deprecation.
|
|
24
27
|
* @param {string} message deprecation message
|
|
25
28
|
* @param {string} code deprecation code
|
|
26
29
|
* @returns {() => void} function to trigger deprecation
|
|
@@ -74,11 +77,13 @@ const DISABLED_METHODS = [
|
|
|
74
77
|
];
|
|
75
78
|
|
|
76
79
|
/**
|
|
80
|
+
* Defines the set with deprecated array methods type used by this module.
|
|
77
81
|
* @template T
|
|
78
82
|
* @typedef {Set<T> & { [Symbol.isConcatSpreadable]: boolean } & { push: (...items: T[]) => void, length?: number } & { [P in DISABLED_METHODS_NAMES]: () => void } & { [P in COPY_METHODS_NAMES]: P extends keyof Array<T> ? () => Pick<Array<T>, P> : never }} SetWithDeprecatedArrayMethods
|
|
79
83
|
*/
|
|
80
84
|
|
|
81
85
|
/**
|
|
86
|
+
* Processes the provided set.
|
|
82
87
|
* @template T
|
|
83
88
|
* @param {Set<T>} set new set
|
|
84
89
|
* @param {string} name property name
|
|
@@ -139,11 +144,13 @@ module.exports.arrayToSetDeprecation = (set, name) => {
|
|
|
139
144
|
};
|
|
140
145
|
}
|
|
141
146
|
/**
|
|
147
|
+
* Creates an index getter.
|
|
142
148
|
* @param {number} index index
|
|
143
149
|
* @returns {() => T | undefined} value
|
|
144
150
|
*/
|
|
145
151
|
const createIndexGetter = (index) => {
|
|
146
152
|
/**
|
|
153
|
+
* Returns the value at this location.
|
|
147
154
|
* @this {Set<T>} a Set
|
|
148
155
|
* @returns {T | undefined} the value at this location
|
|
149
156
|
*/
|
|
@@ -158,6 +165,7 @@ module.exports.arrayToSetDeprecation = (set, name) => {
|
|
|
158
165
|
return fn;
|
|
159
166
|
};
|
|
160
167
|
/**
|
|
168
|
+
* Define index getter.
|
|
161
169
|
* @param {number} index index
|
|
162
170
|
*/
|
|
163
171
|
const defineIndexGetter = (index) => {
|
|
@@ -192,6 +200,7 @@ module.exports.arrayToSetDeprecation = (set, name) => {
|
|
|
192
200
|
};
|
|
193
201
|
|
|
194
202
|
/**
|
|
203
|
+
* Returns } SetDeprecatedArray.
|
|
195
204
|
* @template T
|
|
196
205
|
* @param {string} name name
|
|
197
206
|
* @returns {{ new <T = EXPECTED_ANY>(values?: ReadonlyArray<T> | null): SetDeprecatedArray<T> }} SetDeprecatedArray
|
|
@@ -200,10 +209,12 @@ module.exports.createArrayToSetDeprecationSet = (name) => {
|
|
|
200
209
|
let initialized = false;
|
|
201
210
|
|
|
202
211
|
/**
|
|
212
|
+
* Represents SetDeprecatedArray.
|
|
203
213
|
* @template T
|
|
204
214
|
*/
|
|
205
215
|
class SetDeprecatedArray extends Set {
|
|
206
216
|
/**
|
|
217
|
+
* Creates an instance of SetDeprecatedArray.
|
|
207
218
|
* @param {ReadonlyArray<T> | null=} items items
|
|
208
219
|
*/
|
|
209
220
|
constructor(items) {
|
|
@@ -222,6 +233,7 @@ module.exports.createArrayToSetDeprecationSet = (name) => {
|
|
|
222
233
|
};
|
|
223
234
|
|
|
224
235
|
/**
|
|
236
|
+
* Returns fake hook which redirects.
|
|
225
237
|
* @template {object} T
|
|
226
238
|
* @param {T} fakeHook fake hook implementation
|
|
227
239
|
* @param {string=} message deprecation message (not deprecated when unset)
|
|
@@ -238,6 +250,7 @@ module.exports.createFakeHook = (fakeHook, message, code) => {
|
|
|
238
250
|
};
|
|
239
251
|
|
|
240
252
|
/**
|
|
253
|
+
* Deprecate all properties.
|
|
241
254
|
* @template T
|
|
242
255
|
* @param {T} obj object
|
|
243
256
|
* @param {string} message deprecation message
|
|
@@ -269,6 +282,7 @@ const deprecateAllProperties = (obj, message, code) => {
|
|
|
269
282
|
set: descriptor.writable
|
|
270
283
|
? util.deprecate(
|
|
271
284
|
/**
|
|
285
|
+
* Handles the callback logic for this hook.
|
|
272
286
|
* @template T
|
|
273
287
|
* @param {T} v value
|
|
274
288
|
* @returns {T} result
|
|
@@ -287,6 +301,7 @@ const deprecateAllProperties = (obj, message, code) => {
|
|
|
287
301
|
module.exports.deprecateAllProperties = deprecateAllProperties;
|
|
288
302
|
|
|
289
303
|
/**
|
|
304
|
+
* Returns frozen object with deprecation when modifying.
|
|
290
305
|
* @template {object} T
|
|
291
306
|
* @param {T} obj object
|
|
292
307
|
* @param {string} name property name
|
|
@@ -302,6 +317,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
|
|
302
317
|
new Proxy(obj, {
|
|
303
318
|
set: util.deprecate(
|
|
304
319
|
/**
|
|
320
|
+
* Handles the callback logic for this hook.
|
|
305
321
|
* @param {object} target target
|
|
306
322
|
* @param {string | symbol} property property
|
|
307
323
|
* @param {EXPECTED_ANY} value value
|
|
@@ -315,6 +331,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
|
|
315
331
|
),
|
|
316
332
|
defineProperty: util.deprecate(
|
|
317
333
|
/**
|
|
334
|
+
* Handles the define property callback for this hook.
|
|
318
335
|
* @param {object} target target
|
|
319
336
|
* @param {string | symbol} property property
|
|
320
337
|
* @param {PropertyDescriptor} descriptor descriptor
|
|
@@ -327,6 +344,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
|
|
327
344
|
),
|
|
328
345
|
deleteProperty: util.deprecate(
|
|
329
346
|
/**
|
|
347
|
+
* Handles the delete property callback for this hook.
|
|
330
348
|
* @param {object} target target
|
|
331
349
|
* @param {string | symbol} property property
|
|
332
350
|
* @returns {boolean} result
|
|
@@ -337,6 +355,7 @@ module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
|
|
337
355
|
),
|
|
338
356
|
setPrototypeOf: util.deprecate(
|
|
339
357
|
/**
|
|
358
|
+
* Updates prototype of using the provided target.
|
|
340
359
|
* @param {object} target target
|
|
341
360
|
* @param {EXPECTED_OBJECT | null} proto proto
|
|
342
361
|
* @returns {boolean} result
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
// 3.2% that 5 or more groups are invalidated
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
+
* Returns the similarity as number.
|
|
28
29
|
* @param {string} a key
|
|
29
30
|
* @param {string} b key
|
|
30
31
|
* @returns {number} the similarity as number
|
|
@@ -41,6 +42,7 @@ const similarity = (a, b) => {
|
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
/**
|
|
45
|
+
* Returns the common part and a single char for the difference.
|
|
44
46
|
* @param {string} a key
|
|
45
47
|
* @param {string} b key
|
|
46
48
|
* @param {Set<string>} usedNames set of already used names
|
|
@@ -73,6 +75,7 @@ const getName = (a, b, usedNames) => {
|
|
|
73
75
|
/** @typedef {Record<string, number>} Sizes */
|
|
74
76
|
|
|
75
77
|
/**
|
|
78
|
+
* Adds the provided total to this object.
|
|
76
79
|
* @param {Sizes} total total size
|
|
77
80
|
* @param {Sizes} size single size
|
|
78
81
|
* @returns {void}
|
|
@@ -84,6 +87,7 @@ const addSizeTo = (total, size) => {
|
|
|
84
87
|
};
|
|
85
88
|
|
|
86
89
|
/**
|
|
90
|
+
* Subtract size from.
|
|
87
91
|
* @param {Sizes} total total size
|
|
88
92
|
* @param {Sizes} size single size
|
|
89
93
|
* @returns {void}
|
|
@@ -95,6 +99,7 @@ const subtractSizeFrom = (total, size) => {
|
|
|
95
99
|
};
|
|
96
100
|
|
|
97
101
|
/**
|
|
102
|
+
* Returns total size.
|
|
98
103
|
* @template T
|
|
99
104
|
* @param {Iterable<Node<T>>} nodes some nodes
|
|
100
105
|
* @returns {Sizes} total size
|
|
@@ -109,6 +114,7 @@ const sumSize = (nodes) => {
|
|
|
109
114
|
};
|
|
110
115
|
|
|
111
116
|
/**
|
|
117
|
+
* Checks whether this object is too big.
|
|
112
118
|
* @param {Sizes} size size
|
|
113
119
|
* @param {Sizes} maxSize minimum size
|
|
114
120
|
* @returns {boolean} true, when size is too big
|
|
@@ -124,6 +130,7 @@ const isTooBig = (size, maxSize) => {
|
|
|
124
130
|
};
|
|
125
131
|
|
|
126
132
|
/**
|
|
133
|
+
* Checks whether this object is too small.
|
|
127
134
|
* @param {Sizes} size size
|
|
128
135
|
* @param {Sizes} minSize minimum size
|
|
129
136
|
* @returns {boolean} true, when size is too small
|
|
@@ -141,6 +148,7 @@ const isTooSmall = (size, minSize) => {
|
|
|
141
148
|
/** @typedef {Set<string>} Types */
|
|
142
149
|
|
|
143
150
|
/**
|
|
151
|
+
* Gets too small types.
|
|
144
152
|
* @param {Sizes} size size
|
|
145
153
|
* @param {Sizes} minSize minimum size
|
|
146
154
|
* @returns {Types} set of types that are too small
|
|
@@ -158,6 +166,7 @@ const getTooSmallTypes = (size, minSize) => {
|
|
|
158
166
|
};
|
|
159
167
|
|
|
160
168
|
/**
|
|
169
|
+
* Gets number of matching size types.
|
|
161
170
|
* @template {object} T
|
|
162
171
|
* @param {T} size size
|
|
163
172
|
* @param {Types} types types
|
|
@@ -172,6 +181,7 @@ const getNumberOfMatchingSizeTypes = (size, types) => {
|
|
|
172
181
|
};
|
|
173
182
|
|
|
174
183
|
/**
|
|
184
|
+
* Selective size sum.
|
|
175
185
|
* @param {Sizes} size size
|
|
176
186
|
* @param {Types} types types
|
|
177
187
|
* @returns {number} selective size sum
|
|
@@ -185,10 +195,12 @@ const selectiveSizeSum = (size, types) => {
|
|
|
185
195
|
};
|
|
186
196
|
|
|
187
197
|
/**
|
|
198
|
+
* Represents the node runtime component.
|
|
188
199
|
* @template T
|
|
189
200
|
*/
|
|
190
201
|
class Node {
|
|
191
202
|
/**
|
|
203
|
+
* Creates an instance of Node.
|
|
192
204
|
* @param {T} item item
|
|
193
205
|
* @param {string} key key
|
|
194
206
|
* @param {Sizes} size size
|
|
@@ -203,10 +215,12 @@ class Node {
|
|
|
203
215
|
/** @typedef {number[]} Similarities */
|
|
204
216
|
|
|
205
217
|
/**
|
|
218
|
+
* Represents the group runtime component.
|
|
206
219
|
* @template T
|
|
207
220
|
*/
|
|
208
221
|
class Group {
|
|
209
222
|
/**
|
|
223
|
+
* Creates an instance of Group.
|
|
210
224
|
* @param {Node<T>[]} nodes nodes
|
|
211
225
|
* @param {Similarities | null} similarities similarities between the nodes (length = nodes.length - 1)
|
|
212
226
|
* @param {Sizes=} size size of the group
|
|
@@ -220,6 +234,7 @@ class Group {
|
|
|
220
234
|
}
|
|
221
235
|
|
|
222
236
|
/**
|
|
237
|
+
* Returns removed nodes.
|
|
223
238
|
* @param {(node: Node<T>) => boolean} filter filter function
|
|
224
239
|
* @returns {Node<T>[] | undefined} removed nodes
|
|
225
240
|
*/
|
|
@@ -257,6 +272,7 @@ class Group {
|
|
|
257
272
|
}
|
|
258
273
|
|
|
259
274
|
/**
|
|
275
|
+
* Returns similarities.
|
|
260
276
|
* @template T
|
|
261
277
|
* @param {Iterable<Node<T>>} nodes nodes
|
|
262
278
|
* @returns {Similarities} similarities
|
|
@@ -277,6 +293,7 @@ const getSimilarities = (nodes) => {
|
|
|
277
293
|
};
|
|
278
294
|
|
|
279
295
|
/**
|
|
296
|
+
* Defines the shared type used by this module.
|
|
280
297
|
* @template T
|
|
281
298
|
* @typedef {object} GroupedItems<T>
|
|
282
299
|
* @property {string} key
|
|
@@ -285,6 +302,7 @@ const getSimilarities = (nodes) => {
|
|
|
285
302
|
*/
|
|
286
303
|
|
|
287
304
|
/**
|
|
305
|
+
* Defines the options type used by this module.
|
|
288
306
|
* @template T
|
|
289
307
|
* @typedef {object} Options
|
|
290
308
|
* @property {Sizes} maxSize maximum size of a group
|
|
@@ -295,6 +313,7 @@ const getSimilarities = (nodes) => {
|
|
|
295
313
|
*/
|
|
296
314
|
|
|
297
315
|
/**
|
|
316
|
+
* Returns grouped items.
|
|
298
317
|
* @template T
|
|
299
318
|
* @param {Options<T>} options options object
|
|
300
319
|
* @returns {GroupedItems<T>[]} grouped items
|
|
@@ -332,6 +351,7 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
|
|
|
332
351
|
const initialGroup = new Group(initialNodes, getSimilarities(initialNodes));
|
|
333
352
|
|
|
334
353
|
/**
|
|
354
|
+
* Removes problematic nodes.
|
|
335
355
|
* @param {Group<T>} group group
|
|
336
356
|
* @param {Sizes} consideredSize size of the group to consider
|
|
337
357
|
* @returns {boolean} true, if the group was modified
|
|
@@ -16,6 +16,7 @@ const { isAbsolute, join } = require("./fs");
|
|
|
16
16
|
/** @typedef {(resourcePath: string) => Promise<StringOrBuffer>} ReadResource */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Defines the source mapping url type used by this module.
|
|
19
20
|
* @typedef {object} SourceMappingURL
|
|
20
21
|
* @property {string} sourceMappingURL
|
|
21
22
|
* @property {string} replacementString
|
|
@@ -11,15 +11,18 @@ const DONE_MARKER = 2;
|
|
|
11
11
|
const CANDIDATE_MARKER = 3;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Defines the nodes type used by this module.
|
|
14
15
|
* @template T
|
|
15
16
|
* @typedef {Set<Node<T>>} Nodes
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
/**
|
|
20
|
+
* Represents the node runtime component.
|
|
19
21
|
* @template T
|
|
20
22
|
*/
|
|
21
23
|
class Node {
|
|
22
24
|
/**
|
|
25
|
+
* Creates an instance of Node.
|
|
23
26
|
* @param {T} item the value of the node
|
|
24
27
|
*/
|
|
25
28
|
constructor(item) {
|
|
@@ -48,6 +51,7 @@ class SCC {
|
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
/**
|
|
54
|
+
* Defines the stack entry type used by this module.
|
|
51
55
|
* @template T
|
|
52
56
|
* @typedef {object} StackEntry
|
|
53
57
|
* @property {Node<T>} node
|
|
@@ -55,6 +59,7 @@ class SCC {
|
|
|
55
59
|
*/
|
|
56
60
|
|
|
57
61
|
/**
|
|
62
|
+
* Returns graph roots of the items.
|
|
58
63
|
* @template T
|
|
59
64
|
* @param {Iterable<T>} items list of items
|
|
60
65
|
* @param {(item: T) => Iterable<T>} getDependencies function to get dependencies of an item (items that are not in list are ignored)
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @typedef {import("
|
|
9
|
-
/** @typedef {import("
|
|
8
|
+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
|
9
|
+
/** @typedef {import("../Dependency").SourcePosition} SourcePosition */
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
+
* Returns formatted position.
|
|
12
13
|
* @param {SourcePosition} pos position
|
|
13
14
|
* @returns {string} formatted position
|
|
14
15
|
*/
|
|
@@ -24,6 +25,7 @@ const formatPosition = (pos) => {
|
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
/**
|
|
28
|
+
* Returns formatted location.
|
|
27
29
|
* @param {DependencyLocation} loc location
|
|
28
30
|
* @returns {string} formatted location
|
|
29
31
|
*/
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Returns the formatted size.
|
|
9
10
|
* @param {number=} size the size in bytes
|
|
10
11
|
* @returns {string} the formatted size
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
const formatSize = (size) => {
|
|
13
14
|
if (typeof size !== "number" || Number.isNaN(size) === true) {
|
|
14
15
|
return "unknown size";
|
|
15
16
|
}
|
|
@@ -23,3 +24,5 @@ module.exports.formatSize = (size) => {
|
|
|
23
24
|
|
|
24
25
|
return `${Number((size / 1024 ** index).toPrecision(3))} ${abbreviations[index]}`;
|
|
25
26
|
};
|
|
27
|
+
|
|
28
|
+
module.exports = formatSize;
|