webpack 5.111.0 → 5.112.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 +1 -1
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +237 -138
- package/lib/Compiler.js +23 -24
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -69
- 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 +43 -24
- package/lib/NormalModule.js +3 -2190
- 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 +15 -9
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +61 -38
- package/lib/asset/AssetModule.js +2 -2
- package/lib/asset/AssetModulesPlugin.js +6 -9
- package/lib/asset/AssetParser.js +3 -3
- package/lib/asset/AssetSourceGenerator.js +15 -9
- package/lib/asset/AssetSourceParser.js +3 -3
- package/lib/asset/RawDataUrlModule.js +17 -10
- package/lib/asset/WebManifestGenerator.js +7 -7
- package/lib/asset/WebManifestParser.js +5 -5
- package/lib/async-modules/AsyncModuleHelpers.js +6 -5
- package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +4 -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} +5 -5
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +6 -6
- package/lib/cache/MemoryWithGcCachePlugin.js +9 -10
- package/lib/cache/PackFileCacheStrategy.js +11 -28
- package/lib/cache/ResolverCachePlugin.js +8 -4
- package/lib/cache/getLazyHashedEtag.js +3 -5
- 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} +217 -200
- package/lib/{WebpackOptionsDefaulter.js → config/WebpackOptionsDefaulter.js} +3 -3
- package/lib/config/browserslistTargetHandler.js +3 -9
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +192 -122
- package/lib/config/getClaimedAssetTypes.js +28 -21
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +13 -4
- 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/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
- package/lib/{ContextModule.js → context/ContextModule.js} +50 -36
- package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +25 -24
- package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
- package/lib/css/CssGenerator.js +57 -42
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -30
- package/lib/css/CssLoadingRuntimeModule.js +77 -44
- package/lib/css/CssModule.js +27 -29
- package/lib/css/CssModulesPlugin.js +128 -44
- package/lib/css/CssParser.js +700 -311
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +130 -54
- package/lib/css/data.js +7017 -4648
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -17370
- package/lib/debug/ProfilingPlugin.js +55 -23
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +25 -29
- package/lib/{EnvironmentPlugin.js → define/EnvironmentPlugin.js} +2 -2
- 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 -10
- 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} +10 -10
- 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} +176 -44
- package/lib/dependencies/{CommonJsExportsDependency.js → commonjs/CommonJsExportsDependency.js} +15 -14
- package/lib/dependencies/{CommonJsExportsParserPlugin.js → commonjs/CommonJsExportsParserPlugin.js} +138 -61
- package/lib/dependencies/{CommonJsFullRequireDependency.js → commonjs/CommonJsFullRequireDependency.js} +32 -24
- package/lib/dependencies/{CommonJsImportsParserPlugin.js → commonjs/CommonJsImportsParserPlugin.js} +39 -35
- package/lib/dependencies/{CommonJsObjectExportDependency.js → commonjs/CommonJsObjectExportDependency.js} +13 -12
- package/lib/dependencies/{CommonJsPlugin.js → commonjs/CommonJsPlugin.js} +47 -35
- 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} +19 -20
- 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} +5 -5
- 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} +34 -18
- 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} +9 -9
- 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} +4 -4
- package/lib/dependencies/{ImportMetaGlobHelpers.js → context/ImportMetaGlobHelpers.js} +9 -9
- 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} +12 -11
- 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 -100
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +26 -22
- 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} +26 -21
- 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} +40 -41
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +22 -21
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +62 -93
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +83 -49
- 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} +136 -122
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +68 -43
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +68 -65
- package/lib/dependencies/{HarmonyExports.js → esm/ESMExports.js} +4 -4
- package/lib/dependencies/{HarmonyImportBareSideEffectDependency.js → esm/ESMImportBareSideEffectDependency.js} +21 -13
- package/lib/dependencies/{HarmonyImportDependency.js → esm/ESMImportDependency.js} +74 -71
- package/lib/dependencies/{HarmonyImportDependencyParserPlugin.js → esm/ESMImportDependencyParserPlugin.js} +199 -97
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +86 -43
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +110 -61
- package/lib/dependencies/esm/ESMModulesPlugin.js +207 -0
- package/lib/dependencies/{HarmonyTopLevelThisParserPlugin.js → esm/ESMTopLevelThisParserPlugin.js} +7 -7
- package/lib/dependencies/{TopLevelAwaitDependency.js → esm/TopLevelAwaitDependency.js} +12 -11
- package/lib/dependencies/{DynamicExports.js → helpers/DynamicExports.js} +2 -2
- package/lib/{util → dependencies/helpers}/chainedImports.js +8 -9
- 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} +125 -243
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +72 -23
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +53 -19
- 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} +20 -20
- 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} +126 -107
- 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} +34 -25
- package/lib/{url → dependencies/url}/URLParserPlugin.js +22 -26
- 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} +46 -54
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +28 -20
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +25 -27
- 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} +207 -129
- 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 +20 -18
- 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 +11 -9
- package/lib/dll/DllModuleFactory.js +3 -3
- package/lib/dll/DllPlugin.js +18 -6
- package/lib/dll/DllReferencePlugin.js +102 -26
- 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/{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/errors/ErrorHelpers.js +222 -0
- 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/{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 +12 -3
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +19 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +3 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +8 -8
- package/lib/{ExternalModule.js → externals/ExternalModule.js} +85 -63
- package/lib/{ExternalModuleFactoryPlugin.js → externals/ExternalModuleFactoryPlugin.js} +41 -39
- 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} +187 -80
- package/lib/{ChunkGroup.js → graph/ChunkGroup.js} +11 -3
- package/lib/{DependenciesBlock.js → graph/DependenciesBlock.js} +16 -4
- package/lib/graph/Dependency.js +628 -0
- package/lib/graph/Entrypoint.js +136 -0
- package/lib/{ExportsInfo.js → graph/ExportsInfo.js} +151 -99
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +36 -39
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +163 -72
- package/lib/{util → graph}/findGraphRoots.js +20 -21
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +49 -47
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +3 -3
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +10 -8
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +2 -2
- package/lib/hmr/LazyCompilationPlugin.js +34 -26
- package/lib/html/HtmlGenerator.js +168 -125
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +260 -215
- package/lib/html/HtmlParser.js +598 -292
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +23 -1
- package/lib/html/htmlMinify.js +120 -51
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -14062
- package/lib/html/xmlMinify.js +67 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +2 -2
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +31 -4
- 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 +348 -99
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +29 -30
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +4 -5
- package/lib/javascript/BasicEvaluatedExpression.js +4 -4
- package/lib/javascript/ChunkHelpers.js +64 -4
- package/lib/javascript/CommonJsChunkFormatPlugin.js +4 -7
- package/lib/{CompatibilityPlugin.js → javascript/CompatibilityPlugin.js} +10 -11
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +90 -139
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +25 -18
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +458 -256
- package/lib/javascript/JavascriptParser.js +916 -287
- package/lib/javascript/JavascriptParserHelpers.js +1 -1
- package/lib/javascript/MergedEntryExports.js +196 -0
- package/lib/javascript/ScopeAnalyzer.js +3840 -5
- package/lib/javascript/StartupHelpers.js +6 -6
- package/lib/{UseStrictPlugin.js → javascript/UseStrictPlugin.js} +12 -15
- 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 +18561 -0
- package/lib/javascript/syntax-printer-data.js +933 -0
- package/lib/javascript/syntax-printer.js +47106 -0
- package/lib/javascript/syntax.js +20 -10946
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +17 -11
- package/lib/json/JsonModule.js +2 -2
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -5
- 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 +27 -11
- package/lib/library/EnableLibraryPlugin.js +1 -1
- package/lib/library/ExportPropertyLibraryPlugin.js +4 -4
- package/lib/library/JsonpLibraryPlugin.js +1 -1
- package/lib/library/LibraryTemplatePlugin.js +53 -0
- package/lib/library/ModuleLibraryPlugin.js +207 -285
- 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 +27 -2
- package/lib/loaders/LoaderRunner.js +160 -22
- package/lib/{LoaderTargetPlugin.js → loaders/LoaderTargetPlugin.js} +2 -2
- 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} +38 -14
- package/lib/{Module.js → module/Module.js} +122 -54
- package/lib/{ModuleFactory.js → module/ModuleFactory.js} +3 -3
- package/lib/module/NormalModule.js +2348 -0
- package/lib/{NormalModuleFactory.js → module/NormalModuleFactory.js} +53 -54
- package/lib/module/NullFactory.js +29 -0
- package/lib/{Parser.js → module/Parser.js} +3 -3
- package/lib/module/RawModule.js +208 -0
- package/lib/{SelfModuleFactory.js → module/SelfModuleFactory.js} +1 -1
- package/lib/{util → module}/extractSourceMap.js +2 -2
- package/lib/{util → module}/findCaseMismatch.js +2 -2
- package/lib/node/CommonJsChunkLoadingPlugin.js +3 -3
- package/lib/{dependencies → node}/ExternalModuleDependency.js +8 -7
- package/lib/{dependencies → node}/ExternalModuleInitFragment.js +6 -5
- 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 +61 -15
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +9 -7
- package/lib/node/ReadFileCompileWasmPlugin.js +7 -5
- package/lib/node/RequireChunkLoadingRuntimeModule.js +7 -7
- package/lib/node/nodeConsole.js +2 -4
- package/lib/optimize/AggressiveMergingPlugin.js +5 -7
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +305 -309
- 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} +25 -30
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +26 -30
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +5 -13
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +17 -23
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +21 -15
- package/lib/optimize/MangleExportsPlugin.js +8 -9
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +23 -16
- package/lib/{dependencies → optimize}/PureExpressionDependency.js +11 -10
- package/lib/optimize/RealContentHashPlugin.js +16 -7
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/SideEffectsFlagPlugin.js +25 -37
- package/lib/optimize/SplitChunksPlugin.js +715 -159
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +25 -30
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +66 -24
- package/lib/{CopyPlugin.js → output/CopyPlugin.js} +142 -67
- 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 +5 -7
- 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 +3 -3
- package/lib/performance/HotspotsPlugin.js +11 -10
- 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 +3 -3
- package/lib/performance/RedundantDynamicImportsPlugin.js +6 -8
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +2 -2
- package/lib/performance/SizeLimitsPlugin.js +13 -16
- package/lib/performance/TopLevelThisPlugin.js +8 -7
- 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 +7 -9
- 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 +82 -65
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -13
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +14 -13
- 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/RuleSetCompiler.js +27 -46
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +2 -2
- package/lib/runtime/AsyncModuleRuntimeModule.js +10 -9
- 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 +9 -10
- 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 +5 -7
- 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 +135 -102
- 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} +18 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +4 -4
- package/lib/{RuntimeModule.js → runtime/RuntimeModule.js} +36 -21
- package/lib/{RuntimePlugin.js → runtime/RuntimePlugin.js} +48 -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 +4 -7
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/BinaryMiddleware.js +9 -9
- package/lib/serialization/FileMiddleware.js +19 -19
- package/lib/serialization/ObjectMiddleware.js +77 -49
- package/lib/serialization/SerializerMiddleware.js +2 -2
- 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 +19 -19
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +25 -23
- package/lib/stats/DefaultStatsPresetPlugin.js +1 -1
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -3
- package/lib/{MultiStats.js → stats/MultiStats.js} +4 -4
- package/lib/{Stats.js → stats/Stats.js} +4 -4
- package/lib/stats/StatsFactory.js +14 -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} +178 -106
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +35 -82
- package/lib/typescript/TypeScriptPlugin.js +5 -6
- package/lib/util/LocConverter.js +4 -7
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +364 -66
- package/lib/util/TupleSet.js +27 -27
- package/lib/util/WeakTupleMap.js +10 -12
- package/lib/util/buildDiagnostics.js +2 -2
- package/lib/util/comparators.js +10 -10
- package/lib/util/concatenate.js +32 -151
- package/lib/util/createHooksRegistry.js +1 -2
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +96 -18
- package/lib/util/deprecation.js +1 -1
- package/lib/util/extractComments.js +118 -0
- package/lib/util/formatLocation.js +1 -1
- package/lib/util/globUtils.js +197 -16
- package/lib/util/haltVisitors.js +51 -0
- package/lib/util/handlerKeys.js +2 -2
- package/lib/util/hash/wasm-hash.js +3 -4
- package/lib/util/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +295 -103
- package/lib/util/magicComment.js +12 -7
- package/lib/util/makeSerializable.js +23 -4
- package/lib/util/parseJson.js +1 -1
- 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 +4 -1
- 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 +9 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyGenerator.js +11 -6
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +16 -11
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyModulesPlugin.js +26 -10
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyParser.js +8 -8
- package/lib/wasm/EnableWasmLoadingPlugin.js +1 -1
- package/lib/{wasm-async → wasm}/UniversalCompileAsyncWasmPlugin.js +9 -7
- package/lib/wasm/wasmModuleFilename.js +2 -2
- package/lib/wasm-sync/SyncWasmModule.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +11 -12
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +15 -9
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +19 -16
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +8 -9
- 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 +8 -6
- package/lib/web/FetchCompileWasmPlugin.js +6 -4
- 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 +70 -40
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- 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 +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +13915 -8414
- package/lib/ErrorHelpers.js +0 -107
- 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 -71
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1494
- 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}/conventions.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
|
|
|
@@ -558,12 +558,13 @@ const getFinalBinding = (
|
|
|
558
558
|
case "default":
|
|
559
559
|
exportName = exportName.slice(1);
|
|
560
560
|
if (deferred) {
|
|
561
|
-
// `ns.default` for a deferred default-with-named external
|
|
562
|
-
// module must read through the optimized `.a` getter
|
|
563
|
-
//
|
|
564
|
-
//
|
|
565
|
-
// `typeof ns.default`
|
|
566
|
-
// observe the proxy
|
|
561
|
+
// WHY: `ns.default` for a deferred default-with-named external
|
|
562
|
+
// module must read through the optimized `.a` getter, which
|
|
563
|
+
// evaluates the
|
|
564
|
+
// module lazily and returns its exports, rather than through the
|
|
565
|
+
// proxy namespace — otherwise `typeof ns.default` and
|
|
566
|
+
// `ns.default instanceof X` observe the proxy, not the actual
|
|
567
|
+
// default.
|
|
567
568
|
return {
|
|
568
569
|
info,
|
|
569
570
|
rawName: `${info.deferredName}.a`,
|
|
@@ -602,10 +603,9 @@ const getFinalBinding = (
|
|
|
602
603
|
};
|
|
603
604
|
}
|
|
604
605
|
if (deferred) {
|
|
605
|
-
// As with default-with-named above,
|
|
606
|
-
//
|
|
607
|
-
//
|
|
608
|
-
// observe the actual default value rather than the proxy.
|
|
606
|
+
// As with default-with-named above, a deferred default-only
|
|
607
|
+
// external reads through the `.a` getter, so `typeof` and
|
|
608
|
+
// `instanceof` see the value rather than the proxy.
|
|
609
609
|
return {
|
|
610
610
|
info,
|
|
611
611
|
rawName: `${info.deferredName}.a`,
|
|
@@ -756,13 +756,12 @@ const getFinalBinding = (
|
|
|
756
756
|
exportName
|
|
757
757
|
};
|
|
758
758
|
}
|
|
759
|
-
if (usedName
|
|
759
|
+
if (isInlinedUsedName(usedName)) {
|
|
760
760
|
return {
|
|
761
761
|
info,
|
|
762
|
-
// Render the inlined literal only
|
|
763
|
-
//
|
|
764
|
-
//
|
|
765
|
-
// duplicating the access (e.g. `"str".a.a`).
|
|
762
|
+
// Render the inlined literal only, not its property suffix: that
|
|
763
|
+
// comes back in `ids` and getFinalName appends it once, so emitting
|
|
764
|
+
// it here too would duplicate the access.
|
|
766
765
|
rawName: usedName.render(
|
|
767
766
|
Template.toNormalComment(
|
|
768
767
|
`inlined export ${propertyAccess(exportName)}`
|
|
@@ -799,7 +798,7 @@ const getFinalBinding = (
|
|
|
799
798
|
const usedName = moduleGraph
|
|
800
799
|
.getExportsInfo(target.module)
|
|
801
800
|
.getUsedName([...target.export, ...exportName.slice(1)], runtime);
|
|
802
|
-
if (usedName
|
|
801
|
+
if (isInlinedUsedName(usedName)) {
|
|
803
802
|
return {
|
|
804
803
|
info,
|
|
805
804
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -822,9 +821,16 @@ const getFinalBinding = (
|
|
|
822
821
|
` * ${info.type} ${m.readableIdentifier(requestShortener)}`
|
|
823
822
|
).join("\n")}`
|
|
824
823
|
);
|
|
825
|
-
}
|
|
826
|
-
if (reexport) {
|
|
824
|
+
} else if (reexport) {
|
|
827
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
|
+
|
|
828
834
|
return getFinalBinding(
|
|
829
835
|
moduleGraph,
|
|
830
836
|
/** @type {ModuleInfo} */ (refInfo),
|
|
@@ -841,7 +847,7 @@ const getFinalBinding = (
|
|
|
841
847
|
/** @type {BuildMeta} */
|
|
842
848
|
(info.module.buildMeta).strictHarmonyModule,
|
|
843
849
|
asiSafe,
|
|
844
|
-
|
|
850
|
+
moduleExportsAccess,
|
|
845
851
|
alreadyVisited
|
|
846
852
|
);
|
|
847
853
|
}
|
|
@@ -859,7 +865,7 @@ const getFinalBinding = (
|
|
|
859
865
|
}
|
|
860
866
|
// an inlined export never reaches the exports object, so render the
|
|
861
867
|
// literal instead of reading the namespace
|
|
862
|
-
if (usedName
|
|
868
|
+
if (isInlinedUsedName(usedName)) {
|
|
863
869
|
return {
|
|
864
870
|
info,
|
|
865
871
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -896,7 +902,7 @@ const getFinalBinding = (
|
|
|
896
902
|
exportName
|
|
897
903
|
};
|
|
898
904
|
}
|
|
899
|
-
if (used
|
|
905
|
+
if (isInlinedUsedName(used)) {
|
|
900
906
|
return {
|
|
901
907
|
info,
|
|
902
908
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -1027,7 +1033,6 @@ const getFinalName = (
|
|
|
1027
1033
|
|
|
1028
1034
|
/**
|
|
1029
1035
|
* @typedef {object} ConcatenateModuleHooks
|
|
1030
|
-
* @property {SyncBailHook<[ConcatenatedModule, RuntimeSpec[], string, Record<string, string>], boolean>} onDemandExportsGeneration
|
|
1031
1036
|
* @property {SyncBailHook<[Partial<ConcatenatedModuleInfo>, ConcatenatedModuleInfo], boolean | void>} concatenatedModuleInfo
|
|
1032
1037
|
*/
|
|
1033
1038
|
|
|
@@ -1132,6 +1137,22 @@ class ConcatenatedModule extends Module {
|
|
|
1132
1137
|
return [...this._modules];
|
|
1133
1138
|
}
|
|
1134
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
|
+
|
|
1135
1156
|
/**
|
|
1136
1157
|
* Returns the unique identifier used to reference this module.
|
|
1137
1158
|
* @returns {string} a unique identifier of the module
|
|
@@ -1244,10 +1265,9 @@ class ConcatenatedModule extends Module {
|
|
|
1244
1265
|
this.dependencies.push(d);
|
|
1245
1266
|
}
|
|
1246
1267
|
}
|
|
1247
|
-
// populate codeGenerationDependencies
|
|
1248
|
-
//
|
|
1249
|
-
//
|
|
1250
|
-
// Skip references that point back into the concat set itself.
|
|
1268
|
+
// populate codeGenerationDependencies: the inner templates are applied
|
|
1269
|
+
// during this module's own codeGeneration, so what they reference must be
|
|
1270
|
+
// generated by then. References back into the concat set are skipped.
|
|
1251
1271
|
if (m.codeGenerationDependencies !== undefined) {
|
|
1252
1272
|
for (const d of m.codeGenerationDependencies) {
|
|
1253
1273
|
const referenced =
|
|
@@ -1371,8 +1391,13 @@ class ConcatenatedModule extends Module {
|
|
|
1371
1391
|
connections.push(c);
|
|
1372
1392
|
}
|
|
1373
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
|
+
}
|
|
1374
1399
|
/**
|
|
1375
|
-
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, defer?: boolean }[]}
|
|
1400
|
+
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, dependencyIndex: number, defer?: boolean }[]}
|
|
1376
1401
|
*/
|
|
1377
1402
|
const references = connections
|
|
1378
1403
|
.filter((connection) => {
|
|
@@ -1399,17 +1424,19 @@ class ConcatenatedModule extends Module {
|
|
|
1399
1424
|
})
|
|
1400
1425
|
.map((connection) => {
|
|
1401
1426
|
const dep =
|
|
1402
|
-
/** @type {
|
|
1427
|
+
/** @type {ESMImportDependency} */
|
|
1403
1428
|
(connection.dependency);
|
|
1429
|
+
const dependencyIndex = dependencyIndices.get(dep);
|
|
1404
1430
|
return {
|
|
1405
1431
|
connection,
|
|
1406
|
-
// A require() edge carries no sourceOrder
|
|
1407
|
-
//
|
|
1408
|
-
//
|
|
1409
|
-
// comparator non-transitive and the order depend on insertion order.
|
|
1432
|
+
// A require() edge carries no sourceOrder, and Infinity sorts it
|
|
1433
|
+
// last. Not NaN: `compareNumbers` returns 0 against every number,
|
|
1434
|
+
// which makes the comparator non-transitive.
|
|
1410
1435
|
sourceOrder:
|
|
1411
1436
|
typeof dep.sourceOrder === "number" ? dep.sourceOrder : Infinity,
|
|
1412
1437
|
rangeStart: dep.range && dep.range[0],
|
|
1438
|
+
dependencyIndex:
|
|
1439
|
+
dependencyIndex === undefined ? Infinity : dependencyIndex,
|
|
1413
1440
|
defer: ImportPhaseUtils.isDefer(dep.phase)
|
|
1414
1441
|
};
|
|
1415
1442
|
});
|
|
@@ -1428,8 +1455,11 @@ class ConcatenatedModule extends Module {
|
|
|
1428
1455
|
* If there is no reexport, we have the same source.
|
|
1429
1456
|
* If there is reexport, but module has side effects, this will lead to reexport module only.
|
|
1430
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.
|
|
1431
1459
|
*/
|
|
1432
|
-
references.sort(
|
|
1460
|
+
references.sort(
|
|
1461
|
+
concatComparators(bySourceOrder, byRangeStart, byDependencyIndex)
|
|
1462
|
+
);
|
|
1433
1463
|
/** @type {Map<Module, { connection: ModuleGraphConnection, runtimeCondition: RuntimeSpec | true, nonDeferAccess: NonDeferAccess }>} */
|
|
1434
1464
|
const referencesMap = new Map();
|
|
1435
1465
|
/** @type {Module[] | undefined} */
|
|
@@ -1443,12 +1473,11 @@ class ConcatenatedModule extends Module {
|
|
|
1443
1473
|
const module = connection.module;
|
|
1444
1474
|
if (targets === undefined) targets = [module];
|
|
1445
1475
|
else if (!targets.includes(module)) targets.push(module);
|
|
1476
|
+
const dependency = connection.dependency;
|
|
1446
1477
|
if (
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
CommonJsExportRequireDependency
|
|
1451
|
-
].some((Dep) => connection.dependency instanceof Dep)
|
|
1478
|
+
dependency !== null &&
|
|
1479
|
+
(isDependencyKind(dependency, "commonjs-require") ||
|
|
1480
|
+
isDependencyKind(dependency, "commonjs-export-require"))
|
|
1452
1481
|
) {
|
|
1453
1482
|
wrappedModules.add(module);
|
|
1454
1483
|
}
|
|
@@ -1704,40 +1733,38 @@ class ConcatenatedModule extends Module {
|
|
|
1704
1733
|
}
|
|
1705
1734
|
}
|
|
1706
1735
|
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
* [10] RESULT — CodeGenerationResult { sources, data, runtimeRequirements }
|
|
1740
|
-
*/
|
|
1736
|
+
// WHY: how the inner modules become one flat source. Stages [1]-[5] only mutate
|
|
1737
|
+
// the per-module info records (names, ReplaceSource patches); stages [6]-[9]
|
|
1738
|
+
// append to the single output ConcatSource, in exactly the order shown.
|
|
1739
|
+
//
|
|
1740
|
+
// _getModulesWithInfo() — ordered concatenation list + one info per module
|
|
1741
|
+
// | (concatenated [+wrapped] | external | reference)
|
|
1742
|
+
// v
|
|
1743
|
+
// [1] ANALYSE — inner codeGeneration() per module, into a ConcatenationScope
|
|
1744
|
+
// | plain -> ReplaceSource + scope analysis
|
|
1745
|
+
// | wrapped -> ReplaceSource only, body kept verbatim
|
|
1746
|
+
// | external -> nothing yet, rendered as a require() below
|
|
1747
|
+
// [2] RESERVE — free globals of the analysed bodies enter allUsedNames, so
|
|
1748
|
+
// | renaming in [3] can't shadow them (a wrapped body is not analysed;
|
|
1749
|
+
// | the reserved `__webpack_` prefix protects it)
|
|
1750
|
+
// [3] RENAME — module-scope variables renamed inside the ReplaceSource, then
|
|
1751
|
+
// | the generated names allocated: wrapper accessor, namespace object,
|
|
1752
|
+
// | interop helpers, external import variable
|
|
1753
|
+
// [4] LINK — __WEBPACK_MODULE_REFERENCE__ tokens replaced by their final
|
|
1754
|
+
// | binding; through the scopes for analysed bodies, textually for wrapped
|
|
1755
|
+
// [5] COLLECT EXPORTS — root exports split into used / unused / inlined
|
|
1756
|
+
// v
|
|
1757
|
+
// ---- from here on everything is appended to the result ConcatSource ----
|
|
1758
|
+
// |
|
|
1759
|
+
// [6] EMIT EXPORTS — __esModule flag + exports getters, UNUSED/INLINED lists
|
|
1760
|
+
// [7] BUILD NS — namespace object sources built as strings (not emitted yet)
|
|
1761
|
+
// [8] DEFINE — everything that must exist before any body runs: namespace
|
|
1762
|
+
// | objects, wrapper accessors (wrapped modules and wrapped externals),
|
|
1763
|
+
// | deferred external loaders
|
|
1764
|
+
// [9] EVALUATE — bodies in concatenation order: plain bodies inline, externals
|
|
1765
|
+
// | as require(); a wrapped body stays behind its accessor
|
|
1766
|
+
// v
|
|
1767
|
+
// [10] RESULT — CodeGenerationResult { sources, data, runtimeRequirements }
|
|
1741
1768
|
/**
|
|
1742
1769
|
* Generates code and runtime requirements for this module.
|
|
1743
1770
|
* @param {CodeGenerationContext} context context for code generation
|
|
@@ -1803,8 +1830,8 @@ class ConcatenatedModule extends Module {
|
|
|
1803
1830
|
/** @type {Set<ConcatenatedModuleInfo | ExternalModuleInfo>} */
|
|
1804
1831
|
const neededEscapeNamespaceObjects = new Set();
|
|
1805
1832
|
|
|
1806
|
-
// #region [1] ANALYSE: run each inner module's own codeGeneration
|
|
1807
|
-
// 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]
|
|
1808
1835
|
for (const info of moduleToInfoMap.values()) {
|
|
1809
1836
|
this._analyseModule(
|
|
1810
1837
|
moduleToInfoMap,
|
|
@@ -1868,7 +1895,7 @@ class ConcatenatedModule extends Module {
|
|
|
1868
1895
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
1869
1896
|
if (exportInfo.provided === false) continue;
|
|
1870
1897
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
1871
|
-
if (!usedName || usedName
|
|
1898
|
+
if (!usedName || isInlinedUsedName(usedName)) continue;
|
|
1872
1899
|
if (usedName[usedName.length - 1] !== exportInfo.name) {
|
|
1873
1900
|
mangled = true;
|
|
1874
1901
|
break;
|
|
@@ -1901,8 +1928,18 @@ class ConcatenatedModule extends Module {
|
|
|
1901
1928
|
)) {
|
|
1902
1929
|
allUsedNames.add(name);
|
|
1903
1930
|
}
|
|
1904
|
-
//
|
|
1905
|
-
//
|
|
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
|
|
1906
1943
|
// flags the interop objects it needs, and [3] allocates their names.
|
|
1907
1944
|
/** @type {Set<string>} */
|
|
1908
1945
|
const visitedReferences = new Set();
|
|
@@ -2108,10 +2145,9 @@ class ConcatenatedModule extends Module {
|
|
|
2108
2145
|
switch (info.type) {
|
|
2109
2146
|
case "concatenated": {
|
|
2110
2147
|
if (info.wrapped) {
|
|
2111
|
-
// A wrapped module declares
|
|
2112
|
-
//
|
|
2113
|
-
//
|
|
2114
|
-
// would shadow the accessor from inside it.
|
|
2148
|
+
// A wrapped module declares one shared-scope name, the lazy accessor
|
|
2149
|
+
// holding its body. Stage 2 claimed that body's identifiers, so
|
|
2150
|
+
// findNewName avoids the ones that would shadow it from inside.
|
|
2115
2151
|
const namespaceFnName = findNewName(
|
|
2116
2152
|
"namespaceFn",
|
|
2117
2153
|
allUsedNames,
|
|
@@ -2139,26 +2175,14 @@ class ConcatenatedModule extends Module {
|
|
|
2139
2175
|
for (const identifier of variable.identifiers) {
|
|
2140
2176
|
allIdentifiers.add(identifier);
|
|
2141
2177
|
}
|
|
2178
|
+
const shorthandStarts =
|
|
2179
|
+
/** @type {NonNullable<ConcatenatedModuleInfo["shorthandIdentifierStarts"]>} */
|
|
2180
|
+
(info.shorthandIdentifierStarts);
|
|
2142
2181
|
for (const identifier of allIdentifiers) {
|
|
2143
2182
|
const r = /** @type {Range} */ (identifier.range);
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
identifier
|
|
2148
|
-
);
|
|
2149
|
-
if (path && path.length > 1) {
|
|
2150
|
-
const maybeProperty =
|
|
2151
|
-
path[1].type === "AssignmentPattern" &&
|
|
2152
|
-
path[1].left === path[0]
|
|
2153
|
-
? path[2]
|
|
2154
|
-
: path[1];
|
|
2155
|
-
if (
|
|
2156
|
-
maybeProperty.type === "Property" &&
|
|
2157
|
-
maybeProperty.shorthand
|
|
2158
|
-
) {
|
|
2159
|
-
source.insert(r[1], `: ${newName}`);
|
|
2160
|
-
continue;
|
|
2161
|
-
}
|
|
2183
|
+
if (shorthandStarts.has(r[0])) {
|
|
2184
|
+
source.insert(r[1], `: ${newName}`);
|
|
2185
|
+
continue;
|
|
2162
2186
|
}
|
|
2163
2187
|
source.replace(r[0], r[1] - 1, newName);
|
|
2164
2188
|
}
|
|
@@ -2365,8 +2389,8 @@ class ConcatenatedModule extends Module {
|
|
|
2365
2389
|
}
|
|
2366
2390
|
}
|
|
2367
2391
|
} else {
|
|
2368
|
-
//
|
|
2369
|
-
//
|
|
2392
|
+
// A wrapped body's reference tokens are found textually rather than
|
|
2393
|
+
// in its AST. [2] scanned the same source, so this reuses its result.
|
|
2370
2394
|
/** @type {Map<string, string>} */
|
|
2371
2395
|
const finalNames = new Map();
|
|
2372
2396
|
const source = /** @type {ReplaceSource} */ (info.source);
|
|
@@ -2419,10 +2443,9 @@ class ConcatenatedModule extends Module {
|
|
|
2419
2443
|
}
|
|
2420
2444
|
// #endregion
|
|
2421
2445
|
|
|
2422
|
-
// #region [5] COLLECT EXPORTS: split the root module's exports into used
|
|
2423
|
-
// unused
|
|
2424
|
-
// register a namespace object
|
|
2425
|
-
// Map with all root exposed used exports
|
|
2446
|
+
// #region [5] COLLECT EXPORTS: split the root module's exports into used,
|
|
2447
|
+
// unused and inlined. Used ones stay thunks, since resolving one can still
|
|
2448
|
+
// register a namespace object that stage 7 must see.
|
|
2426
2449
|
/** @type {Map<string, (requestShortener: RequestShortener) => string>} */
|
|
2427
2450
|
const exportsMap = new Map();
|
|
2428
2451
|
|
|
@@ -2450,7 +2473,7 @@ class ConcatenatedModule extends Module {
|
|
|
2450
2473
|
unusedExports.add(name);
|
|
2451
2474
|
continue;
|
|
2452
2475
|
}
|
|
2453
|
-
if (used
|
|
2476
|
+
if (isInlinedUsedName(used)) {
|
|
2454
2477
|
inlinedExports.add(name);
|
|
2455
2478
|
continue;
|
|
2456
2479
|
}
|
|
@@ -2500,6 +2523,8 @@ class ConcatenatedModule extends Module {
|
|
|
2500
2523
|
shouldAddHarmonyFlag = true;
|
|
2501
2524
|
}
|
|
2502
2525
|
|
|
2526
|
+
/** @type {string | undefined} */
|
|
2527
|
+
let onDemandExportsSource;
|
|
2503
2528
|
// define exports
|
|
2504
2529
|
if (exportsMap.size > 0) {
|
|
2505
2530
|
/** @type {string[]} */
|
|
@@ -2530,17 +2555,10 @@ class ConcatenatedModule extends Module {
|
|
|
2530
2555
|
this.exportsArgument
|
|
2531
2556
|
}, {${definitions.join(",")}\n});\n`;
|
|
2532
2557
|
|
|
2533
|
-
const
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
!onDemandExportsGeneration.call(
|
|
2538
|
-
this,
|
|
2539
|
-
runtimes,
|
|
2540
|
-
`${harmonyFlagSource}${exportsSource}`,
|
|
2541
|
-
exportsFinalName
|
|
2542
|
-
)
|
|
2543
|
-
) {
|
|
2558
|
+
const meta = moduleGraph.getMetaIfExisting(this);
|
|
2559
|
+
if (meta !== undefined && meta.onDemandExports === true) {
|
|
2560
|
+
onDemandExportsSource = `${harmonyFlagSource}${exportsSource}`;
|
|
2561
|
+
} else {
|
|
2544
2562
|
result.add(harmonyFlagSource);
|
|
2545
2563
|
result.add(exportsSource);
|
|
2546
2564
|
}
|
|
@@ -2562,13 +2580,12 @@ class ConcatenatedModule extends Module {
|
|
|
2562
2580
|
// #endregion
|
|
2563
2581
|
|
|
2564
2582
|
// #region [7] BUILD NS: namespace object sources are built as strings here
|
|
2565
|
-
// and emitted by
|
|
2566
|
-
//
|
|
2567
|
-
|
|
2568
|
-
//
|
|
2569
|
-
//
|
|
2570
|
-
//
|
|
2571
|
-
// regular namespace objects so any nested namespace they pull in is built.
|
|
2583
|
+
// and emitted by stage 8; an external's goes next to its import variable or
|
|
2584
|
+
// accessor instead, defined later.
|
|
2585
|
+
|
|
2586
|
+
// Decoupled namespace objects for escaping mangled namespaces carry the same
|
|
2587
|
+
// getters keyed by the original export names, so untracked access by name
|
|
2588
|
+
// keeps working. Built first, so any nested namespace they pull in exists.
|
|
2572
2589
|
/** @type {Map<ConcatenatedModuleInfo | ExternalModuleInfo, string>} */
|
|
2573
2590
|
const escapeNamespaceObjectSources = new Map();
|
|
2574
2591
|
for (const info of neededEscapeNamespaceObjects) {
|
|
@@ -2579,7 +2596,7 @@ class ConcatenatedModule extends Module {
|
|
|
2579
2596
|
if (exportInfo.provided === false) continue;
|
|
2580
2597
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2581
2598
|
if (!usedName) continue;
|
|
2582
|
-
if (usedName
|
|
2599
|
+
if (isInlinedUsedName(usedName)) {
|
|
2583
2600
|
nsObj.push(
|
|
2584
2601
|
`\n ${propertyName(
|
|
2585
2602
|
exportInfo.name
|
|
@@ -2660,7 +2677,7 @@ ${defineGetters}`
|
|
|
2660
2677
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
2661
2678
|
if (exportInfo.provided === false) continue;
|
|
2662
2679
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2663
|
-
if (usedName && !(usedName
|
|
2680
|
+
if (usedName && !isInlinedUsedName(usedName)) {
|
|
2664
2681
|
const finalName = getFinalName(
|
|
2665
2682
|
moduleGraph,
|
|
2666
2683
|
info,
|
|
@@ -2730,20 +2747,31 @@ ${defineGetters}`
|
|
|
2730
2747
|
for (const info of wrappedInfos) {
|
|
2731
2748
|
if (info.type === "concatenated") {
|
|
2732
2749
|
runtimeRequirements.add(RuntimeGlobals.concatenationWrap);
|
|
2750
|
+
const bodyRuntimeRequirements =
|
|
2751
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
2752
|
+
(info.runtimeRequirements);
|
|
2733
2753
|
result.add(
|
|
2734
2754
|
`\n// MODULE: ${info.module.readableIdentifier(
|
|
2735
2755
|
requestShortener
|
|
2736
2756
|
)}\nvar ${info.namespaceFnName} = /*#__PURE__*/${
|
|
2737
2757
|
RuntimeGlobals.concatenationWrap
|
|
2738
|
-
}(
|
|
2739
|
-
info.module
|
|
2740
|
-
|
|
2758
|
+
}(${runtimeTemplate.moduleFactoryFnHeader({
|
|
2759
|
+
module: info.module,
|
|
2760
|
+
// the trailing `module.exports` assignment below reads it
|
|
2761
|
+
needModule:
|
|
2762
|
+
Boolean(info.namespaceExportSymbol) ||
|
|
2763
|
+
bodyRuntimeRequirements.has(RuntimeGlobals.module),
|
|
2764
|
+
needExports: bodyRuntimeRequirements.has(RuntimeGlobals.exports),
|
|
2765
|
+
needRequire: false,
|
|
2766
|
+
needThisAsExports: bodyRuntimeRequirements.has(
|
|
2767
|
+
RuntimeGlobals.thisAsExports
|
|
2768
|
+
)
|
|
2769
|
+
})}\n`
|
|
2741
2770
|
);
|
|
2742
2771
|
result.add(/** @type {ReplaceSource} */ (info.source));
|
|
2743
|
-
// A generated body
|
|
2744
|
-
//
|
|
2745
|
-
//
|
|
2746
|
-
// the reserved symbol the generator registered.
|
|
2772
|
+
// A generated body binds its value to a local rather than writing
|
|
2773
|
+
// exports, so hand that local to the accessor. The name is verbatim: a
|
|
2774
|
+
// wrapped body is not scope-analysed and keeps the reserved symbol.
|
|
2747
2775
|
result.add(
|
|
2748
2776
|
info.namespaceExportSymbol
|
|
2749
2777
|
? `\n${info.module.moduleArgument}.exports = ${info.namespaceExportSymbol};\n});\n`
|
|
@@ -2825,7 +2853,7 @@ ${defineGetters}`
|
|
|
2825
2853
|
result.add(
|
|
2826
2854
|
`\n// DEFERRED EXTERNAL MODULE: ${info.module.readableIdentifier(
|
|
2827
2855
|
requestShortener
|
|
2828
|
-
)}\nvar ${info.deferredName} = ${loader};`
|
|
2856
|
+
)}\nvar ${info.deferredName} = ${runtimeTemplate.sideEffectsAnnotation()}${loader};`
|
|
2829
2857
|
);
|
|
2830
2858
|
if (info.deferredNamespaceObjectUsed) {
|
|
2831
2859
|
runtimeRequirements.add(RuntimeGlobals.makeDeferredNamespaceObject);
|
|
@@ -2939,7 +2967,10 @@ ${defineGetters}`
|
|
|
2939
2967
|
// External module bindings may be wrapped in
|
|
2940
2968
|
// runtime-condition `if` blocks but referenced outside,
|
|
2941
2969
|
// so they must remain function-scoped (`var`).
|
|
2942
|
-
const required =
|
|
2970
|
+
const required = `${runtimeTemplate.moduleSideEffectsAnnotation(
|
|
2971
|
+
info.module,
|
|
2972
|
+
moduleGraph
|
|
2973
|
+
)}__webpack_require__(${moduleId})`;
|
|
2943
2974
|
|
|
2944
2975
|
// The wrapping happens per reference, so only the helper has
|
|
2945
2976
|
// to be declared here.
|
|
@@ -2980,9 +3011,8 @@ ${defineGetters}`
|
|
|
2980
3011
|
throw new Error(`Unsupported concatenation entry type ${info.type}`);
|
|
2981
3012
|
}
|
|
2982
3013
|
// Building a wrapped module's interop object here would evaluate its body
|
|
2983
|
-
// at the top level and break require() cycles, so
|
|
2984
|
-
// hoisted function
|
|
2985
|
-
// identity stable without claiming a second top-level name.
|
|
3014
|
+
// at the top level and break require() cycles, so it is deferred behind a
|
|
3015
|
+
// hoisted function, memoized on the function object itself.
|
|
2986
3016
|
/**
|
|
2987
3017
|
* @param {string} interopName interop variable name
|
|
2988
3018
|
* @param {string} expr interop object expression
|
|
@@ -3034,6 +3064,10 @@ ${defineGetters}`
|
|
|
3034
3064
|
}
|
|
3035
3065
|
data.set("topLevelDeclarations", topLevelDeclarations);
|
|
3036
3066
|
data.set("freeNames", freeNames);
|
|
3067
|
+
if (onDemandExportsSource !== undefined) {
|
|
3068
|
+
data.set("exportsSource", onDemandExportsSource);
|
|
3069
|
+
data.set("exportsFinalName", exportsFinalName);
|
|
3070
|
+
}
|
|
3037
3071
|
|
|
3038
3072
|
/** @type {CodeGenerationResult} */
|
|
3039
3073
|
const resultEntry = {
|
|
@@ -3070,124 +3104,92 @@ ${defineGetters}`
|
|
|
3070
3104
|
codeGenerationResults,
|
|
3071
3105
|
usedNames
|
|
3072
3106
|
) {
|
|
3073
|
-
if (info.type
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
info,
|
|
3083
|
-
usedNames
|
|
3084
|
-
);
|
|
3085
|
-
info.concatenationScope = concatenationScope;
|
|
3086
|
-
const codeGenResult = m.codeGeneration({
|
|
3087
|
-
dependencyTemplates,
|
|
3088
|
-
runtimeTemplate,
|
|
3089
|
-
moduleGraph,
|
|
3090
|
-
chunkGraph,
|
|
3091
|
-
runtime,
|
|
3092
|
-
runtimes,
|
|
3093
|
-
concatenationScope,
|
|
3094
|
-
codeGenerationResults,
|
|
3095
|
-
sourceTypes: JAVASCRIPT_TYPES
|
|
3096
|
-
});
|
|
3097
|
-
const source =
|
|
3098
|
-
/** @type {Source} */
|
|
3099
|
-
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3100
|
-
const data = codeGenResult.data;
|
|
3101
|
-
info.runtimeRequirements =
|
|
3102
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3103
|
-
(codeGenResult.runtimeRequirements);
|
|
3104
|
-
info.internalSource = source;
|
|
3105
|
-
info.source = new ReplaceSource(source);
|
|
3106
|
-
info.chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3107
|
-
} else {
|
|
3108
|
-
try {
|
|
3109
|
-
// Create a concatenation scope to track and capture information
|
|
3110
|
-
const concatenationScope = new ConcatenationScope(
|
|
3111
|
-
modulesMap,
|
|
3112
|
-
info,
|
|
3113
|
-
usedNames
|
|
3114
|
-
);
|
|
3107
|
+
if (info.type !== "concatenated") return;
|
|
3108
|
+
const m = info.module;
|
|
3109
|
+
try {
|
|
3110
|
+
// Create a concatenation scope to track and capture information
|
|
3111
|
+
const concatenationScope = new ConcatenationScope(
|
|
3112
|
+
modulesMap,
|
|
3113
|
+
info,
|
|
3114
|
+
usedNames
|
|
3115
|
+
);
|
|
3115
3116
|
|
|
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
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
}
|
|
3169
|
-
throw err;
|
|
3170
|
-
}
|
|
3171
|
-
const analysis = analyzeScope(ast);
|
|
3172
|
-
const resultSource = new ReplaceSource(source);
|
|
3173
|
-
info.runtimeRequirements =
|
|
3174
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3175
|
-
(codeGenResult.runtimeRequirements);
|
|
3176
|
-
info.ast = ast;
|
|
3177
|
-
info.internalSource = source;
|
|
3178
|
-
info.source = resultSource;
|
|
3179
|
-
info.chunkInitFragments = chunkInitFragments;
|
|
3180
|
-
info.globalScope = analysis.globalScope;
|
|
3181
|
-
info.moduleScope = analysis.moduleScope;
|
|
3182
|
-
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3183
|
-
info.concatenationScope = concatenationScope;
|
|
3184
|
-
} catch (err) {
|
|
3185
|
-
/** @type {Error} */
|
|
3186
|
-
(err).message +=
|
|
3187
|
-
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3188
|
-
throw err;
|
|
3117
|
+
// Not cached: Compilation memoizes the outer codeGeneration per
|
|
3118
|
+
// (module, runtime), so inner generation never recomputes usefully.
|
|
3119
|
+
const codeGenResult = m.codeGeneration({
|
|
3120
|
+
dependencyTemplates,
|
|
3121
|
+
runtimeTemplate,
|
|
3122
|
+
moduleGraph,
|
|
3123
|
+
chunkGraph,
|
|
3124
|
+
runtime,
|
|
3125
|
+
runtimes,
|
|
3126
|
+
concatenationScope,
|
|
3127
|
+
codeGenerationResults,
|
|
3128
|
+
sourceTypes: JAVASCRIPT_TYPES
|
|
3129
|
+
});
|
|
3130
|
+
const source =
|
|
3131
|
+
/** @type {Source} */
|
|
3132
|
+
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3133
|
+
const data = codeGenResult.data;
|
|
3134
|
+
const chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3135
|
+
const code = source.source().toString();
|
|
3136
|
+
|
|
3137
|
+
/** @type {Program} */
|
|
3138
|
+
let ast;
|
|
3139
|
+
|
|
3140
|
+
try {
|
|
3141
|
+
const { experiments } = this.compilation.options;
|
|
3142
|
+
|
|
3143
|
+
({ ast } = JavascriptParser._parse(
|
|
3144
|
+
code,
|
|
3145
|
+
{
|
|
3146
|
+
// a wrapped CommonJS body may `return` at its top level
|
|
3147
|
+
sourceType: info.wrapped ? "auto" : "module",
|
|
3148
|
+
ranges: true,
|
|
3149
|
+
// generated code contains phase imports when the experiments are on
|
|
3150
|
+
importPhases: Boolean(
|
|
3151
|
+
experiments.deferImport || experiments.sourceImport
|
|
3152
|
+
)
|
|
3153
|
+
},
|
|
3154
|
+
JavascriptParser._getModuleParseFunction(this.compilation, m)
|
|
3155
|
+
));
|
|
3156
|
+
} catch (_err) {
|
|
3157
|
+
const err =
|
|
3158
|
+
/** @type {Error & { loc?: { line: number, column: number } }} */
|
|
3159
|
+
(_err);
|
|
3160
|
+
if (
|
|
3161
|
+
err.loc &&
|
|
3162
|
+
typeof err.loc === "object" &&
|
|
3163
|
+
typeof err.loc.line === "number"
|
|
3164
|
+
) {
|
|
3165
|
+
const lineNumber = err.loc.line;
|
|
3166
|
+
const lines = code.split("\n");
|
|
3167
|
+
err.message += `\n| ${lines
|
|
3168
|
+
.slice(Math.max(0, lineNumber - 3), lineNumber + 2)
|
|
3169
|
+
.join("\n| ")}`;
|
|
3189
3170
|
}
|
|
3171
|
+
throw err;
|
|
3190
3172
|
}
|
|
3173
|
+
const analysis = analyzeScope(ast);
|
|
3174
|
+
info.runtimeRequirements =
|
|
3175
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3176
|
+
(codeGenResult.runtimeRequirements);
|
|
3177
|
+
info.internalSource = source;
|
|
3178
|
+
info.source = new ReplaceSource(source);
|
|
3179
|
+
info.chunkInitFragments = chunkInitFragments;
|
|
3180
|
+
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3181
|
+
info.concatenationScope = concatenationScope;
|
|
3182
|
+
// the wrapper isolates the body's declarations, so [3] renames nothing in
|
|
3183
|
+
// it and its scopes are not kept; [2] claims its identifiers textually
|
|
3184
|
+
if (info.wrapped) return;
|
|
3185
|
+
info.shorthandIdentifierStarts = analysis.shorthandIdentifierStarts;
|
|
3186
|
+
info.globalScope = analysis.globalScope;
|
|
3187
|
+
info.moduleScope = analysis.moduleScope;
|
|
3188
|
+
} catch (err) {
|
|
3189
|
+
/** @type {Error} */
|
|
3190
|
+
(err).message +=
|
|
3191
|
+
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3192
|
+
throw err;
|
|
3191
3193
|
}
|
|
3192
3194
|
}
|
|
3193
3195
|
|
|
@@ -3217,7 +3219,7 @@ ${defineGetters}`
|
|
|
3217
3219
|
module: info.module,
|
|
3218
3220
|
index,
|
|
3219
3221
|
namespaceFnName: undefined,
|
|
3220
|
-
|
|
3222
|
+
shorthandIdentifierStarts: undefined,
|
|
3221
3223
|
chunkInitFragments: undefined,
|
|
3222
3224
|
internalSource: undefined,
|
|
3223
3225
|
runtimeRequirements: undefined,
|
|
@@ -3334,13 +3336,10 @@ ${defineGetters}`
|
|
|
3334
3336
|
* @returns {ConcatenatedModule} ConcatenatedModule
|
|
3335
3337
|
*/
|
|
3336
3338
|
static deserialize(context) {
|
|
3337
|
-
const obj = new ConcatenatedModule(
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
runtime: undefined,
|
|
3342
|
-
compilation: /** @type {EXPECTED_ANY} */ (undefined)
|
|
3343
|
-
});
|
|
3339
|
+
const obj = new ConcatenatedModule(
|
|
3340
|
+
// every field is restored by `deserialize` and `updateCacheModule`
|
|
3341
|
+
/** @type {ConstructorParameters<typeof ConcatenatedModule>[0]} */ ({})
|
|
3342
|
+
);
|
|
3344
3343
|
obj.deserialize(context);
|
|
3345
3344
|
return obj;
|
|
3346
3345
|
}
|
|
@@ -3349,12 +3348,6 @@ ${defineGetters}`
|
|
|
3349
3348
|
ConcatenatedModule.getCompilationHooks = createHooksRegistry(
|
|
3350
3349
|
() =>
|
|
3351
3350
|
/** @type {ConcatenateModuleHooks} */ ({
|
|
3352
|
-
onDemandExportsGeneration: new SyncBailHook([
|
|
3353
|
-
"module",
|
|
3354
|
-
"runtimes",
|
|
3355
|
-
"exportsFinalName",
|
|
3356
|
-
"exportsSource"
|
|
3357
|
-
]),
|
|
3358
3351
|
concatenatedModuleInfo: new SyncBailHook([
|
|
3359
3352
|
"updatedInfo",
|
|
3360
3353
|
"concatenatedModuleInfo"
|
|
@@ -3364,6 +3357,9 @@ ConcatenatedModule.getCompilationHooks = createHooksRegistry(
|
|
|
3364
3357
|
|
|
3365
3358
|
makeSerializable(ConcatenatedModule, "webpack/lib/optimize/ConcatenatedModule");
|
|
3366
3359
|
|
|
3360
|
+
/** @type {Set<keyof ModuleKinds>} */
|
|
3361
|
+
ConcatenatedModule.KINDS = new Set([...Module.KINDS, "concatenated"]);
|
|
3362
|
+
|
|
3367
3363
|
/** @type {WeakMap<Compilation, WeakMap<Module, ConcatenatedModule>>} */
|
|
3368
3364
|
const absorbedBy = new WeakMap();
|
|
3369
3365
|
|
|
@@ -3380,7 +3376,7 @@ ConcatenatedModule.getChunkGraphModule = (compilation, module) => {
|
|
|
3380
3376
|
if (map === undefined) {
|
|
3381
3377
|
map = new WeakMap();
|
|
3382
3378
|
for (const candidate of compilation.modules) {
|
|
3383
|
-
if (candidate
|
|
3379
|
+
if (candidate.is("concatenated")) {
|
|
3384
3380
|
for (const inner of candidate._modules) {
|
|
3385
3381
|
map.set(inner, candidate);
|
|
3386
3382
|
}
|