webpack 5.111.1 → 5.112.1
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 +1 -1
- package/bin/webpack.js +13 -7
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +373 -163
- package/lib/Compiler.js +31 -44
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +21 -13
- package/lib/asset/AssetBytesParser.js +12 -10
- package/lib/asset/AssetGenerator.js +71 -69
- package/lib/asset/AssetModule.js +13 -2
- package/lib/asset/AssetModulesPlugin.js +10 -12
- package/lib/asset/AssetParser.js +10 -10
- package/lib/asset/AssetSourceGenerator.js +23 -15
- package/lib/asset/AssetSourceParser.js +12 -10
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +17 -12
- package/lib/asset/WebManifestParser.js +8 -8
- package/lib/async-modules/AsyncModuleHelpers.js +12 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +9 -3
- package/lib/async-modules/isGeneratorLowered.js +3 -3
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +2 -19
- package/lib/{Cache.js → cache/Cache.js} +1 -1
- package/lib/{CacheFacade.js → cache/CacheFacade.js} +6 -6
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +13 -19
- package/lib/cache/ResolverCachePlugin.js +65 -11
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/{OptionsApply.js → config/OptionsApply.js} +3 -3
- package/lib/{PlatformPlugin.js → config/PlatformPlugin.js} +2 -2
- package/lib/{WebpackOptionsApply.js → config/WebpackOptionsApply.js} +209 -212
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +1 -1
- package/lib/{cli.js → config/cli.js} +14 -164
- package/lib/config/defaults.js +166 -59
- package/lib/config/getClaimedAssetTypes.js +22 -14
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +11 -1
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +37 -26
- package/lib/context/ContextModuleFactory.js +14 -11
- package/lib/context/ContextReplacementPlugin.js +6 -12
- package/lib/css/CssGenerator.js +78 -68
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +37 -29
- package/lib/css/CssModulesPlugin.js +129 -45
- package/lib/css/CssParser.js +714 -322
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/{util → css}/conventions.js +1 -1
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6990 -5125
- package/lib/css/syntax-parser.js +20734 -0
- package/lib/css/syntax-printer.js +6092 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +106 -51
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +416 -55
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +19 -15
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +6 -4
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/ConstDependency.js +3 -120
- package/lib/dependencies/ContextElementDependency.js +5 -172
- package/lib/dependencies/NullDependency.js +3 -37
- package/lib/dependencies/{AMDDefineDependency.js → amd/AMDDefineDependency.js} +12 -11
- package/lib/dependencies/{AMDDefineDependencyParserPlugin.js → amd/AMDDefineDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{AMDPlugin.js → amd/AMDPlugin.js} +11 -11
- package/lib/dependencies/{AMDRequireArrayDependency.js → amd/AMDRequireArrayDependency.js} +15 -13
- package/lib/dependencies/{AMDRequireContextDependency.js → amd/AMDRequireContextDependency.js} +11 -10
- package/lib/dependencies/{AMDRequireDependenciesBlock.js → amd/AMDRequireDependenciesBlock.js} +7 -6
- package/lib/dependencies/{AMDRequireDependenciesBlockParserPlugin.js → amd/AMDRequireDependenciesBlockParserPlugin.js} +14 -11
- package/lib/dependencies/{AMDRequireDependency.js → amd/AMDRequireDependency.js} +13 -12
- package/lib/dependencies/{AMDRequireItemDependency.js → amd/AMDRequireItemDependency.js} +8 -7
- package/lib/dependencies/{AMDRuntimeModules.js → amd/AMDRuntimeModules.js} +3 -3
- package/lib/dependencies/{LocalModule.js → amd/LocalModule.js} +8 -4
- package/lib/dependencies/{LocalModuleDependency.js → amd/LocalModuleDependency.js} +17 -10
- package/lib/dependencies/{LocalModulesHelpers.js → amd/LocalModulesHelpers.js} +1 -1
- package/lib/dependencies/{RequireJsStuffPlugin.js → amd/RequireJsStuffPlugin.js} +9 -9
- package/lib/dependencies/{UnsupportedDependency.js → amd/UnsupportedDependency.js} +11 -10
- package/lib/dependencies/{CommonJsDependencyHelpers.js → commonjs/CommonJsDependencyHelpers.js} +8 -9
- package/lib/dependencies/{CommonJsExportRequireDependency.js → commonjs/CommonJsExportRequireDependency.js} +166 -36
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +154 -92
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +36 -33
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +17 -16
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +48 -39
- package/lib/dependencies/{CommonJsRequireContextDependency.js → commonjs/CommonJsRequireContextDependency.js} +15 -14
- package/lib/dependencies/{CommonJsRequireDependency.js → commonjs/CommonJsRequireDependency.js} +33 -25
- package/lib/dependencies/{CommonJsSelfReferenceDependency.js → commonjs/CommonJsSelfReferenceDependency.js} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +9 -6
- package/lib/dependencies/{RequireEnsureDependency.js → commonjs/RequireEnsureDependency.js} +13 -12
- package/lib/dependencies/{RequireEnsureItemDependency.js → commonjs/RequireEnsureItemDependency.js} +7 -6
- package/lib/dependencies/{RequireEnsurePlugin.js → commonjs/RequireEnsurePlugin.js} +8 -8
- package/lib/dependencies/{RequireHeaderDependency.js → commonjs/RequireHeaderDependency.js} +14 -13
- package/lib/dependencies/{RequireIncludeDependency.js → commonjs/RequireIncludeDependency.js} +13 -12
- package/lib/dependencies/{RequireIncludeDependencyParserPlugin.js → commonjs/RequireIncludeDependencyParserPlugin.js} +3 -27
- package/lib/dependencies/{RequireIncludePlugin.js → commonjs/RequireIncludePlugin.js} +4 -4
- package/lib/dependencies/{RequireResolveContextDependency.js → commonjs/RequireResolveContextDependency.js} +11 -10
- package/lib/dependencies/{RequireResolveDependency.js → commonjs/RequireResolveDependency.js} +12 -11
- package/lib/dependencies/{RequireResolveHeaderDependency.js → commonjs/RequireResolveHeaderDependency.js} +13 -12
- package/lib/dependencies/commonjs/TopLevelThisParserPlugin.js +59 -0
- package/lib/dependencies/{ContextDependency.js → context/ContextDependency.js} +15 -14
- package/lib/dependencies/{ContextDependencyHelpers.js → context/ContextDependencyHelpers.js} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +10 -11
- package/lib/dependencies/{ImportMetaContextPlugin.js → context/ImportMetaContextPlugin.js} +5 -5
- package/lib/dependencies/{ImportMetaGlobDependency.js → context/ImportMetaGlobDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaGlobDependencyParserPlugin.js → context/ImportMetaGlobDependencyParserPlugin.js} +7 -10
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +17 -19
- package/lib/dependencies/{RequireContextDependency.js → context/RequireContextDependency.js} +7 -6
- package/lib/dependencies/{RequireContextDependencyParserPlugin.js → context/RequireContextDependencyParserPlugin.js} +2 -2
- package/lib/dependencies/{RequireContextPlugin.js → context/RequireContextPlugin.js} +5 -5
- package/lib/dependencies/{CachedConstDependency.js → core/CachedConstDependency.js} +21 -17
- package/lib/dependencies/core/ConstDependency.js +131 -0
- package/lib/dependencies/{ImportPhase.js → core/ImportPhase.js} +5 -4
- package/lib/dependencies/{ModuleDependency.js → core/ModuleDependency.js} +10 -7
- package/lib/dependencies/{ModuleDependencyTemplateAsId.js → core/ModuleDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ModuleDependencyTemplateAsRequireId.js → core/ModuleDependencyTemplateAsRequireId.js} +2 -2
- package/lib/dependencies/{ModuleInitFragmentDependency.js → core/ModuleInitFragmentDependency.js} +10 -9
- package/lib/dependencies/core/NullDependency.js +44 -0
- package/lib/dependencies/{RuntimeRequirementsDependency.js → core/RuntimeRequirementsDependency.js} +10 -9
- package/lib/dependencies/{StaticExportsDependency.js → core/StaticExportsDependency.js} +15 -8
- package/lib/dependencies/{CssIcssExportDependency.js → css/CssIcssExportDependency.js} +375 -99
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +24 -19
- package/lib/dependencies/{CssIcssSymbolDependency.js → css/CssIcssSymbolDependency.js} +13 -12
- package/lib/dependencies/{CssImportDependency.js → css/CssImportDependency.js} +15 -11
- package/lib/dependencies/{CssUrlDependency.js → css/CssUrlDependency.js} +25 -22
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +20 -20
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +146 -133
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +78 -37
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -12
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +86 -68
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +104 -100
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +36 -51
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +98 -60
- package/lib/dependencies/esm/ESMLiveExportDependency.js +311 -0
- package/lib/dependencies/esm/ESMLiveExportParserPlugin.js +862 -0
- package/lib/dependencies/esm/ESMModulesPlugin.js +205 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -18
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +5 -7
- package/lib/{util → dependencies/helpers}/chainedImports.js +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +52 -151
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -15
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -18
- package/lib/dependencies/{HtmlSourceDependency.js → html/HtmlSourceDependency.js} +23 -16
- package/lib/dependencies/{ImportContextDependency.js → import/ImportContextDependency.js} +24 -10
- package/lib/dependencies/{ImportDependency.js → import/ImportDependency.js} +26 -18
- package/lib/dependencies/{ImportEagerDependency.js → import/ImportEagerDependency.js} +18 -10
- package/lib/dependencies/{ImportParserPlugin.js → import/ImportParserPlugin.js} +22 -25
- package/lib/dependencies/{ImportPlugin.js → import/ImportPlugin.js} +4 -4
- package/lib/dependencies/{ImportWeakDependency.js → import/ImportWeakDependency.js} +18 -10
- package/lib/dependencies/{importOptionsCheck.js → import/importOptionsCheck.js} +2 -2
- package/lib/dependencies/{BuildTimeConstDependency.js → import-meta/BuildTimeConstDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaMainDependency.js → import-meta/ImportMetaMainDependency.js} +12 -11
- package/lib/dependencies/{ImportMetaPlugin.js → import-meta/ImportMetaPlugin.js} +122 -103
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +17 -19
- package/lib/dependencies/{URLPlugin.js → url/URLPlugin.js} +6 -7
- package/lib/dependencies/{WebAssemblyExportImportedDependency.js → wasm/WebAssemblyExportImportedDependency.js} +18 -11
- package/lib/dependencies/{WebAssemblyImportDependency.js → wasm/WebAssemblyImportDependency.js} +19 -12
- package/lib/dependencies/{CreateScriptUrlDependency.js → worker/CreateScriptUrlDependency.js} +12 -11
- package/lib/dependencies/{WorkerAndWorkletPlugin.js → worker/WorkerAndWorkletPlugin.js} +82 -53
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +155 -27
- package/lib/{util → devtool}/generateDebugId.js +1 -1
- package/lib/{IgnoreWarningsPlugin.js → diagnostics/IgnoreWarningsPlugin.js} +2 -2
- package/lib/{NoEmitOnErrorsPlugin.js → diagnostics/NoEmitOnErrorsPlugin.js} +1 -1
- package/lib/diagnostics/WarnCaseSensitiveModulesPlugin.js +64 -0
- package/lib/{WarnDeprecatedOptionPlugin.js → diagnostics/WarnDeprecatedOptionPlugin.js} +2 -22
- package/lib/diagnostics/WarnNoModeSetPlugin.js +27 -0
- package/lib/dll/DelegatedModule.js +23 -21
- package/lib/dll/DelegatedModuleFactoryPlugin.js +2 -2
- package/lib/dll/DelegatedPlugin.js +1 -1
- package/lib/{dependencies → dll}/DelegatedSourceDependency.js +5 -4
- package/lib/{dependencies → dll}/DllEntryDependency.js +6 -5
- package/lib/dll/DllEntryPlugin.js +3 -3
- package/lib/dll/DllModule.js +14 -10
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +103 -30
- package/lib/dll/LibManifestPlugin.js +9 -7
- package/lib/electron/ElectronTargetPlugin.js +2 -2
- package/lib/{DynamicEntryPlugin.js → entry/DynamicEntryPlugin.js} +3 -3
- package/lib/{dependencies → entry}/EntryDependency.js +11 -2
- package/lib/{EntryOptionPlugin.js → entry/EntryOptionPlugin.js} +6 -6
- package/lib/entry/EntryPlugin.js +75 -0
- package/lib/errors/AbstractMethodError.js +1 -1
- package/lib/{performance → errors}/AssetsOverSizeLimitWarning.js +2 -2
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{WarnCaseSensitiveModulesPlugin.js → errors/CaseSensitiveModulesWarning.js} +4 -56
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingEntryExportsWarning.js +38 -0
- package/lib/{dependencies → errors}/CriticalDependencyWarning.js +4 -3
- package/lib/errors/DeprecatedOptionWarning.js +30 -0
- package/lib/errors/DllManifestError.js +26 -0
- package/lib/{performance → errors}/DuplicatePackagesWarning.js +6 -6
- package/lib/{dependencies/HarmonyLinkingError.js → errors/ESMLinkingError.js} +4 -4
- package/lib/{performance → errors}/EntrypointsOverSizeLimitWarning.js +2 -2
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/{ErrorHelpers.js → errors/ErrorHelpers.js} +9 -6
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +6 -5
- package/lib/errors/IgnoreErrorModuleFactory.js +3 -3
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/JSONParseError.js +4 -4
- package/lib/{optimize → errors}/MinMaxSizeWarning.js +1 -1
- package/lib/errors/ModuleBuildError.js +1 -1
- package/lib/errors/ModuleDependencyError.js +2 -2
- package/lib/errors/ModuleDependencyWarning.js +2 -2
- package/lib/errors/ModuleError.js +1 -1
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +3 -3
- package/lib/errors/ModuleParseError.js +1 -1
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/ModuleWarning.js +1 -1
- package/lib/{performance → errors}/NoAsyncChunksWarning.js +1 -1
- package/lib/{WarnNoModeSetPlugin.js → errors/NoModeWarning.js} +2 -19
- package/lib/errors/NodeStuffInWebError.js +7 -2
- package/lib/errors/PathVariableError.js +31 -0
- package/lib/errors/RequireIncludeDeprecationWarning.js +40 -0
- package/lib/{performance → errors}/RuntimeInLargeChunkWarning.js +1 -1
- package/lib/errors/RuntimeModuleGenerationError.js +51 -0
- package/lib/errors/SSRManifestAutoPublicPathWarning.js +24 -0
- package/lib/errors/SystemImportDeprecationWarning.js +43 -0
- package/lib/errors/UnmergeableEntryExportsError.js +34 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/{wasm-sync → errors}/UnsupportedWebAssemblyFeatureError.js +1 -1
- package/lib/{wasm-sync → errors}/WebAssemblyInInitialChunkError.js +7 -5
- package/lib/errors/WebpackError.js +13 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +55 -20
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +90 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +42 -41
- package/lib/externals/ExternalsPlugin.js +99 -0
- package/lib/fs/FileSystemInfo.js +4642 -0
- package/lib/{util → fs}/fs.js +22 -9
- package/lib/{AsyncDependenciesBlock.js → graph/AsyncDependenciesBlock.js} +27 -4
- package/lib/graph/Chunk.js +985 -0
- package/lib/{ChunkGraph.js → graph/ChunkGraph.js} +192 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +634 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +131 -83
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +44 -33
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +169 -76
- package/lib/{util → graph}/findGraphRoots.js +15 -9
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +12 -11
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +51 -57
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +25 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +32 -28
- package/lib/html/HtmlGenerator.js +132 -60
- package/lib/html/HtmlModule.js +16 -2
- package/lib/html/HtmlModulesPlugin.js +184 -87
- package/lib/html/HtmlParser.js +511 -160
- package/lib/html/builtinEmbeddedRenderer.js +70 -25
- package/lib/html/data.js +44 -22
- package/lib/html/htmlMinify.js +114 -41
- package/lib/html/syntax-parser.js +15795 -0
- package/lib/html/syntax-printer.js +1033 -0
- package/lib/html/syntax.js +37 -13952
- package/lib/html/xmlMinify.js +70 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +32 -5
- package/lib/ids/IdHelpers.js +4 -4
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -5
- package/lib/ids/OccurrenceModuleIdsPlugin.js +6 -5
- package/lib/{RecordIdsPlugin.js → ids/RecordIdsPlugin.js} +5 -5
- package/lib/ids/SyncModuleIdsPlugin.js +3 -3
- package/lib/{util → ids}/numberHash.js +1 -1
- package/lib/index.js +312 -105
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +31 -37
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +9 -9
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +5 -13
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +75 -8
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +32 -27
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +8 -20
- package/lib/javascript/JavascriptModule.js +14 -3
- package/lib/javascript/JavascriptModulesPlugin.js +441 -214
- package/lib/javascript/JavascriptParser.js +318 -144
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3924 -13
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +13 -19
- package/lib/{dependencies → javascript}/WebpackIsIncludedDependency.js +10 -9
- package/lib/{WebpackIsIncludedPlugin.js → javascript/WebpackIsIncludedPlugin.js} +8 -8
- package/lib/javascript/data.js +533 -122
- package/lib/javascript/jsMinify.js +272 -0
- package/lib/javascript/regexp.js +67 -32
- package/lib/javascript/syntax-parser.js +19169 -0
- package/lib/javascript/syntax-printer-data.js +1099 -0
- package/lib/javascript/syntax-printer.js +53878 -0
- package/lib/javascript/syntax.js +20 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +24 -16
- package/lib/json/JsonModule.js +13 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +11 -10
- package/lib/json/jsonMinify.js +69 -0
- package/lib/library/AbstractLibraryPlugin.js +28 -15
- package/lib/library/AmdLibraryPlugin.js +4 -4
- package/lib/library/AssignLibraryPlugin.js +28 -12
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +2 -2
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +557 -187
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +94 -46
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- package/lib/loaders/loadLoader.js +16 -10
- package/lib/logging/Logger.js +7 -9
- package/lib/logging/ProgressPlugin.js +957 -0
- package/lib/{CodeGenerationResults.js → module/CodeGenerationResults.js} +7 -7
- package/lib/{Generator.js → module/Generator.js} +33 -23
- package/lib/{Module.js → module/Module.js} +121 -53
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2350 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +64 -71
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +12 -5
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +71 -20
- package/lib/{util → module}/findCaseMismatch.js +4 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +7 -6
- package/lib/{dependencies → node}/ExternalModuleInitFragmentDependency.js +14 -9
- package/lib/node/NodeEnvironmentPlugin.js +11 -1
- package/lib/{NodeStuffPlugin.js → node/NodeStuffPlugin.js} +17 -17
- package/lib/node/NodeTargetPlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +58 -6
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +9 -11
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +6 -7
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +14 -14
- package/lib/optimize/ConcatenatedModule.js +231 -220
- package/lib/{ConcatenationScope.js → optimize/ConcatenationScope.js} +39 -6
- package/lib/optimize/ConstExportsPlugin.js +7 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/{FlagAllModulesAsUsedPlugin.js → optimize/FlagAllModulesAsUsedPlugin.js} +3 -3
- package/lib/{FlagDependencyExportsPlugin.js → optimize/FlagDependencyExportsPlugin.js} +23 -28
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +44 -19
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +12 -7
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +620 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +28 -22
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +18 -13
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +24 -38
- package/lib/optimize/SplitChunksPlugin.js +719 -174
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +69 -25
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +144 -70
- package/lib/{ManifestPlugin.js → output/ManifestPlugin.js} +91 -17
- package/lib/output/SSRManifestPlugin.js +349 -0
- package/lib/performance/AnalyzableBailoutsPlugin.js +1 -1
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +1 -1
- package/lib/performance/BroadContextsPlugin.js +4 -4
- package/lib/performance/CacheEffectivenessPlugin.js +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +4 -6
- package/lib/performance/HotspotsPlugin.js +39 -14
- package/lib/performance/LargeModulesPlugin.js +2 -3
- package/lib/performance/LegacyJavascriptPlugin.js +1 -2
- package/lib/performance/MissingSideEffectsPlugin.js +2 -3
- package/lib/performance/MissingSourceMapsPlugin.js +5 -6
- package/lib/performance/PureAnnotationsPlugin.js +19 -13
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +11 -12
- package/lib/performance/TopLevelThisPlugin.js +22 -13
- package/lib/performance/UnsplitVendorsPlugin.js +1 -2
- package/lib/performance/UnusedAliasesPlugin.js +6 -7
- package/lib/performance/UnusedAssetsPlugin.js +5 -5
- package/lib/performance/UnusedDefinesPlugin.js +2 -2
- package/lib/performance/UnusedExternalsPlugin.js +3 -4
- package/lib/performance/UnusedFederationPlugin.js +2 -4
- package/lib/performance/UnusedModulesPlugin.js +5 -4
- package/lib/performance/getModuleSize.js +1 -1
- package/lib/performance/hasOnlyUnusedExports.js +4 -4
- package/lib/performance/isOnlyReexported.js +7 -6
- package/lib/{AutomaticPrefetchPlugin.js → prefetch/AutomaticPrefetchPlugin.js} +4 -5
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +66 -45
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +50 -17
- package/lib/{IgnorePlugin.js → resolve/IgnorePlugin.js} +30 -13
- package/lib/{NormalModuleReplacementPlugin.js → resolve/NormalModuleReplacementPlugin.js} +4 -4
- package/lib/{ResolverFactory.js → resolve/ResolverFactory.js} +18 -5
- package/lib/resolve/getResolveOptionsKey.js +59 -0
- package/lib/rules/BasicEffectRulePlugin.js +1 -1
- package/lib/rules/RuleSetCompiler.js +42 -51
- package/lib/rules/UseEffectRulePlugin.js +1 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +14 -5
- package/lib/runtime/AutoPublicPathRuntimeModule.js +5 -5
- package/lib/runtime/BaseUriRuntimeModule.js +3 -3
- package/lib/runtime/ChunkNameRuntimeModule.js +2 -2
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -2
- package/lib/runtime/CompatRuntimeModule.js +4 -4
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +2 -2
- package/lib/runtime/ConstructRequireRuntimeModule.js +2 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptRuntimeModule.js +2 -2
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -6
- package/lib/runtime/EnsureChunkRuntimeModule.js +4 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +7 -11
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +24 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +50 -50
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +2 -2
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +2 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +5 -5
- package/lib/runtime/StartupEntrypointRuntimeModule.js +3 -3
- package/lib/runtime/SystemContextRuntimeModule.js +2 -2
- package/lib/runtime/ToBinaryRuntimeModule.js +3 -3
- package/lib/runtime/WorkerRuntimeModule.js +1 -1
- package/lib/runtime/baseUri.js +1 -1
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +68 -13
- package/lib/schemes/VirtualUrlPlugin.js +52 -16
- package/lib/serialization/AggregateErrorSerializer.js +4 -4
- package/lib/serialization/BinaryMiddleware.js +4 -1
- package/lib/serialization/ErrorObjectSerializer.js +2 -5
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +62 -29
- package/lib/serialization/PlainObjectSerializer.js +3 -7
- package/lib/serialization/Serializer.js +21 -11
- package/lib/serialization/SerializerMiddleware.js +10 -8
- package/lib/serialization/SingleItemMiddleware.js +4 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +9 -1
- package/lib/sharing/ConsumeSharedModule.js +18 -14
- package/lib/sharing/ConsumeSharedPlugin.js +148 -42
- package/lib/sharing/ConsumeSharedRuntimeModule.js +8 -8
- package/lib/sharing/ProvideForSharedDependency.js +9 -1
- package/lib/sharing/ProvideSharedDependency.js +1 -1
- package/lib/sharing/ProvideSharedModule.js +11 -9
- package/lib/sharing/ProvideSharedModuleFactory.js +2 -2
- package/lib/sharing/ProvideSharedPlugin.js +111 -20
- package/lib/sharing/SharePlugin.js +102 -9
- package/lib/sharing/ShareRuntimeModule.js +6 -6
- package/lib/sharing/resolveMatchedConfigs.js +1 -1
- package/lib/{util → sharing}/semver.js +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +57 -54
- package/lib/stats/DefaultStatsPresetPlugin.js +3 -7
- package/lib/stats/DefaultStatsPrinterPlugin.js +15 -14
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +208 -37
- package/lib/stats/StatsPrinter.js +126 -13
- package/lib/{ChunkTemplate.js → template/ChunkTemplate.js} +7 -7
- package/lib/{ConditionalInitFragment.js → template/ConditionalInitFragment.js} +3 -3
- package/lib/template/DependencyTemplate.js +77 -0
- package/lib/{DependencyTemplates.js → template/DependencyTemplates.js} +9 -4
- package/lib/template/InitFragment.js +223 -0
- package/lib/{MainTemplate.js → template/MainTemplate.js} +11 -11
- package/lib/{ModuleInfoHeaderPlugin.js → template/ModuleInfoHeaderPlugin.js} +30 -8
- package/lib/{ModuleTemplate.js → template/ModuleTemplate.js} +6 -6
- package/lib/{RuntimeTemplate.js → template/RuntimeTemplate.js} +158 -95
- package/lib/{Template.js → template/Template.js} +14 -12
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +439 -51
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +20 -16
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/cleverMerge.js +61 -33
- package/lib/util/comparators.js +19 -15
- package/lib/util/concatenate.js +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -15
- package/lib/util/deprecation.js +5 -4
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +198 -20
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +296 -102
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +28 -7
- package/lib/util/memoize.js +1 -1
- package/lib/util/parseJson.js +2 -2
- package/lib/util/preloadModuleType.js +5 -2
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/removeBOM.js +1 -1
- package/lib/util/runtime.js +1 -1
- package/lib/util/serialization.js +35 -28
- package/lib/util/source.js +2 -2
- package/lib/util/terminalColors.js +161 -0
- package/lib/{wasm-async → wasm}/AsyncWasmCompileRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmLoadingRuntimeModule.js +5 -5
- package/lib/{wasm-async → wasm}/AsyncWasmModule.js +19 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +17 -9
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +24 -15
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +14 -12
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +11 -13
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +18 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +22 -16
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +28 -21
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +15 -17
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +12 -18
- package/lib/web/FetchCompileWasmPlugin.js +8 -10
- package/lib/web/JsonpChunkLoadingPlugin.js +3 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +6 -6
- package/lib/web/JsonpTemplatePlugin.js +1 -1
- package/lib/webpack.js +27 -17
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -3
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +6 -6
- package/package.json +57 -36
- package/schemas/WebpackOptions.check.js +4 -3
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +295 -75
- package/schemas/plugins/BannerPlugin.check.js +4 -3
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +4 -3
- package/schemas/plugins/HtmlParserOptions.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.check.js +4 -3
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.check.js +4 -3
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +4 -3
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +4 -3
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +4 -3
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetParserOptions.check.js +4 -3
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.check.js +4 -3
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +4 -3
- package/schemas/plugins/container/ExternalsType.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +4 -3
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +4 -3
- package/schemas/plugins/css/CssModuleParserOptions.check.js +4 -3
- package/schemas/plugins/css/CssParserOptions.check.js +4 -3
- package/schemas/plugins/debug/ProfilingPlugin.check.js +4 -3
- package/schemas/plugins/define/DotenvPluginOptions.check.js +7 -0
- package/schemas/plugins/define/DotenvPluginOptions.json +3 -0
- package/schemas/plugins/dll/DllPlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.check.js +4 -3
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +4 -3
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +4 -3
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +4 -3
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +4 -3
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +4 -3
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +4 -3
- package/schemas/plugins/output/CleanOptions.check.js +7 -0
- package/schemas/plugins/output/CleanOptions.json +3 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +4 -3
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +4 -3
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +4 -3
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +20780 -14174
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/topologicalSort.js +0 -0
- /package/lib/dependencies/{getFunctionExpression.js → helpers/getFunctionExpression.js} +0 -0
- /package/lib/{util → externals}/extractUrlAndGlobal.js +0 -0
- /package/lib/{util → fs}/StackedCacheMap.js +0 -0
- /package/lib/{util → javascript}/StackedMap.js +0 -0
- /package/lib/{ModuleProfile.js → module/ModuleProfile.js} +0 -0
- /package/lib/{ModuleSourceTypeConstants.js → module/ModuleSourceTypeConstants.js} +0 -0
- /package/lib/{ModuleTypeConstants.js → module/ModuleTypeConstants.js} +0 -0
- /package/lib/{OptimizationStages.js → optimize/OptimizationStages.js} +0 -0
- /package/lib/{util → optimize}/Queue.js +0 -0
- /package/lib/{util → stats}/smartGrouping.js +0 -0
|
@@ -11,26 +11,19 @@ const {
|
|
|
11
11
|
ConcatSource,
|
|
12
12
|
ReplaceSource
|
|
13
13
|
} = require("webpack-sources");
|
|
14
|
-
const ConcatenationScope = require("../ConcatenationScope");
|
|
15
|
-
const Dependency = require("../Dependency");
|
|
16
|
-
const { UsageState } = require("../ExportsInfo");
|
|
17
|
-
const ExternalModule = require("../ExternalModule");
|
|
18
|
-
const Module = require("../Module");
|
|
19
|
-
const {
|
|
20
|
-
JAVASCRIPT_TYPE,
|
|
21
|
-
JAVASCRIPT_TYPES
|
|
22
|
-
} = require("../ModuleSourceTypeConstants");
|
|
23
|
-
const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants");
|
|
24
|
-
const NormalModule = require("../NormalModule");
|
|
25
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
26
|
-
const Template = require("../Template");
|
|
27
14
|
const { DEFAULTS } = require("../config/defaults");
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
15
|
+
const { ImportPhaseUtils } = require("../dependencies/core/ImportPhase");
|
|
16
|
+
const Dependency = require("../graph/Dependency");
|
|
17
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
18
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
32
19
|
const JavascriptParser = require("../javascript/JavascriptParser");
|
|
33
20
|
const analyzeScope = require("../javascript/ScopeAnalyzer");
|
|
21
|
+
const Module = require("../module/Module");
|
|
22
|
+
const {
|
|
23
|
+
JAVASCRIPT_TYPE,
|
|
24
|
+
JAVASCRIPT_TYPES
|
|
25
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
26
|
+
const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../module/ModuleTypeConstants");
|
|
34
27
|
const {
|
|
35
28
|
getDeferredCycleModuleIds,
|
|
36
29
|
getDeferredCycleModules,
|
|
@@ -38,6 +31,8 @@ const {
|
|
|
38
31
|
getMakeDeferredNamespaceModeFromExportsType,
|
|
39
32
|
getOptimizedDeferredModule
|
|
40
33
|
} = require("../runtime/MakeDeferredNamespaceObjectRuntime");
|
|
34
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
35
|
+
const Template = require("../template/Template");
|
|
41
36
|
const { equals } = require("../util/ArrayHelpers");
|
|
42
37
|
const LazySet = require("../util/LazySet");
|
|
43
38
|
const { getBuildDiagnostics } = require("../util/buildDiagnostics");
|
|
@@ -50,7 +45,6 @@ const {
|
|
|
50
45
|
addScopeSymbols,
|
|
51
46
|
findNewName,
|
|
52
47
|
getAllReferences,
|
|
53
|
-
getPathInAst,
|
|
54
48
|
getUsedNamesInScopeInfo,
|
|
55
49
|
isCommonJsConcatenationEnabled
|
|
56
50
|
} = require("../util/concatenate");
|
|
@@ -67,7 +61,8 @@ const {
|
|
|
67
61
|
runtimeConditionToString,
|
|
68
62
|
subtractRuntimeCondition
|
|
69
63
|
} = require("../util/runtime");
|
|
70
|
-
const
|
|
64
|
+
const ConcatenationScope = require("./ConcatenationScope");
|
|
65
|
+
const { isInlinedUsedName } = require("./InlineExports");
|
|
71
66
|
|
|
72
67
|
/** @import { Source } from "webpack-sources" */
|
|
73
68
|
/**
|
|
@@ -75,13 +70,13 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
75
70
|
* WebpackOptionsNormalizedWithDefaults as WebpackOptions
|
|
76
71
|
* } from "../config/defaults"
|
|
77
72
|
*/
|
|
78
|
-
/** @import ChunkGraph from "../ChunkGraph" */
|
|
79
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
73
|
+
/** @import ChunkGraph from "../graph/ChunkGraph" */
|
|
74
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
80
75
|
/** @import Compilation, { FileSystemDependencies } from "../Compilation" */
|
|
81
|
-
/** @import { UpdateHashContext } from "../Dependency" */
|
|
82
|
-
/** @import
|
|
83
|
-
/** @import DependencyTemplates from "../DependencyTemplates" */
|
|
84
|
-
/** @import { ExportInfo } from "../ExportsInfo" */
|
|
76
|
+
/** @import { UpdateHashContext } from "../graph/Dependency" */
|
|
77
|
+
/** @import ESMImportDependency from "../dependencies/esm/ESMImportDependency" */
|
|
78
|
+
/** @import DependencyTemplates from "../template/DependencyTemplates" */
|
|
79
|
+
/** @import { ExportInfo } from "../graph/ExportsInfo" */
|
|
85
80
|
/**
|
|
86
81
|
* @import {
|
|
87
82
|
* BuildCallback,
|
|
@@ -96,18 +91,19 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
96
91
|
* NameForCondition,
|
|
97
92
|
* ReadOnlyRuntimeRequirements,
|
|
98
93
|
* RuntimeRequirements,
|
|
99
|
-
* SourceTypes
|
|
100
|
-
*
|
|
94
|
+
* SourceTypes,
|
|
95
|
+
* ModuleKinds
|
|
96
|
+
* } from "../module/Module"
|
|
101
97
|
*/
|
|
102
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
98
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
103
99
|
/**
|
|
104
100
|
* @import ModuleGraphConnection, {
|
|
105
101
|
* ConnectionState
|
|
106
|
-
* } from "../ModuleGraphConnection"
|
|
102
|
+
* } from "../graph/ModuleGraphConnection"
|
|
107
103
|
*/
|
|
108
|
-
/** @import RequestShortener from "../RequestShortener" */
|
|
109
|
-
/** @import { ResolverWithOptions } from "../ResolverFactory" */
|
|
110
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
104
|
+
/** @import RequestShortener from "../util/RequestShortener" */
|
|
105
|
+
/** @import { ResolverWithOptions } from "../resolve/ResolverFactory" */
|
|
106
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
111
107
|
/**
|
|
112
108
|
* @import {
|
|
113
109
|
* JavascriptModuleBuildInfo,
|
|
@@ -130,12 +126,12 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
130
126
|
*/
|
|
131
127
|
/** @import Hash, { HashFunction } from "../util/Hash" */
|
|
132
128
|
/** @import { UsedNames, UsedNamesInScopeInfo } from "../util/concatenate" */
|
|
133
|
-
/** @import { InputFileSystem } from "../
|
|
129
|
+
/** @import { InputFileSystem } from "../fs/fs" */
|
|
134
130
|
/** @import { AssociatedObjectForCache } from "../util/identifier" */
|
|
135
131
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
136
132
|
/**
|
|
137
133
|
* @template T
|
|
138
|
-
* @typedef {import("../InitFragment")<T>} InitFragment
|
|
134
|
+
* @typedef {import("../template/InitFragment")<T>} InitFragment
|
|
139
135
|
*/
|
|
140
136
|
|
|
141
137
|
/**
|
|
@@ -206,7 +202,7 @@ const findIdentifiers = (source) => {
|
|
|
206
202
|
* @property {boolean} eager a wrapped body reached by an eager import edge, so its accessor is called at its own slot in evaluation order
|
|
207
203
|
* @property {Module} module
|
|
208
204
|
* @property {number} index
|
|
209
|
-
* @property {
|
|
205
|
+
* @property {Set<number> | undefined} shorthandIdentifierStarts where each shorthand property's identifier starts
|
|
210
206
|
* @property {Source | undefined} internalSource
|
|
211
207
|
* @property {ReplaceSource | undefined} source
|
|
212
208
|
* @property {InitFragment<ChunkRenderContext>[]=} chunkInitFragments
|
|
@@ -303,6 +299,7 @@ const compareNumbers = (a, b) => {
|
|
|
303
299
|
|
|
304
300
|
const bySourceOrder = createComparator("sourceOrder", compareNumbers);
|
|
305
301
|
const byRangeStart = createComparator("rangeStart", compareNumbers);
|
|
302
|
+
const byDependencyIndex = createComparator("dependencyIndex", compareNumbers);
|
|
306
303
|
|
|
307
304
|
/**
|
|
308
305
|
* @param {Iterable<string>} iterable iterable object
|
|
@@ -357,7 +354,7 @@ const subtractNonDeferAccess = (a, b) => a && !b;
|
|
|
357
354
|
* @returns {boolean} true, when the module renders wrapped
|
|
358
355
|
*/
|
|
359
356
|
const needWrapped = (module) =>
|
|
360
|
-
module
|
|
357
|
+
module.is("normal") &&
|
|
361
358
|
module.type.startsWith("javascript/") &&
|
|
362
359
|
module.buildMeta !== undefined &&
|
|
363
360
|
module.buildMeta.exportsType !== "namespace";
|
|
@@ -367,11 +364,14 @@ const needWrapped = (module) =>
|
|
|
367
364
|
* @param {ConcatenationEntry} entry a member of the concatenation
|
|
368
365
|
* @returns {boolean} true, when it may be wrapped
|
|
369
366
|
*/
|
|
370
|
-
const entryCanBeWrapped = (entry) =>
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
(entry.module
|
|
374
|
-
entry.module.
|
|
367
|
+
const entryCanBeWrapped = (entry) => {
|
|
368
|
+
// TODO in the next major release: call it directly. A module built against an older webpack
|
|
369
|
+
// extends a base class without it, so fall back to the check this replaced.
|
|
370
|
+
if (typeof entry.module.canBeWrappedInConcatenation !== "function") {
|
|
371
|
+
return !entry.module.type.startsWith("css/");
|
|
372
|
+
}
|
|
373
|
+
return entry.module.canBeWrappedInConcatenation();
|
|
374
|
+
};
|
|
375
375
|
|
|
376
376
|
/** @typedef {Set<ConcatenatedModuleInfo>} NeededNamespaceObjects */
|
|
377
377
|
|
|
@@ -756,7 +756,7 @@ const getFinalBinding = (
|
|
|
756
756
|
exportName
|
|
757
757
|
};
|
|
758
758
|
}
|
|
759
|
-
if (usedName
|
|
759
|
+
if (isInlinedUsedName(usedName)) {
|
|
760
760
|
return {
|
|
761
761
|
info,
|
|
762
762
|
// Render the inlined literal only, not its property suffix: that
|
|
@@ -798,7 +798,7 @@ const getFinalBinding = (
|
|
|
798
798
|
const usedName = moduleGraph
|
|
799
799
|
.getExportsInfo(target.module)
|
|
800
800
|
.getUsedName([...target.export, ...exportName.slice(1)], runtime);
|
|
801
|
-
if (usedName
|
|
801
|
+
if (isInlinedUsedName(usedName)) {
|
|
802
802
|
return {
|
|
803
803
|
info,
|
|
804
804
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -821,9 +821,16 @@ const getFinalBinding = (
|
|
|
821
821
|
` * ${info.type} ${m.readableIdentifier(requestShortener)}`
|
|
822
822
|
).join("\n")}`
|
|
823
823
|
);
|
|
824
|
-
}
|
|
825
|
-
if (reexport) {
|
|
824
|
+
} else if (reexport) {
|
|
826
825
|
const refInfo = moduleToInfoMap.get(reexport.module);
|
|
826
|
+
// a CommonJS `exports.x = require()` re-export keeps raw exports semantics
|
|
827
|
+
const moduleExportsAccess =
|
|
828
|
+
reexport.connection.dependency !== null &&
|
|
829
|
+
isDependencyKind(
|
|
830
|
+
reexport.connection.dependency,
|
|
831
|
+
"commonjs-export-require"
|
|
832
|
+
);
|
|
833
|
+
|
|
827
834
|
return getFinalBinding(
|
|
828
835
|
moduleGraph,
|
|
829
836
|
/** @type {ModuleInfo} */ (refInfo),
|
|
@@ -840,7 +847,7 @@ const getFinalBinding = (
|
|
|
840
847
|
/** @type {BuildMeta} */
|
|
841
848
|
(info.module.buildMeta).strictHarmonyModule,
|
|
842
849
|
asiSafe,
|
|
843
|
-
|
|
850
|
+
moduleExportsAccess,
|
|
844
851
|
alreadyVisited
|
|
845
852
|
);
|
|
846
853
|
}
|
|
@@ -858,7 +865,7 @@ const getFinalBinding = (
|
|
|
858
865
|
}
|
|
859
866
|
// an inlined export never reaches the exports object, so render the
|
|
860
867
|
// literal instead of reading the namespace
|
|
861
|
-
if (usedName
|
|
868
|
+
if (isInlinedUsedName(usedName)) {
|
|
862
869
|
return {
|
|
863
870
|
info,
|
|
864
871
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -895,7 +902,7 @@ const getFinalBinding = (
|
|
|
895
902
|
exportName
|
|
896
903
|
};
|
|
897
904
|
}
|
|
898
|
-
if (used
|
|
905
|
+
if (isInlinedUsedName(used)) {
|
|
899
906
|
return {
|
|
900
907
|
info,
|
|
901
908
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -1130,6 +1137,22 @@ class ConcatenatedModule extends Module {
|
|
|
1130
1137
|
return [...this._modules];
|
|
1131
1138
|
}
|
|
1132
1139
|
|
|
1140
|
+
/**
|
|
1141
|
+
* Returns the module this one was built around: itself, or the root of a scope-hoisted concatenation.
|
|
1142
|
+
* @returns {Module} the root module
|
|
1143
|
+
*/
|
|
1144
|
+
getRootModule() {
|
|
1145
|
+
return this.rootModule;
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* Returns the modules this one was built from: itself, or every module merged by scope hoisting.
|
|
1150
|
+
* @returns {Iterable<Module>} the source modules (do not mutate)
|
|
1151
|
+
*/
|
|
1152
|
+
getSourceModules() {
|
|
1153
|
+
return this._modules;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1133
1156
|
/**
|
|
1134
1157
|
* Returns the unique identifier used to reference this module.
|
|
1135
1158
|
* @returns {string} a unique identifier of the module
|
|
@@ -1368,8 +1391,13 @@ class ConcatenatedModule extends Module {
|
|
|
1368
1391
|
connections.push(c);
|
|
1369
1392
|
}
|
|
1370
1393
|
}
|
|
1394
|
+
/** @type {Map<Dependency, number>} */
|
|
1395
|
+
const dependencyIndices = new Map();
|
|
1396
|
+
for (let i = 0; i < module.dependencies.length; i++) {
|
|
1397
|
+
dependencyIndices.set(module.dependencies[i], i);
|
|
1398
|
+
}
|
|
1371
1399
|
/**
|
|
1372
|
-
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, defer?: boolean }[]}
|
|
1400
|
+
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, dependencyIndex: number, defer?: boolean }[]}
|
|
1373
1401
|
*/
|
|
1374
1402
|
const references = connections
|
|
1375
1403
|
.filter((connection) => {
|
|
@@ -1396,8 +1424,9 @@ class ConcatenatedModule extends Module {
|
|
|
1396
1424
|
})
|
|
1397
1425
|
.map((connection) => {
|
|
1398
1426
|
const dep =
|
|
1399
|
-
/** @type {
|
|
1427
|
+
/** @type {ESMImportDependency} */
|
|
1400
1428
|
(connection.dependency);
|
|
1429
|
+
const dependencyIndex = dependencyIndices.get(dep);
|
|
1401
1430
|
return {
|
|
1402
1431
|
connection,
|
|
1403
1432
|
// A require() edge carries no sourceOrder, and Infinity sorts it
|
|
@@ -1406,6 +1435,8 @@ class ConcatenatedModule extends Module {
|
|
|
1406
1435
|
sourceOrder:
|
|
1407
1436
|
typeof dep.sourceOrder === "number" ? dep.sourceOrder : Infinity,
|
|
1408
1437
|
rangeStart: dep.range && dep.range[0],
|
|
1438
|
+
dependencyIndex:
|
|
1439
|
+
dependencyIndex === undefined ? Infinity : dependencyIndex,
|
|
1409
1440
|
defer: ImportPhaseUtils.isDefer(dep.phase)
|
|
1410
1441
|
};
|
|
1411
1442
|
});
|
|
@@ -1424,8 +1455,11 @@ class ConcatenatedModule extends Module {
|
|
|
1424
1455
|
* If there is no reexport, we have the same source.
|
|
1425
1456
|
* If there is reexport, but module has side effects, this will lead to reexport module only.
|
|
1426
1457
|
* If there is side-effects-free reexport, we can get simple deterministic result with range start comparison.
|
|
1458
|
+
* Re-exports of one statement share sourceOrder and have no range, so the dependency index breaks the tie.
|
|
1427
1459
|
*/
|
|
1428
|
-
references.sort(
|
|
1460
|
+
references.sort(
|
|
1461
|
+
concatComparators(bySourceOrder, byRangeStart, byDependencyIndex)
|
|
1462
|
+
);
|
|
1429
1463
|
/** @type {Map<Module, { connection: ModuleGraphConnection, runtimeCondition: RuntimeSpec | true, nonDeferAccess: NonDeferAccess }>} */
|
|
1430
1464
|
const referencesMap = new Map();
|
|
1431
1465
|
/** @type {Module[] | undefined} */
|
|
@@ -1439,12 +1473,11 @@ class ConcatenatedModule extends Module {
|
|
|
1439
1473
|
const module = connection.module;
|
|
1440
1474
|
if (targets === undefined) targets = [module];
|
|
1441
1475
|
else if (!targets.includes(module)) targets.push(module);
|
|
1476
|
+
const dependency = connection.dependency;
|
|
1442
1477
|
if (
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
CommonJsExportRequireDependency
|
|
1447
|
-
].some((Dep) => connection.dependency instanceof Dep)
|
|
1478
|
+
dependency !== null &&
|
|
1479
|
+
(isDependencyKind(dependency, "commonjs-require") ||
|
|
1480
|
+
isDependencyKind(dependency, "commonjs-export-require"))
|
|
1448
1481
|
) {
|
|
1449
1482
|
wrappedModules.add(module);
|
|
1450
1483
|
}
|
|
@@ -1708,7 +1741,7 @@ class ConcatenatedModule extends Module {
|
|
|
1708
1741
|
// | (concatenated [+wrapped] | external | reference)
|
|
1709
1742
|
// v
|
|
1710
1743
|
// [1] ANALYSE — inner codeGeneration() per module, into a ConcatenationScope
|
|
1711
|
-
// | plain -> ReplaceSource +
|
|
1744
|
+
// | plain -> ReplaceSource + scope analysis
|
|
1712
1745
|
// | wrapped -> ReplaceSource only, body kept verbatim
|
|
1713
1746
|
// | external -> nothing yet, rendered as a require() below
|
|
1714
1747
|
// [2] RESERVE — free globals of the analysed bodies enter allUsedNames, so
|
|
@@ -1718,7 +1751,7 @@ class ConcatenatedModule extends Module {
|
|
|
1718
1751
|
// | the generated names allocated: wrapper accessor, namespace object,
|
|
1719
1752
|
// | interop helpers, external import variable
|
|
1720
1753
|
// [4] LINK — __WEBPACK_MODULE_REFERENCE__ tokens replaced by their final
|
|
1721
|
-
// | binding; through the
|
|
1754
|
+
// | binding; through the scopes for analysed bodies, textually for wrapped
|
|
1722
1755
|
// [5] COLLECT EXPORTS — root exports split into used / unused / inlined
|
|
1723
1756
|
// v
|
|
1724
1757
|
// ---- from here on everything is appended to the result ConcatSource ----
|
|
@@ -1797,8 +1830,8 @@ class ConcatenatedModule extends Module {
|
|
|
1797
1830
|
/** @type {Set<ConcatenatedModuleInfo | ExternalModuleInfo>} */
|
|
1798
1831
|
const neededEscapeNamespaceObjects = new Set();
|
|
1799
1832
|
|
|
1800
|
-
// #region [1] ANALYSE: run each inner module's own codeGeneration
|
|
1801
|
-
// non-wrapped
|
|
1833
|
+
// #region [1] ANALYSE: run each inner module's own codeGeneration and
|
|
1834
|
+
// scope-analyse the body; a non-wrapped one keeps its scopes for [3]
|
|
1802
1835
|
for (const info of moduleToInfoMap.values()) {
|
|
1803
1836
|
this._analyseModule(
|
|
1804
1837
|
moduleToInfoMap,
|
|
@@ -1862,7 +1895,7 @@ class ConcatenatedModule extends Module {
|
|
|
1862
1895
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
1863
1896
|
if (exportInfo.provided === false) continue;
|
|
1864
1897
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
1865
|
-
if (!usedName || usedName
|
|
1898
|
+
if (!usedName || isInlinedUsedName(usedName)) continue;
|
|
1866
1899
|
if (usedName[usedName.length - 1] !== exportInfo.name) {
|
|
1867
1900
|
mangled = true;
|
|
1868
1901
|
break;
|
|
@@ -1895,8 +1928,18 @@ class ConcatenatedModule extends Module {
|
|
|
1895
1928
|
)) {
|
|
1896
1929
|
allUsedNames.add(name);
|
|
1897
1930
|
}
|
|
1898
|
-
//
|
|
1899
|
-
//
|
|
1931
|
+
// only its free globals reach freeNames; the reference tokens among
|
|
1932
|
+
// them are resolved textually below and patched the same way in [4]
|
|
1933
|
+
for (const reference of /** @type {Reference[]} */ (
|
|
1934
|
+
info.unresolvedReferences
|
|
1935
|
+
)) {
|
|
1936
|
+
const name = reference.identifier.name;
|
|
1937
|
+
if (!ConcatenationScope.isModuleReference(name)) {
|
|
1938
|
+
freeNames.add(name);
|
|
1939
|
+
}
|
|
1940
|
+
}
|
|
1941
|
+
// A wrapped body's references are found textually, as [4] patches
|
|
1942
|
+
// them. They still have to be resolved here: binding one is what
|
|
1900
1943
|
// flags the interop objects it needs, and [3] allocates their names.
|
|
1901
1944
|
/** @type {Set<string>} */
|
|
1902
1945
|
const visitedReferences = new Set();
|
|
@@ -2132,26 +2175,14 @@ class ConcatenatedModule extends Module {
|
|
|
2132
2175
|
for (const identifier of variable.identifiers) {
|
|
2133
2176
|
allIdentifiers.add(identifier);
|
|
2134
2177
|
}
|
|
2178
|
+
const shorthandStarts =
|
|
2179
|
+
/** @type {NonNullable<ConcatenatedModuleInfo["shorthandIdentifierStarts"]>} */
|
|
2180
|
+
(info.shorthandIdentifierStarts);
|
|
2135
2181
|
for (const identifier of allIdentifiers) {
|
|
2136
2182
|
const r = /** @type {Range} */ (identifier.range);
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
identifier
|
|
2141
|
-
);
|
|
2142
|
-
if (path && path.length > 1) {
|
|
2143
|
-
const maybeProperty =
|
|
2144
|
-
path[1].type === "AssignmentPattern" &&
|
|
2145
|
-
path[1].left === path[0]
|
|
2146
|
-
? path[2]
|
|
2147
|
-
: path[1];
|
|
2148
|
-
if (
|
|
2149
|
-
maybeProperty.type === "Property" &&
|
|
2150
|
-
maybeProperty.shorthand
|
|
2151
|
-
) {
|
|
2152
|
-
source.insert(r[1], `: ${newName}`);
|
|
2153
|
-
continue;
|
|
2154
|
-
}
|
|
2183
|
+
if (shorthandStarts.has(r[0])) {
|
|
2184
|
+
source.insert(r[1], `: ${newName}`);
|
|
2185
|
+
continue;
|
|
2155
2186
|
}
|
|
2156
2187
|
source.replace(r[0], r[1] - 1, newName);
|
|
2157
2188
|
}
|
|
@@ -2311,9 +2342,7 @@ class ConcatenatedModule extends Module {
|
|
|
2311
2342
|
newName &&
|
|
2312
2343
|
concatenatedModuleInfo.call(
|
|
2313
2344
|
{
|
|
2314
|
-
rawExportMap: new Map([
|
|
2315
|
-
[exportId, /** @type {string} */ (newName)]
|
|
2316
|
-
])
|
|
2345
|
+
rawExportMap: new Map([[exportId, newName]])
|
|
2317
2346
|
},
|
|
2318
2347
|
/** @type {ConcatenatedModuleInfo} */ (referencedInfo)
|
|
2319
2348
|
);
|
|
@@ -2358,8 +2387,8 @@ class ConcatenatedModule extends Module {
|
|
|
2358
2387
|
}
|
|
2359
2388
|
}
|
|
2360
2389
|
} else {
|
|
2361
|
-
//
|
|
2362
|
-
//
|
|
2390
|
+
// A wrapped body's reference tokens are found textually rather than
|
|
2391
|
+
// in its AST. [2] scanned the same source, so this reuses its result.
|
|
2363
2392
|
/** @type {Map<string, string>} */
|
|
2364
2393
|
const finalNames = new Map();
|
|
2365
2394
|
const source = /** @type {ReplaceSource} */ (info.source);
|
|
@@ -2442,7 +2471,7 @@ class ConcatenatedModule extends Module {
|
|
|
2442
2471
|
unusedExports.add(name);
|
|
2443
2472
|
continue;
|
|
2444
2473
|
}
|
|
2445
|
-
if (used
|
|
2474
|
+
if (isInlinedUsedName(used)) {
|
|
2446
2475
|
inlinedExports.add(name);
|
|
2447
2476
|
continue;
|
|
2448
2477
|
}
|
|
@@ -2565,7 +2594,7 @@ class ConcatenatedModule extends Module {
|
|
|
2565
2594
|
if (exportInfo.provided === false) continue;
|
|
2566
2595
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2567
2596
|
if (!usedName) continue;
|
|
2568
|
-
if (usedName
|
|
2597
|
+
if (isInlinedUsedName(usedName)) {
|
|
2569
2598
|
nsObj.push(
|
|
2570
2599
|
`\n ${propertyName(
|
|
2571
2600
|
exportInfo.name
|
|
@@ -2646,7 +2675,7 @@ ${defineGetters}`
|
|
|
2646
2675
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
2647
2676
|
if (exportInfo.provided === false) continue;
|
|
2648
2677
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2649
|
-
if (usedName && !(usedName
|
|
2678
|
+
if (usedName && !isInlinedUsedName(usedName)) {
|
|
2650
2679
|
const finalName = getFinalName(
|
|
2651
2680
|
moduleGraph,
|
|
2652
2681
|
info,
|
|
@@ -2716,14 +2745,26 @@ ${defineGetters}`
|
|
|
2716
2745
|
for (const info of wrappedInfos) {
|
|
2717
2746
|
if (info.type === "concatenated") {
|
|
2718
2747
|
runtimeRequirements.add(RuntimeGlobals.concatenationWrap);
|
|
2748
|
+
const bodyRuntimeRequirements =
|
|
2749
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
2750
|
+
(info.runtimeRequirements);
|
|
2719
2751
|
result.add(
|
|
2720
2752
|
`\n// MODULE: ${info.module.readableIdentifier(
|
|
2721
2753
|
requestShortener
|
|
2722
2754
|
)}\nvar ${info.namespaceFnName} = /*#__PURE__*/${
|
|
2723
2755
|
RuntimeGlobals.concatenationWrap
|
|
2724
|
-
}(
|
|
2725
|
-
info.module
|
|
2726
|
-
|
|
2756
|
+
}(${runtimeTemplate.moduleFactoryFnHeader({
|
|
2757
|
+
module: info.module,
|
|
2758
|
+
// the trailing `module.exports` assignment below reads it
|
|
2759
|
+
needModule:
|
|
2760
|
+
Boolean(info.namespaceExportSymbol) ||
|
|
2761
|
+
bodyRuntimeRequirements.has(RuntimeGlobals.module),
|
|
2762
|
+
needExports: bodyRuntimeRequirements.has(RuntimeGlobals.exports),
|
|
2763
|
+
needRequire: false,
|
|
2764
|
+
needThisAsExports: bodyRuntimeRequirements.has(
|
|
2765
|
+
RuntimeGlobals.thisAsExports
|
|
2766
|
+
)
|
|
2767
|
+
})}\n`
|
|
2727
2768
|
);
|
|
2728
2769
|
result.add(/** @type {ReplaceSource} */ (info.source));
|
|
2729
2770
|
// A generated body binds its value to a local rather than writing
|
|
@@ -2777,9 +2818,7 @@ ${defineGetters}`
|
|
|
2777
2818
|
if (!info.wrapped) {
|
|
2778
2819
|
const source = namespaceObjectSources.get(info);
|
|
2779
2820
|
if (source) result.add(source);
|
|
2780
|
-
const escapeSource = escapeNamespaceObjectSources.get(
|
|
2781
|
-
/** @type {ConcatenatedModuleInfo} */ (info)
|
|
2782
|
-
);
|
|
2821
|
+
const escapeSource = escapeNamespaceObjectSources.get(info);
|
|
2783
2822
|
if (escapeSource) result.add(escapeSource);
|
|
2784
2823
|
}
|
|
2785
2824
|
} else if (info.type === "external" && info.deferred) {
|
|
@@ -2810,7 +2849,7 @@ ${defineGetters}`
|
|
|
2810
2849
|
result.add(
|
|
2811
2850
|
`\n// DEFERRED EXTERNAL MODULE: ${info.module.readableIdentifier(
|
|
2812
2851
|
requestShortener
|
|
2813
|
-
)}\nvar ${info.deferredName} = ${loader};`
|
|
2852
|
+
)}\nvar ${info.deferredName} = ${runtimeTemplate.sideEffectsAnnotation()}${loader};`
|
|
2814
2853
|
);
|
|
2815
2854
|
if (info.deferredNamespaceObjectUsed) {
|
|
2816
2855
|
runtimeRequirements.add(RuntimeGlobals.makeDeferredNamespaceObject);
|
|
@@ -2924,7 +2963,10 @@ ${defineGetters}`
|
|
|
2924
2963
|
// External module bindings may be wrapped in
|
|
2925
2964
|
// runtime-condition `if` blocks but referenced outside,
|
|
2926
2965
|
// so they must remain function-scoped (`var`).
|
|
2927
|
-
const required =
|
|
2966
|
+
const required = `${runtimeTemplate.moduleSideEffectsAnnotation(
|
|
2967
|
+
info.module,
|
|
2968
|
+
moduleGraph
|
|
2969
|
+
)}__webpack_require__(${moduleId})`;
|
|
2928
2970
|
|
|
2929
2971
|
// The wrapping happens per reference, so only the helper has
|
|
2930
2972
|
// to be declared here.
|
|
@@ -3058,123 +3100,92 @@ ${defineGetters}`
|
|
|
3058
3100
|
codeGenerationResults,
|
|
3059
3101
|
usedNames
|
|
3060
3102
|
) {
|
|
3061
|
-
if (info.type
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
usedNames
|
|
3071
|
-
);
|
|
3072
|
-
info.concatenationScope = concatenationScope;
|
|
3073
|
-
const codeGenResult = m.codeGeneration({
|
|
3074
|
-
dependencyTemplates,
|
|
3075
|
-
runtimeTemplate,
|
|
3076
|
-
moduleGraph,
|
|
3077
|
-
chunkGraph,
|
|
3078
|
-
runtime,
|
|
3079
|
-
runtimes,
|
|
3080
|
-
concatenationScope,
|
|
3081
|
-
codeGenerationResults,
|
|
3082
|
-
sourceTypes: JAVASCRIPT_TYPES
|
|
3083
|
-
});
|
|
3084
|
-
const source =
|
|
3085
|
-
/** @type {Source} */
|
|
3086
|
-
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3087
|
-
const data = codeGenResult.data;
|
|
3088
|
-
info.runtimeRequirements =
|
|
3089
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3090
|
-
(codeGenResult.runtimeRequirements);
|
|
3091
|
-
info.internalSource = source;
|
|
3092
|
-
info.source = new ReplaceSource(source);
|
|
3093
|
-
info.chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3094
|
-
} else {
|
|
3095
|
-
try {
|
|
3096
|
-
// Create a concatenation scope to track and capture information
|
|
3097
|
-
const concatenationScope = new ConcatenationScope(
|
|
3098
|
-
modulesMap,
|
|
3099
|
-
info,
|
|
3100
|
-
usedNames
|
|
3101
|
-
);
|
|
3103
|
+
if (info.type !== "concatenated") return;
|
|
3104
|
+
const m = info.module;
|
|
3105
|
+
try {
|
|
3106
|
+
// Create a concatenation scope to track and capture information
|
|
3107
|
+
const concatenationScope = new ConcatenationScope(
|
|
3108
|
+
modulesMap,
|
|
3109
|
+
info,
|
|
3110
|
+
usedNames
|
|
3111
|
+
);
|
|
3102
3112
|
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
}
|
|
3156
|
-
throw err;
|
|
3157
|
-
}
|
|
3158
|
-
const analysis = analyzeScope(ast);
|
|
3159
|
-
const resultSource = new ReplaceSource(source);
|
|
3160
|
-
info.runtimeRequirements =
|
|
3161
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3162
|
-
(codeGenResult.runtimeRequirements);
|
|
3163
|
-
info.ast = ast;
|
|
3164
|
-
info.internalSource = source;
|
|
3165
|
-
info.source = resultSource;
|
|
3166
|
-
info.chunkInitFragments = chunkInitFragments;
|
|
3167
|
-
info.globalScope = analysis.globalScope;
|
|
3168
|
-
info.moduleScope = analysis.moduleScope;
|
|
3169
|
-
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3170
|
-
info.concatenationScope = concatenationScope;
|
|
3171
|
-
} catch (err) {
|
|
3172
|
-
/** @type {Error} */
|
|
3173
|
-
(err).message +=
|
|
3174
|
-
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3175
|
-
throw err;
|
|
3113
|
+
// Not cached: Compilation memoizes the outer codeGeneration per
|
|
3114
|
+
// (module, runtime), so inner generation never recomputes usefully.
|
|
3115
|
+
const codeGenResult = m.codeGeneration({
|
|
3116
|
+
dependencyTemplates,
|
|
3117
|
+
runtimeTemplate,
|
|
3118
|
+
moduleGraph,
|
|
3119
|
+
chunkGraph,
|
|
3120
|
+
runtime,
|
|
3121
|
+
runtimes,
|
|
3122
|
+
concatenationScope,
|
|
3123
|
+
codeGenerationResults,
|
|
3124
|
+
sourceTypes: JAVASCRIPT_TYPES
|
|
3125
|
+
});
|
|
3126
|
+
const source =
|
|
3127
|
+
/** @type {Source} */
|
|
3128
|
+
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3129
|
+
const data = codeGenResult.data;
|
|
3130
|
+
const chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3131
|
+
const code = source.source().toString();
|
|
3132
|
+
|
|
3133
|
+
/** @type {Program} */
|
|
3134
|
+
let ast;
|
|
3135
|
+
|
|
3136
|
+
try {
|
|
3137
|
+
const { experiments } = this.compilation.options;
|
|
3138
|
+
|
|
3139
|
+
({ ast } = JavascriptParser._parse(
|
|
3140
|
+
code,
|
|
3141
|
+
{
|
|
3142
|
+
// a wrapped CommonJS body may `return` at its top level
|
|
3143
|
+
sourceType: info.wrapped ? "auto" : "module",
|
|
3144
|
+
ranges: true,
|
|
3145
|
+
// generated code contains phase imports when the experiments are on
|
|
3146
|
+
importPhases: Boolean(
|
|
3147
|
+
experiments.deferImport || experiments.sourceImport
|
|
3148
|
+
)
|
|
3149
|
+
},
|
|
3150
|
+
JavascriptParser._getModuleParseFunction(this.compilation, m)
|
|
3151
|
+
));
|
|
3152
|
+
} catch (_err) {
|
|
3153
|
+
const err =
|
|
3154
|
+
/** @type {Error & { loc?: { line: number, column: number } }} */
|
|
3155
|
+
(_err);
|
|
3156
|
+
if (
|
|
3157
|
+
err.loc &&
|
|
3158
|
+
typeof err.loc === "object" &&
|
|
3159
|
+
typeof err.loc.line === "number"
|
|
3160
|
+
) {
|
|
3161
|
+
const lineNumber = err.loc.line;
|
|
3162
|
+
const lines = code.split("\n");
|
|
3163
|
+
err.message += `\n| ${lines
|
|
3164
|
+
.slice(Math.max(0, lineNumber - 3), lineNumber + 2)
|
|
3165
|
+
.join("\n| ")}`;
|
|
3176
3166
|
}
|
|
3167
|
+
throw err;
|
|
3177
3168
|
}
|
|
3169
|
+
const analysis = analyzeScope(ast);
|
|
3170
|
+
info.runtimeRequirements =
|
|
3171
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3172
|
+
(codeGenResult.runtimeRequirements);
|
|
3173
|
+
info.internalSource = source;
|
|
3174
|
+
info.source = new ReplaceSource(source);
|
|
3175
|
+
info.chunkInitFragments = chunkInitFragments;
|
|
3176
|
+
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3177
|
+
info.concatenationScope = concatenationScope;
|
|
3178
|
+
// the wrapper isolates the body's declarations, so [3] renames nothing in
|
|
3179
|
+
// it and its scopes are not kept; [2] claims its identifiers textually
|
|
3180
|
+
if (info.wrapped) return;
|
|
3181
|
+
info.shorthandIdentifierStarts = analysis.shorthandIdentifierStarts;
|
|
3182
|
+
info.globalScope = analysis.globalScope;
|
|
3183
|
+
info.moduleScope = analysis.moduleScope;
|
|
3184
|
+
} catch (err) {
|
|
3185
|
+
/** @type {Error} */
|
|
3186
|
+
(err).message +=
|
|
3187
|
+
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3188
|
+
throw err;
|
|
3178
3189
|
}
|
|
3179
3190
|
}
|
|
3180
3191
|
|
|
@@ -3204,7 +3215,7 @@ ${defineGetters}`
|
|
|
3204
3215
|
module: info.module,
|
|
3205
3216
|
index,
|
|
3206
3217
|
namespaceFnName: undefined,
|
|
3207
|
-
|
|
3218
|
+
shorthandIdentifierStarts: undefined,
|
|
3208
3219
|
chunkInitFragments: undefined,
|
|
3209
3220
|
internalSource: undefined,
|
|
3210
3221
|
runtimeRequirements: undefined,
|
|
@@ -3321,13 +3332,10 @@ ${defineGetters}`
|
|
|
3321
3332
|
* @returns {ConcatenatedModule} ConcatenatedModule
|
|
3322
3333
|
*/
|
|
3323
3334
|
static deserialize(context) {
|
|
3324
|
-
const obj = new ConcatenatedModule(
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
runtime: undefined,
|
|
3329
|
-
compilation: /** @type {EXPECTED_ANY} */ (undefined)
|
|
3330
|
-
});
|
|
3335
|
+
const obj = new ConcatenatedModule(
|
|
3336
|
+
// every field is restored by `deserialize` and `updateCacheModule`
|
|
3337
|
+
/** @type {ConstructorParameters<typeof ConcatenatedModule>[0]} */ ({})
|
|
3338
|
+
);
|
|
3331
3339
|
obj.deserialize(context);
|
|
3332
3340
|
return obj;
|
|
3333
3341
|
}
|
|
@@ -3345,6 +3353,9 @@ ConcatenatedModule.getCompilationHooks = createHooksRegistry(
|
|
|
3345
3353
|
|
|
3346
3354
|
makeSerializable(ConcatenatedModule, "webpack/lib/optimize/ConcatenatedModule");
|
|
3347
3355
|
|
|
3356
|
+
/** @type {Set<keyof ModuleKinds>} */
|
|
3357
|
+
ConcatenatedModule.KINDS = new Set([...Module.KINDS, "concatenated"]);
|
|
3358
|
+
|
|
3348
3359
|
/** @type {WeakMap<Compilation, WeakMap<Module, ConcatenatedModule>>} */
|
|
3349
3360
|
const absorbedBy = new WeakMap();
|
|
3350
3361
|
|
|
@@ -3361,7 +3372,7 @@ ConcatenatedModule.getChunkGraphModule = (compilation, module) => {
|
|
|
3361
3372
|
if (map === undefined) {
|
|
3362
3373
|
map = new WeakMap();
|
|
3363
3374
|
for (const candidate of compilation.modules) {
|
|
3364
|
-
if (candidate
|
|
3375
|
+
if (candidate.is("concatenated")) {
|
|
3365
3376
|
for (const inner of candidate._modules) {
|
|
3366
3377
|
map.set(inner, candidate);
|
|
3367
3378
|
}
|