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
|
@@ -30,6 +30,7 @@ const DEFAULT_SOURCE = {
|
|
|
30
30
|
return new RawSource("throw new Error('No source available');");
|
|
31
31
|
},
|
|
32
32
|
/**
|
|
33
|
+
* Returns the estimated size for the requested source type.
|
|
33
34
|
* @returns {number} size of the DEFAULT_SOURCE.source()
|
|
34
35
|
*/
|
|
35
36
|
size() {
|
|
@@ -42,6 +43,7 @@ const DEFAULT_SOURCE = {
|
|
|
42
43
|
|
|
43
44
|
const deprecatedGetInitFragments = util.deprecate(
|
|
44
45
|
/**
|
|
46
|
+
* Handles the callback logic for this hook.
|
|
45
47
|
* @param {DependencyTemplate} template template
|
|
46
48
|
* @param {Dependency} dependency dependency
|
|
47
49
|
* @param {DependencyTemplateContext} templateContext template context
|
|
@@ -56,6 +58,7 @@ const deprecatedGetInitFragments = util.deprecate(
|
|
|
56
58
|
|
|
57
59
|
class JavascriptGenerator extends Generator {
|
|
58
60
|
/**
|
|
61
|
+
* Returns the source types available for this module.
|
|
59
62
|
* @param {NormalModule} module fresh module
|
|
60
63
|
* @returns {SourceTypes} available types (do not mutate)
|
|
61
64
|
*/
|
|
@@ -64,6 +67,7 @@ class JavascriptGenerator extends Generator {
|
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
/**
|
|
70
|
+
* Returns the estimated size for the requested source type.
|
|
67
71
|
* @param {NormalModule} module the module
|
|
68
72
|
* @param {SourceType=} type source type
|
|
69
73
|
* @returns {number} estimate size of the module
|
|
@@ -77,6 +81,7 @@ class JavascriptGenerator extends Generator {
|
|
|
77
81
|
}
|
|
78
82
|
|
|
79
83
|
/**
|
|
84
|
+
* Returns the reason this module cannot be concatenated, when one exists.
|
|
80
85
|
* @param {NormalModule} module module for which the bailout reason should be determined
|
|
81
86
|
* @param {ConcatenationBailoutReasonContext} context context
|
|
82
87
|
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
|
|
@@ -103,6 +108,7 @@ class JavascriptGenerator extends Generator {
|
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
/**
|
|
111
|
+
* Processes the provided module.
|
|
106
112
|
* @param {Module} module the current module
|
|
107
113
|
* @param {Dependency} dependency the dependency to generate
|
|
108
114
|
* @param {InitFragment<GenerateContext>[]} initFragments mutable list of init fragments
|
|
@@ -173,6 +179,7 @@ class JavascriptGenerator extends Generator {
|
|
|
173
179
|
}
|
|
174
180
|
|
|
175
181
|
/**
|
|
182
|
+
* Processes the provided module.
|
|
176
183
|
* @param {Module} module the module to generate
|
|
177
184
|
* @param {DependenciesBlock} block the dependencies block which will be processed
|
|
178
185
|
* @param {InitFragment<GenerateContext>[]} initFragments mutable list of init fragments
|
|
@@ -203,6 +210,7 @@ class JavascriptGenerator extends Generator {
|
|
|
203
210
|
}
|
|
204
211
|
|
|
205
212
|
/**
|
|
213
|
+
* Processes the provided module.
|
|
206
214
|
* @param {Module} module the module to generate
|
|
207
215
|
* @param {InitFragment<GenerateContext>[]} initFragments mutable list of init fragments
|
|
208
216
|
* @param {ReplaceSource} source the current replace source which can be modified
|
|
@@ -244,6 +252,7 @@ class JavascriptGenerator extends Generator {
|
|
|
244
252
|
}
|
|
245
253
|
|
|
246
254
|
/**
|
|
255
|
+
* Generates generated code for this runtime module.
|
|
247
256
|
* @param {NormalModule} module module for which the code should be generated
|
|
248
257
|
* @param {GenerateContext} generateContext context for generate
|
|
249
258
|
* @returns {Source | null} generated code
|
|
@@ -264,6 +273,7 @@ class JavascriptGenerator extends Generator {
|
|
|
264
273
|
}
|
|
265
274
|
|
|
266
275
|
/**
|
|
276
|
+
* Generates fallback output for the provided error condition.
|
|
267
277
|
* @param {Error} error the error
|
|
268
278
|
* @param {NormalModule} module module for which the code should be generated
|
|
269
279
|
* @param {GenerateContext} generateContext context for generate
|
|
@@ -17,7 +17,6 @@ const {
|
|
|
17
17
|
ReplaceSource
|
|
18
18
|
} = require("webpack-sources");
|
|
19
19
|
const Compilation = require("../Compilation");
|
|
20
|
-
const { tryRunOrWebpackError } = require("../HookWebpackError");
|
|
21
20
|
const HotUpdateChunk = require("../HotUpdateChunk");
|
|
22
21
|
const InitFragment = require("../InitFragment");
|
|
23
22
|
const { JAVASCRIPT_TYPE } = require("../ModuleSourceTypeConstants");
|
|
@@ -30,6 +29,7 @@ const {
|
|
|
30
29
|
const NormalModule = require("../NormalModule");
|
|
31
30
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
32
31
|
const Template = require("../Template");
|
|
32
|
+
const { tryRunOrWebpackError } = require("../errors/HookWebpackError");
|
|
33
33
|
const { last, someInIterable } = require("../util/IterableHelpers");
|
|
34
34
|
const StringXor = require("../util/StringXor");
|
|
35
35
|
const { compareModulesByFullName } = require("../util/comparators");
|
|
@@ -48,10 +48,24 @@ const { intersectRuntime } = require("../util/runtime");
|
|
|
48
48
|
const JavascriptGenerator = require("./JavascriptGenerator");
|
|
49
49
|
const JavascriptParser = require("./JavascriptParser");
|
|
50
50
|
|
|
51
|
-
/** @typedef {import("eslint-scope").Reference} Reference */
|
|
52
|
-
/** @typedef {import("eslint-scope").Scope} Scope */
|
|
53
|
-
/** @typedef {import("eslint-scope").Variable} Variable */
|
|
54
51
|
/** @typedef {import("estree").Program} Program */
|
|
52
|
+
/** @typedef {import("estree").Node} Node */
|
|
53
|
+
/** @typedef {import("estree").Identifier} Identifier */
|
|
54
|
+
/** @typedef {import("estree").CatchClause} CatchClause */
|
|
55
|
+
/** @typedef {import("estree").ClassDeclaration} ClassDeclaration */
|
|
56
|
+
/** @typedef {import("estree").ClassExpression} ClassExpression */
|
|
57
|
+
/** @typedef {import("estree").FunctionDeclaration} FunctionDeclaration */
|
|
58
|
+
/** @typedef {import("estree").FunctionExpression} FunctionExpression */
|
|
59
|
+
/** @typedef {import("estree").ArrowFunctionExpression} ArrowFunctionExpression */
|
|
60
|
+
/** @typedef {import("estree").VariableDeclarator} VariableDeclarator */
|
|
61
|
+
/** @typedef {import("estree").VariableDeclaration} VariableDeclaration */
|
|
62
|
+
/** @typedef {import("estree").ImportDeclaration} ImportDeclaration */
|
|
63
|
+
/** @typedef {import("estree").ImportSpecifier} ImportSpecifier */
|
|
64
|
+
/** @typedef {import("estree").ImportDefaultSpecifier} ImportDefaultSpecifier */
|
|
65
|
+
/** @typedef {import("estree").ImportNamespaceSpecifier} ImportNamespaceSpecifier */
|
|
66
|
+
/** @typedef {import("estree").AssignmentExpression} AssignmentExpression */
|
|
67
|
+
/** @typedef {import("estree").ForInStatement} ForInStatement */
|
|
68
|
+
/** @typedef {import("estree").ForOfStatement} ForOfStatement */
|
|
55
69
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
56
70
|
/** @typedef {import("../config/defaults").OutputNormalizedWithDefaults} OutputOptions */
|
|
57
71
|
/** @typedef {import("../Chunk")} Chunk */
|
|
@@ -70,16 +84,72 @@ const JavascriptParser = require("./JavascriptParser");
|
|
|
70
84
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
71
85
|
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
|
|
72
86
|
/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */
|
|
73
|
-
/** @typedef {import("../WebpackError")} WebpackError */
|
|
87
|
+
/** @typedef {import("../errors/WebpackError")} WebpackError */
|
|
74
88
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
75
89
|
/** @typedef {import("../util/Hash")} Hash */
|
|
76
90
|
/** @typedef {import("../util/concatenate").ScopeSet} ScopeSet */
|
|
77
91
|
/** @typedef {import("../util/concatenate").UsedNamesInScopeInfo} UsedNamesInScopeInfo */
|
|
78
92
|
|
|
93
|
+
// TODO remove these types when we will update `eslint-scope` to the latest version and import them from `eslint-scope`
|
|
94
|
+
/**
|
|
95
|
+
* @typedef {object} Scope
|
|
96
|
+
* @property {"block" | "catch" | "class" | "class-field-initializer" | "class-static-block" | "for" | "function" | "function-expression-name" | "global" | "module" | "switch" | "with" | "TDZ"} type
|
|
97
|
+
* @property {boolean} isStrict
|
|
98
|
+
* @property {Scope | null} upper
|
|
99
|
+
* @property {Scope[]} childScopes
|
|
100
|
+
* @property {Scope} variableScope
|
|
101
|
+
* @property {Node} block
|
|
102
|
+
* @property {Variable[]} variables
|
|
103
|
+
* @property {Map<string, Variable>} set
|
|
104
|
+
* @property {Reference[]} references
|
|
105
|
+
* @property {Reference[]} through
|
|
106
|
+
* @property {boolean} functionExpressionScope
|
|
107
|
+
* @property {{ variables: Variable[], set: Map<string, Variable> }=} implicit
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @typedef {
|
|
112
|
+
* | { type: "CatchClause", node: CatchClause, parent: null }
|
|
113
|
+
* | { type: "ClassName", node: ClassDeclaration | ClassExpression, parent: null }
|
|
114
|
+
* | { type: "FunctionName", node: FunctionDeclaration | FunctionExpression, parent: null }
|
|
115
|
+
* | { type: "ImplicitGlobalVariable", node: AssignmentExpression | ForInStatement | ForOfStatement, parent: null }
|
|
116
|
+
* | { type: "ImportBinding", node: ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier, parent: ImportDeclaration }
|
|
117
|
+
* | { type: "Parameter", node: FunctionDeclaration | FunctionExpression | ArrowFunctionExpression, parent: null }
|
|
118
|
+
* | { type: "TDZ", node: any, parent: null }
|
|
119
|
+
* | { type: "Variable", node: VariableDeclarator, parent: VariableDeclaration }
|
|
120
|
+
* } DefinitionType
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
/** @typedef {DefinitionType & { name: Identifier }} Definition */
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @typedef {object} Variable
|
|
127
|
+
* @property {string} name
|
|
128
|
+
* @property {Scope} scope
|
|
129
|
+
* @property {Identifier[]} identifiers
|
|
130
|
+
* @property {Reference[]} references
|
|
131
|
+
* @property {Definition[]} defs
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @typedef {object} Reference
|
|
136
|
+
* @property {Identifier} identifier
|
|
137
|
+
* @property {Scope} from
|
|
138
|
+
* @property {Variable | null} resolved
|
|
139
|
+
* @property {Node | null} writeExpr
|
|
140
|
+
* @property {boolean} init
|
|
141
|
+
* @property {() => boolean} isWrite
|
|
142
|
+
* @property {() => boolean} isRead
|
|
143
|
+
* @property {() => boolean} isWriteOnly
|
|
144
|
+
* @property {() => boolean} isReadOnly
|
|
145
|
+
* @property {() => boolean} isReadWrite
|
|
146
|
+
*/
|
|
147
|
+
|
|
79
148
|
/** @type {WeakMap<ChunkGraph, WeakMap<Chunk, boolean>>} */
|
|
80
149
|
const chunkHasJsCache = new WeakMap();
|
|
81
150
|
|
|
82
151
|
/**
|
|
152
|
+
* Returns true, when a JS file is needed for this chunk.
|
|
83
153
|
* @param {Chunk} chunk a chunk
|
|
84
154
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
85
155
|
* @returns {boolean} true, when a JS file is needed for this chunk
|
|
@@ -99,6 +169,7 @@ const _chunkHasJs = (chunk, chunkGraph) => {
|
|
|
99
169
|
};
|
|
100
170
|
|
|
101
171
|
/**
|
|
172
|
+
* Returns true, when a JS file is needed for this chunk.
|
|
102
173
|
* @param {Chunk} chunk a chunk
|
|
103
174
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
104
175
|
* @returns {boolean} true, when a JS file is needed for this chunk
|
|
@@ -121,6 +192,7 @@ const chunkHasJs = (chunk, chunkGraph) => {
|
|
|
121
192
|
};
|
|
122
193
|
|
|
123
194
|
/**
|
|
195
|
+
* Chunk has runtime or js.
|
|
124
196
|
* @param {Chunk} chunk a chunk
|
|
125
197
|
* @param {ChunkGraph} chunkGraph the chunk graph
|
|
126
198
|
* @returns {boolean} true, when a JS file is needed for this chunk
|
|
@@ -148,6 +220,7 @@ const chunkHasRuntimeOrJs = (chunk, chunkGraph) => {
|
|
|
148
220
|
};
|
|
149
221
|
|
|
150
222
|
/**
|
|
223
|
+
* Print generated code for stack.
|
|
151
224
|
* @param {Module} module a module
|
|
152
225
|
* @param {string} code the code
|
|
153
226
|
* @returns {string} generated code for the stack
|
|
@@ -158,6 +231,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
158
231
|
return `\n\nGenerated code for ${module.identifier()}\n${lines
|
|
159
232
|
.map(
|
|
160
233
|
/**
|
|
234
|
+
* Handles the callback logic for this hook.
|
|
161
235
|
* @param {string} line the line
|
|
162
236
|
* @param {number} i the index
|
|
163
237
|
* @param {string[]} _lines the lines
|
|
@@ -172,6 +246,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
172
246
|
};
|
|
173
247
|
|
|
174
248
|
/**
|
|
249
|
+
* Defines the render context type used by this module.
|
|
175
250
|
* @typedef {object} RenderContext
|
|
176
251
|
* @property {Chunk} chunk the chunk
|
|
177
252
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -183,6 +258,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
183
258
|
*/
|
|
184
259
|
|
|
185
260
|
/**
|
|
261
|
+
* Defines the main render context type used by this module.
|
|
186
262
|
* @typedef {object} MainRenderContext
|
|
187
263
|
* @property {Chunk} chunk the chunk
|
|
188
264
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -195,6 +271,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
195
271
|
*/
|
|
196
272
|
|
|
197
273
|
/**
|
|
274
|
+
* Defines the chunk render context type used by this module.
|
|
198
275
|
* @typedef {object} ChunkRenderContext
|
|
199
276
|
* @property {Chunk} chunk the chunk
|
|
200
277
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -207,6 +284,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
207
284
|
*/
|
|
208
285
|
|
|
209
286
|
/**
|
|
287
|
+
* Defines the render bootstrap context type used by this module.
|
|
210
288
|
* @typedef {object} RenderBootstrapContext
|
|
211
289
|
* @property {Chunk} chunk the chunk
|
|
212
290
|
* @property {CodeGenerationResults} codeGenerationResults results of code generation
|
|
@@ -217,6 +295,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
217
295
|
*/
|
|
218
296
|
|
|
219
297
|
/**
|
|
298
|
+
* Defines the startup render context type used by this module.
|
|
220
299
|
* @typedef {object} StartupRenderContext
|
|
221
300
|
* @property {Chunk} chunk the chunk
|
|
222
301
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -231,6 +310,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
231
310
|
*/
|
|
232
311
|
|
|
233
312
|
/**
|
|
313
|
+
* Defines the module render context type used by this module.
|
|
234
314
|
* @typedef {object} ModuleRenderContext
|
|
235
315
|
* @property {Chunk} chunk the chunk
|
|
236
316
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
@@ -246,6 +326,7 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
246
326
|
*/
|
|
247
327
|
|
|
248
328
|
/**
|
|
329
|
+
* Defines the compilation hooks type used by this module.
|
|
249
330
|
* @typedef {object} CompilationHooks
|
|
250
331
|
* @property {SyncWaterfallHook<[Source, Module, ModuleRenderContext]>} renderModuleContent
|
|
251
332
|
* @property {SyncWaterfallHook<[Source, Module, ModuleRenderContext]>} renderModuleContainer
|
|
@@ -272,6 +353,7 @@ const PLUGIN_NAME = "JavascriptModulesPlugin";
|
|
|
272
353
|
|
|
273
354
|
class JavascriptModulesPlugin {
|
|
274
355
|
/**
|
|
356
|
+
* Returns the attached hooks.
|
|
275
357
|
* @param {Compilation} compilation the compilation
|
|
276
358
|
* @returns {CompilationHooks} the attached hooks
|
|
277
359
|
*/
|
|
@@ -327,7 +409,7 @@ class JavascriptModulesPlugin {
|
|
|
327
409
|
}
|
|
328
410
|
|
|
329
411
|
/**
|
|
330
|
-
*
|
|
412
|
+
* Applies the plugin by registering its hooks on the compiler.
|
|
331
413
|
* @param {Compiler} compiler the compiler instance
|
|
332
414
|
* @returns {void}
|
|
333
415
|
*/
|
|
@@ -347,16 +429,21 @@ class JavascriptModulesPlugin {
|
|
|
347
429
|
.tap(PLUGIN_NAME, (options) => {
|
|
348
430
|
switch (type) {
|
|
349
431
|
case JAVASCRIPT_MODULE_TYPE_AUTO: {
|
|
350
|
-
return new JavascriptParser("auto", {
|
|
432
|
+
return new JavascriptParser("auto", {
|
|
433
|
+
parse: options.parse,
|
|
434
|
+
typescript: options.typescript
|
|
435
|
+
});
|
|
351
436
|
}
|
|
352
437
|
case JAVASCRIPT_MODULE_TYPE_DYNAMIC: {
|
|
353
438
|
return new JavascriptParser("script", {
|
|
354
|
-
parse: options.parse
|
|
439
|
+
parse: options.parse,
|
|
440
|
+
typescript: options.typescript
|
|
355
441
|
});
|
|
356
442
|
}
|
|
357
443
|
case JAVASCRIPT_MODULE_TYPE_ESM: {
|
|
358
444
|
return new JavascriptParser("module", {
|
|
359
|
-
parse: options.parse
|
|
445
|
+
parse: options.parse,
|
|
446
|
+
typescript: options.typescript
|
|
360
447
|
});
|
|
361
448
|
}
|
|
362
449
|
}
|
|
@@ -642,6 +729,7 @@ class JavascriptModulesPlugin {
|
|
|
642
729
|
}
|
|
643
730
|
|
|
644
731
|
/**
|
|
732
|
+
* Gets chunk filename template.
|
|
645
733
|
* @param {Chunk} chunk chunk
|
|
646
734
|
* @param {OutputOptions} outputOptions output options
|
|
647
735
|
* @returns {TemplatePath} used filename template
|
|
@@ -658,6 +746,7 @@ class JavascriptModulesPlugin {
|
|
|
658
746
|
}
|
|
659
747
|
|
|
660
748
|
/**
|
|
749
|
+
* Renders the newly generated source from rendering.
|
|
661
750
|
* @param {Module} module the rendered module
|
|
662
751
|
* @param {ModuleRenderContext} renderContext options object
|
|
663
752
|
* @param {CompilationHooks} hooks hooks
|
|
@@ -797,6 +886,7 @@ class JavascriptModulesPlugin {
|
|
|
797
886
|
}
|
|
798
887
|
|
|
799
888
|
/**
|
|
889
|
+
* Renders the rendered source.
|
|
800
890
|
* @param {RenderContext} renderContext the render context
|
|
801
891
|
* @param {CompilationHooks} hooks hooks
|
|
802
892
|
* @returns {Source} the rendered source
|
|
@@ -875,6 +965,7 @@ class JavascriptModulesPlugin {
|
|
|
875
965
|
}
|
|
876
966
|
|
|
877
967
|
/**
|
|
968
|
+
* Renders the newly generated source from rendering.
|
|
878
969
|
* @param {MainRenderContext} renderContext options object
|
|
879
970
|
* @param {CompilationHooks} hooks hooks
|
|
880
971
|
* @param {Compilation} compilation the compilation
|
|
@@ -1240,6 +1331,7 @@ class JavascriptModulesPlugin {
|
|
|
1240
1331
|
}
|
|
1241
1332
|
|
|
1242
1333
|
/**
|
|
1334
|
+
* Updates hash with bootstrap.
|
|
1243
1335
|
* @param {Hash} hash the hash to be updated
|
|
1244
1336
|
* @param {RenderBootstrapContext} renderContext options object
|
|
1245
1337
|
* @param {CompilationHooks} hooks hooks
|
|
@@ -1260,6 +1352,7 @@ class JavascriptModulesPlugin {
|
|
|
1260
1352
|
}
|
|
1261
1353
|
|
|
1262
1354
|
/**
|
|
1355
|
+
* Renders the generated source of the bootstrap code.
|
|
1263
1356
|
* @param {RenderBootstrapContext} renderContext options object
|
|
1264
1357
|
* @param {CompilationHooks} hooks hooks
|
|
1265
1358
|
* @returns {Bootstrap} the generated source of the bootstrap code
|
|
@@ -1334,6 +1427,13 @@ class JavascriptModulesPlugin {
|
|
|
1334
1427
|
// is evaluated.
|
|
1335
1428
|
buf.push("// The deferred module cache");
|
|
1336
1429
|
buf.push("var __webpack_module_deferred_exports__ = {};");
|
|
1430
|
+
// Per the TC39 import-defer spec, every defer-import call site for
|
|
1431
|
+
// the same module must yield the same Deferred Module Namespace
|
|
1432
|
+
// Exotic Object (and a distinct one from any eager namespace).
|
|
1433
|
+
// Cache the deferred namespace proxy here so calls from different
|
|
1434
|
+
// files share identity.
|
|
1435
|
+
buf.push("// The deferred namespace cache");
|
|
1436
|
+
buf.push("var __webpack_module_deferred_namespace_cache__ = {};");
|
|
1337
1437
|
buf.push("");
|
|
1338
1438
|
}
|
|
1339
1439
|
|
|
@@ -1605,6 +1705,7 @@ class JavascriptModulesPlugin {
|
|
|
1605
1705
|
}
|
|
1606
1706
|
|
|
1607
1707
|
/**
|
|
1708
|
+
* Renders the generated source of the require function.
|
|
1608
1709
|
* @param {RenderBootstrapContext} renderContext options object
|
|
1609
1710
|
* @param {CompilationHooks} hooks hooks
|
|
1610
1711
|
* @returns {string} the generated source of the require function
|
|
@@ -1618,6 +1719,7 @@ class JavascriptModulesPlugin {
|
|
|
1618
1719
|
const runtimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
|
|
1619
1720
|
|
|
1620
1721
|
/**
|
|
1722
|
+
* Renders missing module error.
|
|
1621
1723
|
* @param {string} condition guard expression
|
|
1622
1724
|
* @returns {string[]} source
|
|
1623
1725
|
*/
|
|
@@ -1742,6 +1844,7 @@ class JavascriptModulesPlugin {
|
|
|
1742
1844
|
}
|
|
1743
1845
|
|
|
1744
1846
|
/**
|
|
1847
|
+
* Get renamed inline module.
|
|
1745
1848
|
* @param {Compilation} compilation compilation
|
|
1746
1849
|
* @param {Module[]} allModules allModules
|
|
1747
1850
|
* @param {MainRenderContext} renderContext renderContext
|