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/WeakTupleMap.js
CHANGED
|
@@ -6,33 +6,44 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Strong-key child map used for tuple elements that cannot be stored in a
|
|
10
|
+
* `WeakMap`.
|
|
9
11
|
* @template {EXPECTED_ANY[]} T
|
|
10
12
|
* @template V
|
|
11
13
|
* @typedef {Map<EXPECTED_ANY, WeakTupleMap<T, V>>} M
|
|
12
14
|
*/
|
|
13
15
|
|
|
14
16
|
/**
|
|
17
|
+
* Weak-key child map used for tuple elements that are objects and can be held
|
|
18
|
+
* without preventing garbage collection.
|
|
15
19
|
* @template {EXPECTED_ANY[]} T
|
|
16
20
|
* @template V
|
|
17
21
|
* @typedef {WeakMap<EXPECTED_OBJECT, WeakTupleMap<T, V>>} W
|
|
18
22
|
*/
|
|
19
23
|
|
|
20
24
|
/**
|
|
25
|
+
* Reports whether a tuple element can be stored in a `WeakMap`.
|
|
21
26
|
* @param {EXPECTED_ANY} thing thing
|
|
22
27
|
* @returns {boolean} true if is weak
|
|
23
28
|
*/
|
|
24
29
|
const isWeakKey = (thing) => typeof thing === "object" && thing !== null;
|
|
25
30
|
|
|
26
31
|
/**
|
|
32
|
+
* Extracts the element type from a tuple-like array.
|
|
27
33
|
* @template {unknown[]} T
|
|
28
34
|
* @typedef {T extends ReadonlyArray<infer ElementType> ? ElementType : never} ArrayElement
|
|
29
35
|
*/
|
|
30
36
|
|
|
31
37
|
/**
|
|
38
|
+
* Stores values by tuple keys while using `WeakMap` for object elements so the
|
|
39
|
+
* cache can release entries when those objects are collected.
|
|
32
40
|
* @template {EXPECTED_ANY[]} K
|
|
33
41
|
* @template V
|
|
34
42
|
*/
|
|
35
43
|
class WeakTupleMap {
|
|
44
|
+
/**
|
|
45
|
+
* Initializes an empty tuple trie node with optional value and child maps.
|
|
46
|
+
*/
|
|
36
47
|
constructor() {
|
|
37
48
|
/** @private */
|
|
38
49
|
this.f = 0;
|
|
@@ -54,6 +65,7 @@ class WeakTupleMap {
|
|
|
54
65
|
}
|
|
55
66
|
|
|
56
67
|
/**
|
|
68
|
+
* Stores a value at the node identified by the provided tuple key.
|
|
57
69
|
* @param {[...K, V]} args tuple
|
|
58
70
|
* @returns {void}
|
|
59
71
|
*/
|
|
@@ -67,6 +79,7 @@ class WeakTupleMap {
|
|
|
67
79
|
}
|
|
68
80
|
|
|
69
81
|
/**
|
|
82
|
+
* Checks whether the exact tuple key has a stored value.
|
|
70
83
|
* @param {K} args tuple
|
|
71
84
|
* @returns {boolean} true, if the tuple is in the Set
|
|
72
85
|
*/
|
|
@@ -81,6 +94,7 @@ class WeakTupleMap {
|
|
|
81
94
|
}
|
|
82
95
|
|
|
83
96
|
/**
|
|
97
|
+
* Returns the value stored for the exact tuple key, if any.
|
|
84
98
|
* @param {K} args tuple
|
|
85
99
|
* @returns {V | undefined} the value
|
|
86
100
|
*/
|
|
@@ -95,6 +109,8 @@ class WeakTupleMap {
|
|
|
95
109
|
}
|
|
96
110
|
|
|
97
111
|
/**
|
|
112
|
+
* Returns an existing value for the tuple or computes, stores, and returns a
|
|
113
|
+
* new one when the tuple is missing.
|
|
98
114
|
* @param {[...K, (...args: K) => V]} args tuple
|
|
99
115
|
* @returns {V} the value
|
|
100
116
|
*/
|
|
@@ -112,6 +128,7 @@ class WeakTupleMap {
|
|
|
112
128
|
}
|
|
113
129
|
|
|
114
130
|
/**
|
|
131
|
+
* Removes the value stored for the tuple key without pruning the trie.
|
|
115
132
|
* @param {K} args tuple
|
|
116
133
|
* @returns {void}
|
|
117
134
|
*/
|
|
@@ -126,6 +143,7 @@ class WeakTupleMap {
|
|
|
126
143
|
}
|
|
127
144
|
|
|
128
145
|
/**
|
|
146
|
+
* Clears the stored value and all strong and weak child maps from this node.
|
|
129
147
|
* @returns {void}
|
|
130
148
|
*/
|
|
131
149
|
clear() {
|
|
@@ -135,15 +153,24 @@ class WeakTupleMap {
|
|
|
135
153
|
this.m = undefined;
|
|
136
154
|
}
|
|
137
155
|
|
|
156
|
+
/**
|
|
157
|
+
* Returns the value stored directly on this trie node.
|
|
158
|
+
* @returns {V | undefined} stored value
|
|
159
|
+
*/
|
|
138
160
|
_getValue() {
|
|
139
161
|
return this.v;
|
|
140
162
|
}
|
|
141
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Reports whether this trie node currently stores a value.
|
|
166
|
+
* @returns {boolean} true when a value is present
|
|
167
|
+
*/
|
|
142
168
|
_hasValue() {
|
|
143
169
|
return (this.f & 1) === 1;
|
|
144
170
|
}
|
|
145
171
|
|
|
146
172
|
/**
|
|
173
|
+
* Stores a value directly on this trie node.
|
|
147
174
|
* @param {V} v value
|
|
148
175
|
* @private
|
|
149
176
|
*/
|
|
@@ -152,12 +179,16 @@ class WeakTupleMap {
|
|
|
152
179
|
this.v = v;
|
|
153
180
|
}
|
|
154
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Removes the value stored directly on this trie node.
|
|
184
|
+
*/
|
|
155
185
|
_deleteValue() {
|
|
156
186
|
this.f &= 6;
|
|
157
187
|
this.v = undefined;
|
|
158
188
|
}
|
|
159
189
|
|
|
160
190
|
/**
|
|
191
|
+
* Returns the child node for a tuple element without creating one.
|
|
161
192
|
* @param {ArrayElement<K>} thing thing
|
|
162
193
|
* @returns {WeakTupleMap<K, V> | undefined} thing
|
|
163
194
|
* @private
|
|
@@ -176,6 +207,8 @@ class WeakTupleMap {
|
|
|
176
207
|
}
|
|
177
208
|
|
|
178
209
|
/**
|
|
210
|
+
* Returns the child node for a tuple element, creating and storing it when
|
|
211
|
+
* necessary.
|
|
179
212
|
* @private
|
|
180
213
|
* @param {ArrayElement<K>} thing thing
|
|
181
214
|
* @returns {WeakTupleMap<K, V>} value
|
|
@@ -65,6 +65,7 @@ const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => {
|
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
|
+
* Defines the search type used by this module.
|
|
68
69
|
* @template T
|
|
69
70
|
* @typedef {(items: T[], start: number, compareFn?: number | ((item: T, needle: number) => number), l?: number, h?: number) => number} Search
|
|
70
71
|
*/
|
package/lib/util/cleverMerge.js
CHANGED
|
@@ -51,6 +51,7 @@ const cachedCleverMerge = (first, second) => {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
+
* Caches d set property.
|
|
54
55
|
* @template T
|
|
55
56
|
* @param {Partial<T>} obj object
|
|
56
57
|
* @param {string} property property
|
|
@@ -86,10 +87,12 @@ const cachedSetProperty = (obj, property, value) => {
|
|
|
86
87
|
};
|
|
87
88
|
|
|
88
89
|
/**
|
|
90
|
+
* Defines the by values type used by this module.
|
|
89
91
|
* @typedef {Map<string, EXPECTED_ANY>} ByValues
|
|
90
92
|
*/
|
|
91
93
|
|
|
92
94
|
/**
|
|
95
|
+
* Defines the object parsed property entry type used by this module.
|
|
93
96
|
* @template T
|
|
94
97
|
* @typedef {object} ObjectParsedPropertyEntry
|
|
95
98
|
* @property {T[keyof T] | undefined} base base value
|
|
@@ -100,16 +103,19 @@ const cachedSetProperty = (obj, property, value) => {
|
|
|
100
103
|
/** @typedef {(function(...EXPECTED_ANY): object) & { [DYNAMIC_INFO]: [DynamicFunction, object] }} DynamicFunction */
|
|
101
104
|
|
|
102
105
|
/**
|
|
106
|
+
* Defines the parsed object static type used by this module.
|
|
103
107
|
* @template {object} T
|
|
104
108
|
* @typedef {Map<keyof T, ObjectParsedPropertyEntry<T>>} ParsedObjectStatic
|
|
105
109
|
*/
|
|
106
110
|
|
|
107
111
|
/**
|
|
112
|
+
* Defines the parsed object dynamic type used by this module.
|
|
108
113
|
* @template {object} T
|
|
109
114
|
* @typedef {{ byProperty: `by${string}`, fn: DynamicFunction }} ParsedObjectDynamic
|
|
110
115
|
*/
|
|
111
116
|
|
|
112
117
|
/**
|
|
118
|
+
* Defines the parsed object type used by this module.
|
|
113
119
|
* @template {object} T
|
|
114
120
|
* @typedef {object} ParsedObject
|
|
115
121
|
* @property {ParsedObjectStatic<T>} static static properties (key is property name)
|
|
@@ -120,21 +126,23 @@ const cachedSetProperty = (obj, property, value) => {
|
|
|
120
126
|
const parseCache = new WeakMap();
|
|
121
127
|
|
|
122
128
|
/**
|
|
129
|
+
* Caches d parse object.
|
|
123
130
|
* @template {object} T
|
|
124
131
|
* @param {T} obj the object
|
|
125
132
|
* @returns {ParsedObject<T>} parsed object
|
|
126
133
|
*/
|
|
127
134
|
const cachedParseObject = (obj) => {
|
|
128
|
-
const entry = parseCache.get(
|
|
135
|
+
const entry = parseCache.get(obj);
|
|
129
136
|
if (entry !== undefined) return entry;
|
|
130
137
|
const result = parseObject(obj);
|
|
131
|
-
parseCache.set(
|
|
138
|
+
parseCache.set(obj, result);
|
|
132
139
|
return result;
|
|
133
140
|
};
|
|
134
141
|
|
|
135
142
|
/** @typedef {{ [p: string]: { [p: string]: EXPECTED_ANY } } | DynamicFunction} ByObject */
|
|
136
143
|
|
|
137
144
|
/**
|
|
145
|
+
* Returns parsed object.
|
|
138
146
|
* @template {object} T
|
|
139
147
|
* @param {T} obj the object
|
|
140
148
|
* @returns {ParsedObject<T>} parsed object
|
|
@@ -145,6 +153,7 @@ const parseObject = (obj) => {
|
|
|
145
153
|
/** @type {ParsedObjectDynamic<T> | undefined} */
|
|
146
154
|
let dynamicInfo;
|
|
147
155
|
/**
|
|
156
|
+
* Returns object parsed property entry.
|
|
148
157
|
* @param {keyof T} p path
|
|
149
158
|
* @returns {Partial<ObjectParsedPropertyEntry<T>>} object parsed property entry
|
|
150
159
|
*/
|
|
@@ -221,6 +230,7 @@ const parseObject = (obj) => {
|
|
|
221
230
|
};
|
|
222
231
|
|
|
223
232
|
/**
|
|
233
|
+
* Returns the object.
|
|
224
234
|
* @template {object} T
|
|
225
235
|
* @param {ParsedObjectStatic<T>} info static properties (key is property name)
|
|
226
236
|
* @param {{ byProperty: `by${string}`, fn: DynamicFunction } | undefined} dynamicInfo dynamic part
|
|
@@ -269,6 +279,7 @@ const VALUE_TYPE_OBJECT = 3;
|
|
|
269
279
|
const VALUE_TYPE_DELETE = 4;
|
|
270
280
|
|
|
271
281
|
/**
|
|
282
|
+
* Returns value type.
|
|
272
283
|
* @template T
|
|
273
284
|
* @param {T} value a single value
|
|
274
285
|
* @returns {VALUE_TYPE_UNDEFINED | VALUE_TYPE_ATOM | VALUE_TYPE_ARRAY_EXTEND | VALUE_TYPE_OBJECT | VALUE_TYPE_DELETE} value type
|
|
@@ -311,6 +322,7 @@ const cleverMerge = (first, second) => {
|
|
|
311
322
|
};
|
|
312
323
|
|
|
313
324
|
/**
|
|
325
|
+
* Returns merged object of first and second object.
|
|
314
326
|
* @template {object} T
|
|
315
327
|
* @template {object} O
|
|
316
328
|
* Merges two objects. Objects are deeply clever merged.
|
|
@@ -378,6 +390,7 @@ const _cleverMerge = (first, second, internalCaching = false) => {
|
|
|
378
390
|
};
|
|
379
391
|
|
|
380
392
|
/**
|
|
393
|
+
* Merges the provided values into a single result.
|
|
381
394
|
* @template T, O
|
|
382
395
|
* @param {ObjectParsedPropertyEntry<T>} firstEntry a
|
|
383
396
|
* @param {ObjectParsedPropertyEntry<O>} secondEntry b
|
|
@@ -510,6 +523,7 @@ const mergeEntries = (firstEntry, secondEntry, internalCaching) => {
|
|
|
510
523
|
};
|
|
511
524
|
|
|
512
525
|
/**
|
|
526
|
+
* Gets from by values.
|
|
513
527
|
* @template V
|
|
514
528
|
* @param {ByValues} byValues all values
|
|
515
529
|
* @param {string} key value of the selector
|
|
@@ -523,6 +537,7 @@ const getFromByValues = (byValues, key) => {
|
|
|
523
537
|
};
|
|
524
538
|
|
|
525
539
|
/**
|
|
540
|
+
* Merges single value.
|
|
526
541
|
* @template A
|
|
527
542
|
* @template B
|
|
528
543
|
* @param {A | A[]} a value
|
|
@@ -585,6 +600,7 @@ const mergeSingleValue = (a, b, internalCaching) => {
|
|
|
585
600
|
};
|
|
586
601
|
|
|
587
602
|
/**
|
|
603
|
+
* Removes operations.
|
|
588
604
|
* @template {object} T
|
|
589
605
|
* @param {T} obj the object
|
|
590
606
|
* @param {(keyof T)[]=} keysToKeepOriginalValue keys to keep original value
|
|
@@ -632,6 +648,7 @@ const removeOperations = (obj, keysToKeepOriginalValue = []) => {
|
|
|
632
648
|
};
|
|
633
649
|
|
|
634
650
|
/**
|
|
651
|
+
* Resolves by property.
|
|
635
652
|
* @template T
|
|
636
653
|
* @template {keyof T} P
|
|
637
654
|
* @template V
|
package/lib/util/comparators.js
CHANGED
|
@@ -24,50 +24,57 @@ const { compareRuntime } = require("./runtime");
|
|
|
24
24
|
/** @typedef {import("../dependencies/ModuleDependency")} ModuleDependency */
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
+
* Defines the dependency source order type used by this module.
|
|
27
28
|
* @typedef {object} DependencySourceOrder
|
|
28
29
|
* @property {number} main the main source order
|
|
29
30
|
* @property {number} sub the sub source order
|
|
30
31
|
*/
|
|
31
32
|
|
|
32
33
|
/**
|
|
34
|
+
* Defines the comparator type used by this module.
|
|
33
35
|
* @template T
|
|
34
36
|
* @typedef {(a: T, b: T) => -1 | 0 | 1} Comparator
|
|
35
37
|
*/
|
|
36
38
|
/**
|
|
39
|
+
* Defines the raw parameterized comparator type used by this module.
|
|
37
40
|
* @template {object} TArg
|
|
38
41
|
* @template T
|
|
39
42
|
* @typedef {(tArg: TArg, a: T, b: T) => -1 | 0 | 1} RawParameterizedComparator
|
|
40
43
|
*/
|
|
41
44
|
/**
|
|
45
|
+
* Defines the parameterized comparator type used by this module.
|
|
42
46
|
* @template {object} TArg
|
|
43
47
|
* @template T
|
|
44
48
|
* @typedef {(tArg: TArg) => Comparator<T>} ParameterizedComparator
|
|
45
49
|
*/
|
|
46
50
|
|
|
47
51
|
/**
|
|
52
|
+
* Creates a cached parameterized comparator.
|
|
48
53
|
* @template {object} TArg
|
|
49
54
|
* @template {object} T
|
|
50
55
|
* @param {RawParameterizedComparator<TArg, T>} fn comparator with argument
|
|
51
56
|
* @returns {ParameterizedComparator<TArg, T>} comparator
|
|
52
57
|
*/
|
|
53
58
|
const createCachedParameterizedComparator = (fn) => {
|
|
54
|
-
/** @type {WeakMap<
|
|
59
|
+
/** @type {WeakMap<TArg, Comparator<T>>} */
|
|
55
60
|
const map = new WeakMap();
|
|
56
61
|
return (arg) => {
|
|
57
|
-
const cachedResult = map.get(
|
|
62
|
+
const cachedResult = map.get(arg);
|
|
58
63
|
if (cachedResult !== undefined) return cachedResult;
|
|
59
64
|
/**
|
|
65
|
+
* Returns compare result.
|
|
60
66
|
* @param {T} a first item
|
|
61
67
|
* @param {T} b second item
|
|
62
68
|
* @returns {-1 | 0 | 1} compare result
|
|
63
69
|
*/
|
|
64
70
|
const result = fn.bind(null, arg);
|
|
65
|
-
map.set(
|
|
71
|
+
map.set(arg, result);
|
|
66
72
|
return result;
|
|
67
73
|
};
|
|
68
74
|
};
|
|
69
75
|
|
|
70
76
|
/**
|
|
77
|
+
* Compares the provided values and returns their ordering.
|
|
71
78
|
* @param {string | number} a first id
|
|
72
79
|
* @param {string | number} b second id
|
|
73
80
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -82,6 +89,7 @@ const compareIds = (a, b) => {
|
|
|
82
89
|
};
|
|
83
90
|
|
|
84
91
|
/**
|
|
92
|
+
* Compares iterables.
|
|
85
93
|
* @template T
|
|
86
94
|
* @param {Comparator<T>} elementComparator comparator for elements
|
|
87
95
|
* @returns {Comparator<Iterable<T>>} comparator for iterables of elements
|
|
@@ -90,6 +98,7 @@ const compareIterables = (elementComparator) => {
|
|
|
90
98
|
const cacheEntry = compareIteratorsCache.get(elementComparator);
|
|
91
99
|
if (cacheEntry !== undefined) return cacheEntry;
|
|
92
100
|
/**
|
|
101
|
+
* Returns compare result.
|
|
93
102
|
* @param {Iterable<T>} a first value
|
|
94
103
|
* @param {Iterable<T>} b second value
|
|
95
104
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -177,6 +186,7 @@ const compareLocations = (a, b) => {
|
|
|
177
186
|
};
|
|
178
187
|
|
|
179
188
|
/**
|
|
189
|
+
* Compares modules by id.
|
|
180
190
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
181
191
|
* @param {Module} a module
|
|
182
192
|
* @param {Module} b module
|
|
@@ -189,6 +199,7 @@ const compareModulesById = (chunkGraph, a, b) =>
|
|
|
189
199
|
);
|
|
190
200
|
|
|
191
201
|
/**
|
|
202
|
+
* Compares the provided values and returns their ordering.
|
|
192
203
|
* @param {number} a number
|
|
193
204
|
* @param {number} b number
|
|
194
205
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -203,6 +214,7 @@ const compareNumbers = (a, b) => {
|
|
|
203
214
|
};
|
|
204
215
|
|
|
205
216
|
/**
|
|
217
|
+
* Compares strings numeric.
|
|
206
218
|
* @param {string} a string
|
|
207
219
|
* @param {string} b string
|
|
208
220
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -274,6 +286,7 @@ const compareStringsNumeric = (a, b) => {
|
|
|
274
286
|
};
|
|
275
287
|
|
|
276
288
|
/**
|
|
289
|
+
* Compares modules by post order index or identifier.
|
|
277
290
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
278
291
|
* @param {Module} a module
|
|
279
292
|
* @param {Module} b module
|
|
@@ -289,6 +302,7 @@ const compareModulesByPostOrderIndexOrIdentifier = (moduleGraph, a, b) => {
|
|
|
289
302
|
};
|
|
290
303
|
|
|
291
304
|
/**
|
|
305
|
+
* Compares modules by pre order index or identifier.
|
|
292
306
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
293
307
|
* @param {Module} a module
|
|
294
308
|
* @param {Module} b module
|
|
@@ -304,6 +318,7 @@ const compareModulesByPreOrderIndexOrIdentifier = (moduleGraph, a, b) => {
|
|
|
304
318
|
};
|
|
305
319
|
|
|
306
320
|
/**
|
|
321
|
+
* Compares modules by id or identifier.
|
|
307
322
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
308
323
|
* @param {Module} a module
|
|
309
324
|
* @param {Module} b module
|
|
@@ -332,6 +347,7 @@ const compareModulesByFullName = (compiler, a, b) => {
|
|
|
332
347
|
};
|
|
333
348
|
|
|
334
349
|
/**
|
|
350
|
+
* Compares the provided values and returns their ordering.
|
|
335
351
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
336
352
|
* @param {Chunk} a chunk
|
|
337
353
|
* @param {Chunk} b chunk
|
|
@@ -340,6 +356,7 @@ const compareModulesByFullName = (compiler, a, b) => {
|
|
|
340
356
|
const compareChunks = (chunkGraph, a, b) => chunkGraph.compareChunks(a, b);
|
|
341
357
|
|
|
342
358
|
/**
|
|
359
|
+
* Compares the provided values and returns their ordering.
|
|
343
360
|
* @param {string} a first string
|
|
344
361
|
* @param {string} b second string
|
|
345
362
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -351,6 +368,7 @@ const compareStrings = (a, b) => {
|
|
|
351
368
|
};
|
|
352
369
|
|
|
353
370
|
/**
|
|
371
|
+
* Compares chunk groups by index.
|
|
354
372
|
* @param {ChunkGroup} a first chunk group
|
|
355
373
|
* @param {ChunkGroup} b second chunk group
|
|
356
374
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -359,6 +377,7 @@ const compareChunkGroupsByIndex = (a, b) =>
|
|
|
359
377
|
/** @type {number} */ (a.index) < /** @type {number} */ (b.index) ? -1 : 1;
|
|
360
378
|
|
|
361
379
|
/**
|
|
380
|
+
* Represents TwoKeyWeakMap.
|
|
362
381
|
* @template {EXPECTED_OBJECT} K1
|
|
363
382
|
* @template {EXPECTED_OBJECT} K2
|
|
364
383
|
* @template T
|
|
@@ -373,6 +392,7 @@ class TwoKeyWeakMap {
|
|
|
373
392
|
}
|
|
374
393
|
|
|
375
394
|
/**
|
|
395
|
+
* Returns value.
|
|
376
396
|
* @param {K1} key1 first key
|
|
377
397
|
* @param {K2} key2 second key
|
|
378
398
|
* @returns {T | undefined} value
|
|
@@ -386,6 +406,7 @@ class TwoKeyWeakMap {
|
|
|
386
406
|
}
|
|
387
407
|
|
|
388
408
|
/**
|
|
409
|
+
* Updates value using the provided key1.
|
|
389
410
|
* @param {K1} key1 first key
|
|
390
411
|
* @param {K2} key2 second key
|
|
391
412
|
* @param {T | undefined} value new value
|
|
@@ -405,6 +426,7 @@ class TwoKeyWeakMap {
|
|
|
405
426
|
const concatComparatorsCache = new TwoKeyWeakMap();
|
|
406
427
|
|
|
407
428
|
/**
|
|
429
|
+
* Concat comparators.
|
|
408
430
|
* @template T
|
|
409
431
|
* @param {Comparator<T>} c1 comparator
|
|
410
432
|
* @param {Comparator<T>} c2 comparator
|
|
@@ -421,6 +443,7 @@ const concatComparators = (c1, c2, ...cRest) => {
|
|
|
421
443
|
);
|
|
422
444
|
if (cacheEntry !== undefined) return cacheEntry;
|
|
423
445
|
/**
|
|
446
|
+
* Returns compare result.
|
|
424
447
|
* @param {T} a first value
|
|
425
448
|
* @param {T} b second value
|
|
426
449
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -435,6 +458,7 @@ const concatComparators = (c1, c2, ...cRest) => {
|
|
|
435
458
|
};
|
|
436
459
|
|
|
437
460
|
/**
|
|
461
|
+
* Defines the selector type used by this module.
|
|
438
462
|
* @template A, B
|
|
439
463
|
* @typedef {(input: A) => B | undefined | null} Selector
|
|
440
464
|
*/
|
|
@@ -443,6 +467,7 @@ const concatComparators = (c1, c2, ...cRest) => {
|
|
|
443
467
|
const compareSelectCache = new TwoKeyWeakMap();
|
|
444
468
|
|
|
445
469
|
/**
|
|
470
|
+
* Compares the provided values and returns their ordering.
|
|
446
471
|
* @template T
|
|
447
472
|
* @template R
|
|
448
473
|
* @param {Selector<T, R>} getter getter for value
|
|
@@ -453,6 +478,7 @@ const compareSelect = (getter, comparator) => {
|
|
|
453
478
|
const cacheEntry = compareSelectCache.get(getter, comparator);
|
|
454
479
|
if (cacheEntry !== undefined) return cacheEntry;
|
|
455
480
|
/**
|
|
481
|
+
* Returns compare result.
|
|
456
482
|
* @param {T} a first value
|
|
457
483
|
* @param {T} b second value
|
|
458
484
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -481,6 +507,7 @@ const compareIteratorsCache = new WeakMap();
|
|
|
481
507
|
// TODO this is no longer needed when minimum node.js version is >= 12
|
|
482
508
|
// since these versions ship with a stable sort function
|
|
483
509
|
/**
|
|
510
|
+
* Keep original order.
|
|
484
511
|
* @template T
|
|
485
512
|
* @param {Iterable<T>} iterable original ordered list
|
|
486
513
|
* @returns {Comparator<T>} comparator
|
|
@@ -500,6 +527,7 @@ const keepOriginalOrder = (iterable) => {
|
|
|
500
527
|
};
|
|
501
528
|
|
|
502
529
|
/**
|
|
530
|
+
* Compares chunks natural.
|
|
503
531
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
504
532
|
* @returns {Comparator<Chunk>} comparator
|
|
505
533
|
*/
|
|
@@ -511,6 +539,7 @@ const compareChunksNatural = (chunkGraph) => {
|
|
|
511
539
|
compareSelect((chunk) => chunk.runtime, compareRuntime),
|
|
512
540
|
compareSelect(
|
|
513
541
|
/**
|
|
542
|
+
* Handles the callback logic for this hook.
|
|
514
543
|
* @param {Chunk} chunk a chunk
|
|
515
544
|
* @returns {Iterable<Module>} modules
|
|
516
545
|
*/
|
|
@@ -591,6 +620,7 @@ module.exports.compareChunkGroupsByIndex = compareChunkGroupsByIndex;
|
|
|
591
620
|
module.exports.compareChunks =
|
|
592
621
|
createCachedParameterizedComparator(compareChunks);
|
|
593
622
|
/**
|
|
623
|
+
* Returns compare result.
|
|
594
624
|
* @param {Chunk} a chunk
|
|
595
625
|
* @param {Chunk} b chunk
|
|
596
626
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -617,6 +647,7 @@ module.exports.compareModulesById =
|
|
|
617
647
|
module.exports.compareModulesByIdOrIdentifier =
|
|
618
648
|
createCachedParameterizedComparator(compareModulesByIdOrIdentifier);
|
|
619
649
|
/**
|
|
650
|
+
* Returns compare result.
|
|
620
651
|
* @param {Module} a module
|
|
621
652
|
* @param {Module} b module
|
|
622
653
|
* @returns {-1 | 0 | 1} compare result
|
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Returns quoted meta.
|
|
9
10
|
* @param {string} str string
|
|
10
11
|
* @returns {string} quoted meta
|
|
11
12
|
*/
|
|
12
13
|
const quoteMeta = (str) => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&");
|
|
13
14
|
|
|
14
15
|
/**
|
|
16
|
+
* Quote meta in char class.
|
|
15
17
|
* @param {string} char character to escape for use in character class
|
|
16
18
|
* @returns {string} escaped character
|
|
17
19
|
*/
|
|
@@ -85,6 +87,7 @@ const formatRange = (start, end) => {
|
|
|
85
87
|
};
|
|
86
88
|
|
|
87
89
|
/**
|
|
90
|
+
* Returns string.
|
|
88
91
|
* @param {string} str string
|
|
89
92
|
* @returns {string} string
|
|
90
93
|
*/
|
|
@@ -96,6 +99,7 @@ const toSimpleString = (str) => {
|
|
|
96
99
|
};
|
|
97
100
|
|
|
98
101
|
/**
|
|
102
|
+
* Compile boolean matcher.
|
|
99
103
|
* @param {Record<string | number, boolean>} map value map
|
|
100
104
|
* @returns {boolean | ((value: string) => string)} true/false, when unconditionally true/false, or a template function to determine the value at runtime
|
|
101
105
|
*/
|
|
@@ -108,6 +112,7 @@ const compileBooleanMatcher = (map) => {
|
|
|
108
112
|
};
|
|
109
113
|
|
|
110
114
|
/**
|
|
115
|
+
* Compile boolean matcher from lists.
|
|
111
116
|
* @param {string[]} positiveItems positive items
|
|
112
117
|
* @param {string[]} negativeItems negative items
|
|
113
118
|
* @returns {(value: string) => string} a template function to determine the value at runtime
|
|
@@ -132,6 +137,7 @@ const compileBooleanMatcherFromLists = (positiveItems, negativeItems) => {
|
|
|
132
137
|
/** @typedef {string[][]} ListOfCommonItems */
|
|
133
138
|
|
|
134
139
|
/**
|
|
140
|
+
* Returns list of common items.
|
|
135
141
|
* @param {Set<string>} itemsSet items set
|
|
136
142
|
* @param {(str: string) => string | false} getKey get key function
|
|
137
143
|
* @param {(str: string[]) => boolean} condition condition
|
|
@@ -166,6 +172,7 @@ const popCommonItems = (itemsSet, getKey, condition) => {
|
|
|
166
172
|
};
|
|
167
173
|
|
|
168
174
|
/**
|
|
175
|
+
* Gets common prefix.
|
|
169
176
|
* @param {string[]} items items
|
|
170
177
|
* @returns {string} common prefix
|
|
171
178
|
*/
|
|
@@ -184,6 +191,7 @@ const getCommonPrefix = (items) => {
|
|
|
184
191
|
};
|
|
185
192
|
|
|
186
193
|
/**
|
|
194
|
+
* Gets common suffix.
|
|
187
195
|
* @param {string[]} items items
|
|
188
196
|
* @returns {string} common suffix
|
|
189
197
|
*/
|
|
@@ -202,6 +210,7 @@ const getCommonSuffix = (items) => {
|
|
|
202
210
|
};
|
|
203
211
|
|
|
204
212
|
/**
|
|
213
|
+
* Returns regexp.
|
|
205
214
|
* @param {string[]} itemsArr array of items
|
|
206
215
|
* @returns {string} regexp
|
|
207
216
|
*/
|
package/lib/util/concatenate.js
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
|
|
10
|
-
/** @typedef {import("eslint-scope").Scope} Scope */
|
|
11
|
-
/** @typedef {import("eslint-scope").Reference} Reference */
|
|
12
|
-
/** @typedef {import("eslint-scope").Variable} Variable */
|
|
13
10
|
/** @typedef {import("estree").Node} Node */
|
|
11
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Scope} Scope */
|
|
12
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Reference} Reference */
|
|
13
|
+
/** @typedef {import("../javascript/JavascriptModulesPlugin").Variable} Variable */
|
|
14
14
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
15
15
|
/** @typedef {Set<string>} UsedNames */
|
|
16
16
|
|
|
@@ -18,6 +18,7 @@ const DEFAULT_EXPORT = "__WEBPACK_DEFAULT_EXPORT__";
|
|
|
18
18
|
const NAMESPACE_OBJECT_EXPORT = "__WEBPACK_NAMESPACE_OBJECT__";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
+
* Gets all references.
|
|
21
22
|
* @param {Variable} variable variable
|
|
22
23
|
* @returns {Reference[]} references
|
|
23
24
|
*/
|
|
@@ -37,6 +38,7 @@ const getAllReferences = (variable) => {
|
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
/**
|
|
41
|
+
* Returns result.
|
|
40
42
|
* @param {Node | Node[]} ast ast
|
|
41
43
|
* @param {Node} node node
|
|
42
44
|
* @returns {undefined | Node[]} result
|
|
@@ -49,6 +51,7 @@ const getPathInAst = (ast, node) => {
|
|
|
49
51
|
const nr = /** @type {Range} */ (node.range);
|
|
50
52
|
|
|
51
53
|
/**
|
|
54
|
+
* Returns result.
|
|
52
55
|
* @param {Node} n node
|
|
53
56
|
* @returns {Node[] | undefined} result
|
|
54
57
|
*/
|
|
@@ -92,6 +95,7 @@ const getPathInAst = (ast, node) => {
|
|
|
92
95
|
};
|
|
93
96
|
|
|
94
97
|
/**
|
|
98
|
+
* Returns found new name.
|
|
95
99
|
* @param {string} oldName old name
|
|
96
100
|
* @param {UsedNames} usedNamed1 used named 1
|
|
97
101
|
* @param {UsedNames} usedNamed2 used named 2
|
|
@@ -142,6 +146,7 @@ function findNewName(oldName, usedNamed1, usedNamed2, extraInfo) {
|
|
|
142
146
|
/** @typedef {Set<Scope>} ScopeSet */
|
|
143
147
|
|
|
144
148
|
/**
|
|
149
|
+
* Adds scope symbols.
|
|
145
150
|
* @param {Scope | null} s scope
|
|
146
151
|
* @param {UsedNames} nameSet name set
|
|
147
152
|
* @param {ScopeSet} scopeSet1 scope set 1
|
|
@@ -202,6 +207,7 @@ const RESERVED_NAMES = new Set(
|
|
|
202
207
|
/** @typedef {Map<string, ScopeInfo>} UsedNamesInScopeInfo */
|
|
203
208
|
|
|
204
209
|
/**
|
|
210
|
+
* Gets used names in scope info.
|
|
205
211
|
* @param {UsedNamesInScopeInfo} usedNamesInScopeInfo used names in scope info
|
|
206
212
|
* @param {string} module module identifier
|
|
207
213
|
* @param {string} id export id
|