@depup/webpack 5.111.1-depup.1 → 5.112.0-depup.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 +4 -7
- package/changes.json +3 -15
- package/lib/Chunk.js +3 -966
- package/lib/Compilation.js +224 -106
- package/lib/Compiler.js +19 -19
- package/lib/Dependency.js +3 -551
- package/lib/DependencyTemplate.js +3 -70
- package/lib/EntryPlugin.js +3 -68
- package/lib/Entrypoint.js +3 -121
- package/lib/ExternalsPlugin.js +3 -92
- package/lib/FileSystemInfo.js +3 -4629
- package/lib/InitFragment.js +3 -204
- package/lib/LibraryTemplatePlugin.js +3 -46
- package/lib/ModuleFilenameHelpers.js +3 -400
- package/lib/ModuleNotFoundError.js +2 -2
- package/lib/MultiCompiler.js +37 -8
- package/lib/NormalModule.js +3 -2242
- package/lib/NullFactory.js +3 -22
- package/lib/ProgressPlugin.js +3 -908
- package/lib/RawModule.js +3 -197
- package/lib/RequestShortener.js +3 -37
- package/lib/SingleEntryPlugin.js +1 -1
- package/lib/WebpackError.js +2 -2
- package/lib/asset/AssetBytesGenerator.js +8 -8
- package/lib/asset/AssetBytesParser.js +3 -3
- package/lib/asset/AssetGenerator.js +36 -22
- 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 +8 -8
- 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 +2 -2
- package/lib/cache/MemoryWithGcCachePlugin.js +2 -2
- package/lib/cache/PackFileCacheStrategy.js +8 -10
- package/lib/cache/ResolverCachePlugin.js +8 -4
- 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 +1 -1
- package/lib/{cli.js → config/cli.js} +5 -158
- package/lib/config/defaults.js +144 -48
- package/lib/config/getClaimedAssetTypes.js +21 -13
- package/lib/config/normalization.js +18 -7
- package/lib/config/target.js +10 -0
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +13 -11
- package/lib/container/ContainerEntryModuleFactory.js +2 -2
- package/lib/container/ContainerExposedDependency.js +1 -1
- package/lib/container/ContainerPlugin.js +178 -5
- package/lib/container/ContainerReferencePlugin.js +75 -14
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackItemDependency.js +1 -1
- package/lib/container/FallbackModule.js +12 -10
- package/lib/container/FallbackModuleFactory.js +2 -2
- package/lib/container/HoistContainerReferencesPlugin.js +10 -11
- package/lib/container/ModuleFederationPlugin.js +306 -7
- package/lib/container/RemoteModule.js +14 -10
- package/lib/container/RemoteRuntimeModule.js +5 -5
- package/lib/container/RemoteToExternalDependency.js +1 -1
- package/lib/container/moduleFederationHooks.js +1 -1
- package/lib/context/ContextModule.js +36 -25
- package/lib/context/ContextModuleFactory.js +13 -10
- package/lib/context/ContextReplacementPlugin.js +3 -3
- package/lib/css/CssGenerator.js +38 -31
- 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 +682 -291
- package/lib/css/CssServerStylesRuntimeModule.js +3 -3
- package/lib/css/cssMinify.js +110 -37
- package/lib/css/data.js +6985 -5125
- package/lib/css/syntax-parser.js +19873 -0
- package/lib/css/syntax-printer.js +6037 -0
- package/lib/css/syntax.js +37 -18686
- package/lib/debug/ProfilingPlugin.js +52 -19
- package/lib/{DefinePlugin.js → define/DefinePlugin.js} +407 -41
- package/lib/{DotenvPlugin.js → define/DotenvPlugin.js} +9 -9
- 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} +166 -33
- 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} +35 -30
- 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} +17 -16
- package/lib/dependencies/{ModuleDecoratorDependency.js → commonjs/ModuleDecoratorDependency.js} +16 -15
- package/lib/dependencies/{RequireEnsureDependenciesBlock.js → commonjs/RequireEnsureDependenciesBlock.js} +8 -7
- package/lib/dependencies/{RequireEnsureDependenciesBlockParserPlugin.js → commonjs/RequireEnsureDependenciesBlockParserPlugin.js} +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} +31 -9
- package/lib/dependencies/{ContextDependencyTemplateAsId.js → context/ContextDependencyTemplateAsId.js} +3 -3
- package/lib/dependencies/{ContextDependencyTemplateAsRequireCall.js → context/ContextDependencyTemplateAsRequireCall.js} +3 -3
- package/lib/dependencies/context/ContextElementDependency.js +198 -0
- package/lib/dependencies/{ImportMetaContextDependency.js → context/ImportMetaContextDependency.js} +7 -6
- package/lib/dependencies/{ImportMetaContextDependencyParserPlugin.js → context/ImportMetaContextDependencyParserPlugin.js} +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} +369 -92
- package/lib/dependencies/{CssIcssImportDependency.js → css/CssIcssImportDependency.js} +23 -16
- 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} +23 -16
- package/lib/dependencies/{CreateRequireParserPlugin.js → esm/CreateRequireParserPlugin.js} +9 -9
- package/lib/dependencies/{HarmonyAcceptDependency.js → esm/ESMAcceptDependency.js} +41 -38
- package/lib/dependencies/esm/ESMAcceptImportDependency.js +39 -0
- package/lib/dependencies/{HarmonyCompatibilityDependency.js → esm/ESMCompatibilityDependency.js} +29 -21
- package/lib/dependencies/{HarmonyDetectionParserPlugin.js → esm/ESMDetectionParserPlugin.js} +19 -17
- package/lib/dependencies/{HarmonyEvaluatedImportSpecifierDependency.js → esm/ESMEvaluatedImportSpecifierDependency.js} +33 -30
- package/lib/dependencies/{HarmonyExportDependencyParserPlugin.js → esm/ESMExportDependencyParserPlugin.js} +60 -89
- package/lib/dependencies/{HarmonyExportExpressionDependency.js → esm/ESMExportExpressionDependency.js} +80 -45
- package/lib/dependencies/{HarmonyExportHeaderDependency.js → esm/ESMExportHeaderDependency.js} +17 -15
- package/lib/dependencies/esm/ESMExportImportedSideEffectDependency.js +37 -0
- package/lib/dependencies/{HarmonyExportImportedSpecifierDependency.js → esm/ESMExportImportedSpecifierDependency.js} +133 -118
- package/lib/dependencies/{HarmonyExportInitFragment.js → esm/ESMExportInitFragment.js} +48 -30
- package/lib/dependencies/{HarmonyExportSpecifierDependency.js → esm/ESMExportSpecifierDependency.js} +60 -36
- 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} +99 -84
- package/lib/dependencies/{HarmonyImportGuard.js → esm/ESMImportGuard.js} +26 -29
- package/lib/dependencies/{HarmonyImportSideEffectDependency.js → esm/ESMImportSideEffectDependency.js} +83 -39
- package/lib/dependencies/{HarmonyImportSpecifierDependency.js → esm/ESMImportSpecifierDependency.js} +94 -59
- 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 +5 -5
- package/lib/dependencies/{processExportInfo.js → helpers/processExportInfo.js} +4 -4
- package/lib/{util → dependencies/helpers}/traverseDestructuringAssignmentProperties.js +1 -1
- package/lib/dependencies/{ImportMetaHotAcceptDependency.js → hmr/ImportMetaHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ImportMetaHotDeclineDependency.js → hmr/ImportMetaHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotAcceptDependency.js → hmr/ModuleHotAcceptDependency.js} +8 -7
- package/lib/dependencies/{ModuleHotDeclineDependency.js → hmr/ModuleHotDeclineDependency.js} +8 -7
- package/lib/dependencies/{HtmlEntryDependency.js → html/HtmlEntryDependency.js} +51 -141
- package/lib/dependencies/{HtmlInlineHtmlDependency.js → html/HtmlInlineHtmlDependency.js} +13 -12
- package/lib/dependencies/{HtmlInlineScriptDependency.js → html/HtmlInlineScriptDependency.js} +69 -19
- package/lib/dependencies/{HtmlInlineStyleDependency.js → html/HtmlInlineStyleDependency.js} +50 -15
- 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} +119 -98
- package/lib/dependencies/{SystemPlugin.js → system/SystemPlugin.js} +11 -38
- package/lib/dependencies/{SystemRuntimeModule.js → system/SystemRuntimeModule.js} +3 -3
- package/lib/dependencies/{ImportMetaResolveDependency.js → url/ImportMetaResolveDependency.js} +9 -8
- package/lib/dependencies/{URLContextDependency.js → url/URLContextDependency.js} +11 -10
- package/lib/dependencies/{URLDependency.js → url/URLDependency.js} +28 -20
- package/lib/{url → dependencies/url}/URLParserPlugin.js +16 -18
- 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} +31 -33
- package/lib/dependencies/{WorkerDependency.js → worker/WorkerDependency.js} +22 -15
- package/lib/dependencies/{WorkletDependency.js → worker/WorkletDependency.js} +19 -18
- package/lib/{EvalDevToolModulePlugin.js → devtool/EvalDevToolModulePlugin.js} +20 -6
- package/lib/{EvalSourceMapDevToolPlugin.js → devtool/EvalSourceMapDevToolPlugin.js} +32 -24
- package/lib/devtool/ModuleFilenameHelpers.js +413 -0
- package/lib/{SourceMapDevToolModuleOptionsPlugin.js → devtool/SourceMapDevToolModuleOptionsPlugin.js} +10 -3
- package/lib/{SourceMapDevToolPlugin.js → devtool/SourceMapDevToolPlugin.js} +154 -26
- 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/{ErrorHelpers.js → errors/ErrorHelpers.js} +7 -5
- package/lib/errors/ExternalStarReexportError.js +2 -2
- package/lib/{library → errors}/FalseIIFEUmdWarning.js +1 -1
- package/lib/errors/HookWebpackError.js +4 -4
- 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} +79 -55
- 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} +130 -82
- package/lib/{HotUpdateChunk.js → graph/HotUpdateChunk.js} +8 -0
- package/lib/{ModuleGraph.js → graph/ModuleGraph.js} +30 -30
- package/lib/{ModuleGraphConnection.js → graph/ModuleGraphConnection.js} +2 -2
- package/lib/{buildChunkGraph.js → graph/buildChunkGraph.js} +152 -57
- package/lib/{util → graph}/findGraphRoots.js +14 -8
- package/lib/graph/isDependencyKind.js +23 -0
- package/lib/hmr/HotModuleReplacement.runtime.js +2 -2
- package/lib/{HotModuleReplacementPlugin.js → hmr/HotModuleReplacementPlugin.js} +47 -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 +31 -21
- package/lib/html/HtmlGenerator.js +107 -43
- package/lib/html/HtmlModule.js +6 -2
- package/lib/html/HtmlModulesPlugin.js +172 -76
- package/lib/html/HtmlParser.js +503 -153
- package/lib/html/builtinEmbeddedRenderer.js +60 -13
- package/lib/html/data.js +2 -1
- package/lib/html/htmlMinify.js +111 -41
- package/lib/html/syntax-parser.js +15796 -0
- package/lib/html/syntax-printer.js +1034 -0
- package/lib/html/syntax.js +37 -13952
- 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 +303 -97
- package/lib/{APIPlugin.js → javascript/APIPlugin.js} +25 -25
- 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} +7 -7
- package/lib/{ConstPlugin.js → javascript/ConstPlugin.js} +74 -7
- package/lib/{ExportsInfoApiPlugin.js → javascript/ExportsInfoApiPlugin.js} +5 -5
- package/lib/{dependencies → javascript}/ExportsInfoDependency.js +10 -9
- package/lib/javascript/JavascriptGenerator.js +17 -17
- package/lib/{JavascriptMetaInfoPlugin.js → javascript/JavascriptMetaInfoPlugin.js} +7 -7
- package/lib/javascript/JavascriptModule.js +4 -3
- package/lib/javascript/JavascriptModulesPlugin.js +440 -211
- package/lib/javascript/JavascriptParser.js +220 -134
- 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 -11274
- package/lib/json/JsonData.js +1 -1
- package/lib/{dependencies → json}/JsonExportsDependency.js +8 -7
- package/lib/json/JsonGenerator.js +10 -10
- 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 +160 -166
- package/lib/library/SystemLibraryPlugin.js +6 -8
- package/lib/library/UmdLibraryPlugin.js +3 -4
- package/lib/{dependencies → loaders}/LoaderDependency.js +3 -3
- package/lib/{dependencies → loaders}/LoaderImportDependency.js +9 -3
- package/lib/{LoaderOptionsPlugin.js → loaders/LoaderOptionsPlugin.js} +30 -12
- package/lib/{dependencies → loaders}/LoaderPlugin.js +2 -2
- package/lib/loaders/LoaderRunner.js +31 -21
- 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} +16 -14
- package/lib/{Module.js → module/Module.js} +119 -51
- 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 +58 -6
- 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 +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +12 -8
- package/lib/{CircularModulesPlugin.js → optimize/CircularModulesPlugin.js} +13 -13
- package/lib/optimize/ConcatenatedModule.js +229 -214
- 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} +17 -17
- package/lib/{FlagDependencyUsagePlugin.js → optimize/FlagDependencyUsagePlugin.js} +17 -17
- package/lib/{FlagEntryExportAsUsedPlugin.js → optimize/FlagEntryExportAsUsedPlugin.js} +2 -2
- package/lib/optimize/FlagIncludedChunksPlugin.js +2 -2
- package/lib/optimize/InlineExports.js +11 -3
- package/lib/optimize/InnerGraph.js +5 -13
- package/lib/optimize/InnerGraphPlugin.js +10 -10
- package/lib/optimize/LazyBarrels.js +584 -0
- package/lib/{util → optimize}/LazyBucketSortedSet.js +2 -2
- package/lib/optimize/LimitChunkCountPlugin.js +16 -7
- package/lib/optimize/MangleExportsPlugin.js +5 -5
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -6
- package/lib/optimize/MinChunkSizePlugin.js +9 -6
- package/lib/optimize/ModuleConcatenationPlugin.js +20 -12
- 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 +18 -18
- package/lib/optimize/SplitChunksPlugin.js +713 -155
- package/lib/{util → optimize}/TupleQueue.js +9 -9
- package/lib/optimize/chunkSetIntersections.js +437 -0
- package/lib/{util → optimize}/deterministicGrouping.js +17 -17
- package/lib/{BannerPlugin.js → output/BannerPlugin.js} +82 -14
- package/lib/{CleanPlugin.js → output/CleanPlugin.js} +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 +2 -3
- package/lib/performance/ConflictingResourceHintsPlugin.js +1 -1
- package/lib/performance/DuplicateModulesPlugin.js +3 -4
- package/lib/performance/DuplicatePackagesPlugin.js +3 -3
- package/lib/performance/DynamicExportsPlugin.js +2 -2
- package/lib/performance/EvalUsagePlugin.js +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 +11 -12
- 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 +1 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +4 -4
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +4 -4
- package/lib/{dependencies → prefetch}/PrefetchDependency.js +1 -1
- package/lib/{PrefetchPlugin.js → prefetch/PrefetchPlugin.js} +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +65 -44
- package/lib/prefetch/ResourceHintRuntimeModule.js +3 -3
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +3 -3
- package/lib/prefetch/parseResourceHintOptions.js +4 -3
- package/lib/{ProvidePlugin.js → provide/ProvidePlugin.js} +7 -7
- package/lib/{dependencies → provide}/ProvidedDependency.js +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 +7 -4
- 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 +6 -6
- package/lib/runtime/GetFullHashRuntimeModule.js +2 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +4 -4
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +3 -3
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +3 -3
- package/lib/runtime/GlobalRuntimeModule.js +3 -3
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +3 -3
- package/lib/runtime/HelperRuntimeModule.js +16 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +3 -3
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +80 -17
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/NonceRuntimeModule.js +2 -2
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/PublicPathRuntimeModule.js +2 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +2 -2
- package/lib/{RuntimeGlobals.js → runtime/RuntimeGlobals.js} +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 +1 -1
- package/lib/schemes/HttpUriPlugin.js +67 -11
- package/lib/schemes/VirtualUrlPlugin.js +50 -16
- package/lib/serialization/AggregateErrorSerializer.js +2 -2
- package/lib/serialization/FileMiddleware.js +3 -3
- package/lib/serialization/ObjectMiddleware.js +47 -16
- 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 +14 -16
- package/lib/sharing/utils.js +59 -2
- package/lib/stats/DefaultStatsFactoryPlugin.js +22 -19
- 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} +145 -63
- package/lib/{Template.js → template/Template.js} +13 -11
- package/lib/{TemplatedPathPlugin.js → template/TemplatedPathPlugin.js} +19 -23
- package/lib/typescript/TypeScriptPlugin.js +3 -3
- package/lib/util/RequestShortener.js +44 -0
- package/lib/util/SortableSet.js +87 -22
- package/lib/util/SourceProcessor.js +349 -44
- 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 +28 -147
- package/lib/util/createMappings.js +111 -0
- package/lib/util/dataURL.js +94 -15
- 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/identifier.js +117 -1
- package/lib/util/implicitTypeLoaderFallback.js +6 -4
- package/lib/util/internalSerializables.js +294 -102
- 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 +5 -5
- package/lib/{wasm-async → wasm}/AsyncWebAssemblyJavascriptGenerator.js +11 -10
- 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 +8 -8
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +3 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +9 -8
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +14 -15
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +9 -7
- package/lib/wasm-sync/WebAssemblyParser.js +6 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +6 -5
- package/lib/{MultiWatching.js → watch/MultiWatching.js} +3 -3
- package/lib/{WatchIgnorePlugin.js → watch/WatchIgnorePlugin.js} +43 -9
- package/lib/{Watching.js → watch/Watching.js} +8 -8
- package/lib/web/FetchCompileAsyncWasmPlugin.js +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 +49 -38
- 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 +19355 -13873
- package/lib/LazyBarrel.js +0 -388
- package/lib/dependencies/HarmonyAcceptImportDependency.js +0 -39
- package/lib/dependencies/HarmonyModulesPlugin.js +0 -192
- package/lib/javascript/ChunkFormatHelpers.js +0 -72
- package/lib/javascript/grammar.js +0 -5546
- package/lib/javascript/parser.js +0 -1500
- package/lib/javascript/regexpData.js +0 -51
- package/lib/performance/getSourceModules.js +0 -22
- package/lib/util/Semaphore.js +0 -65
- package/lib/util/objectToMap.js +0 -15
- package/schemas/WebpackOptions.check.d.ts +0 -7
- package/schemas/_container.json +0 -155
- package/schemas/_sharing.json +0 -118
- package/schemas/plugins/BannerPlugin.check.d.ts +0 -7
- package/schemas/plugins/HtmlGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/HtmlParserOptions.check.d.ts +0 -7
- package/schemas/plugins/IgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/LoaderOptionsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ManifestPlugin.check.d.ts +0 -7
- package/schemas/plugins/ProgressPlugin.check.d.ts +0 -7
- package/schemas/plugins/SourceMapDevToolPlugin.check.d.ts +0 -7
- package/schemas/plugins/WatchIgnorePlugin.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetParserOptions.check.d.ts +0 -7
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerPlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ContainerReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/container/ExternalsType.check.d.ts +0 -7
- package/schemas/plugins/container/ModuleFederationPlugin.check.d.ts +0 -7
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +0 -7
- package/schemas/plugins/css/CssParserOptions.check.d.ts +0 -7
- package/schemas/plugins/debug/ProfilingPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllPlugin.check.d.ts +0 -7
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.d.ts +0 -7
- package/schemas/plugins/json/JsonModulesPluginParser.check.d.ts +0 -7
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.d.ts +0 -7
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/HttpUriPlugin.check.d.ts +0 -7
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.d.ts +0 -7
- package/schemas/plugins/sharing/SharePlugin.check.d.ts +0 -7
- /package/lib/{validateSchema.js → config/validateSchema.js} +0 -0
- /package/lib/{util → css}/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
|
@@ -22,19 +22,20 @@ const {
|
|
|
22
22
|
* WebpackRequire
|
|
23
23
|
* } from "../Compilation"
|
|
24
24
|
*/
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
25
|
+
const ConflictingEntryExportsWarning = require("../errors/ConflictingEntryExportsWarning");
|
|
26
|
+
const { tryRunOrWebpackError } = require("../errors/HookWebpackError");
|
|
27
|
+
const UnmergeableEntryExportsError = require("../errors/UnmergeableEntryExportsError");
|
|
28
|
+
const { JAVASCRIPT_TYPE } = require("../module/ModuleSourceTypeConstants");
|
|
28
29
|
const {
|
|
29
30
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
30
31
|
JAVASCRIPT_MODULE_TYPE_DYNAMIC,
|
|
31
32
|
JAVASCRIPT_MODULE_TYPE_ESM,
|
|
32
33
|
WEBPACK_MODULE_TYPE_RUNTIME
|
|
33
|
-
} = require("../ModuleTypeConstants");
|
|
34
|
-
const NormalModule = require("../NormalModule");
|
|
35
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
36
|
-
const
|
|
37
|
-
const
|
|
34
|
+
} = require("../module/ModuleTypeConstants");
|
|
35
|
+
const NormalModule = require("../module/NormalModule");
|
|
36
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
37
|
+
const InitFragment = require("../template/InitFragment");
|
|
38
|
+
const Template = require("../template/Template");
|
|
38
39
|
const { last, someInIterable } = require("../util/IterableHelpers");
|
|
39
40
|
const StringXor = require("../util/StringXor");
|
|
40
41
|
const { compareModulesByFullName } = require("../util/comparators");
|
|
@@ -44,42 +45,46 @@ const {
|
|
|
44
45
|
addScopeSymbols,
|
|
45
46
|
findNewName,
|
|
46
47
|
getAllReferences,
|
|
47
|
-
getPathInAst,
|
|
48
48
|
getUsedNamesInScopeInfo
|
|
49
49
|
} = require("../util/concatenate");
|
|
50
50
|
const createHash = require("../util/createHash");
|
|
51
51
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
52
52
|
const { digestNonNumericOnlyWithFull } = require("../util/nonNumericOnlyHash");
|
|
53
|
+
const { propertyAccess } = require("../util/property");
|
|
53
54
|
const { removeBOMFromResult } = require("../util/removeBOM");
|
|
54
55
|
const { intersectRuntime } = require("../util/runtime");
|
|
55
56
|
const { getAllChunks } = require("./ChunkHelpers");
|
|
56
57
|
const JavascriptGenerator = require("./JavascriptGenerator");
|
|
57
58
|
const JavascriptModule = require("./JavascriptModule");
|
|
58
59
|
const JavascriptParser = require("./JavascriptParser");
|
|
60
|
+
const {
|
|
61
|
+
compilationMergesEntryExports,
|
|
62
|
+
getMergedExports,
|
|
63
|
+
mergedEntryModules,
|
|
64
|
+
mergedEntryModulesOfLibrary
|
|
65
|
+
} = require("./MergedEntryExports");
|
|
59
66
|
const analyzeScope = require("./ScopeAnalyzer");
|
|
60
|
-
const {
|
|
61
|
-
|
|
67
|
+
const {
|
|
68
|
+
entryStartupAwaitsChunks,
|
|
69
|
+
renderAwaitedEntries
|
|
70
|
+
} = require("./StartupHelpers");
|
|
71
|
+
const { releaseParserCaches } = require("./syntax-parser");
|
|
62
72
|
|
|
63
|
-
/**
|
|
64
|
-
* @import {
|
|
65
|
-
* Program
|
|
66
|
-
* } from "estree"
|
|
67
|
-
*/
|
|
68
73
|
/** @import { Source } from "webpack-sources" */
|
|
69
74
|
/**
|
|
70
75
|
* @import {
|
|
71
76
|
* OutputNormalizedWithDefaults as OutputOptions
|
|
72
77
|
* } from "../config/defaults"
|
|
73
78
|
*/
|
|
74
|
-
/** @import Chunk, { ChunkFilenameTemplate } from "../Chunk" */
|
|
75
|
-
/** @import ChunkGraph, { EntryModuleWithChunkGroup } from "../ChunkGraph" */
|
|
76
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
79
|
+
/** @import Chunk, { ChunkFilenameTemplate } from "../graph/Chunk" */
|
|
80
|
+
/** @import ChunkGraph, { EntryModuleWithChunkGroup } from "../graph/ChunkGraph" */
|
|
81
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
77
82
|
/** @import Compiler from "../Compiler" */
|
|
78
|
-
/** @import DependencyTemplates from "../DependencyTemplates" */
|
|
79
|
-
/** @import Entrypoint from "../Entrypoint" */
|
|
80
|
-
/** @import Module, { BuildInfo, CodeGenerationResultData } from "../Module" */
|
|
81
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
82
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
83
|
+
/** @import DependencyTemplates from "../template/DependencyTemplates" */
|
|
84
|
+
/** @import Entrypoint from "../graph/Entrypoint" */
|
|
85
|
+
/** @import Module, { BuildInfo, CodeGenerationResultData } from "../module/Module" */
|
|
86
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
87
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
83
88
|
/** @import WebpackError from "../errors/WebpackError" */
|
|
84
89
|
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
85
90
|
/** @import Hash from "../util/Hash" */
|
|
@@ -253,6 +258,8 @@ const printGeneratedCodeForStack = (module, code) => {
|
|
|
253
258
|
* @property {boolean=} inlined inlined
|
|
254
259
|
* @property {boolean=} inlinedInIIFE the inlined entry module is wrapped in an IIFE
|
|
255
260
|
* @property {boolean=} needExportsDeclaration whether the top-level exports declaration needs to be generated
|
|
261
|
+
* @property {Map<string, string>=} renamedDeclarations the inlined entry's top-level declarations renamed to avoid a collision, original to new name
|
|
262
|
+
* @property {boolean=} exportsAwaited the startup already awaited the last entry, so `__webpack_exports__` holds its settled exports
|
|
256
263
|
*/
|
|
257
264
|
|
|
258
265
|
/**
|
|
@@ -362,20 +369,22 @@ const createCompilationHooks = () => ({
|
|
|
362
369
|
* in `allUsedNames`. Lets inlined modules be emitted without a per-entry/per-chunk
|
|
363
370
|
* IIFE by resolving name collisions instead of isolating each module.
|
|
364
371
|
* @param {InstanceType<typeof import("webpack-sources").ReplaceSource>} source the module source to edit
|
|
365
|
-
* @param {
|
|
372
|
+
* @param {Set<number>} shorthandIdentifierStarts where each shorthand property's identifier starts
|
|
366
373
|
* @param {Variable} variable the top-level variable to check/rename
|
|
367
374
|
* @param {string} moduleIdentifier the module identifier (for scope caching)
|
|
368
375
|
* @param {string} readableIdentifier the readable module identifier (for new names)
|
|
369
376
|
* @param {Set<string>} allUsedNames names already used in the shared scope (mutated)
|
|
377
|
+
* @param {Map<string, string>} renamedDeclarations the declarations renamed so far, original to new name (mutated)
|
|
370
378
|
* @returns {void}
|
|
371
379
|
*/
|
|
372
380
|
const renameInlinedModuleVariable = (
|
|
373
381
|
source,
|
|
374
|
-
|
|
382
|
+
shorthandIdentifierStarts,
|
|
375
383
|
variable,
|
|
376
384
|
moduleIdentifier,
|
|
377
385
|
readableIdentifier,
|
|
378
|
-
allUsedNames
|
|
386
|
+
allUsedNames,
|
|
387
|
+
renamedDeclarations
|
|
379
388
|
) => {
|
|
380
389
|
/** @type {UsedNamesInScopeInfo} */
|
|
381
390
|
const usedNamesInScopeInfo = new Map();
|
|
@@ -406,18 +415,12 @@ const renameInlinedModuleVariable = (
|
|
|
406
415
|
readableIdentifier
|
|
407
416
|
);
|
|
408
417
|
allUsedNames.add(newName);
|
|
418
|
+
renamedDeclarations.set(name, newName);
|
|
409
419
|
for (const identifier of allIdentifiers) {
|
|
410
420
|
const r = /** @type {Range} */ (identifier.range);
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
path[1].type === "AssignmentPattern" && path[1].left === path[0]
|
|
415
|
-
? path[2]
|
|
416
|
-
: path[1];
|
|
417
|
-
if (maybeProperty.type === "Property" && maybeProperty.shorthand) {
|
|
418
|
-
source.insert(r[1], `: ${newName}`);
|
|
419
|
-
continue;
|
|
420
|
-
}
|
|
421
|
+
if (shorthandIdentifierStarts.has(r[0])) {
|
|
422
|
+
source.insert(r[1], `: ${newName}`);
|
|
423
|
+
continue;
|
|
421
424
|
}
|
|
422
425
|
source.replace(r[0], r[1] - 1, newName);
|
|
423
426
|
}
|
|
@@ -427,13 +430,28 @@ const renameInlinedModuleVariable = (
|
|
|
427
430
|
|
|
428
431
|
const PLUGIN_NAME = "JavascriptModulesPlugin";
|
|
429
432
|
|
|
430
|
-
|
|
433
|
+
// Drops the redundant string/buffer copy of a source, keeping its map: a
|
|
434
|
+
// parsed map is far more expensive to rebuild than a `toString`.
|
|
435
|
+
const CLEAR_SOURCE_COPIES = { maps: false, source: true };
|
|
436
|
+
|
|
437
|
+
/** @typedef {{ header: string[], beforeStartup: string[], startup: string[], afterStartup: string[], allowInlineStartup: boolean, exportsAwaited: boolean }} Bootstrap */
|
|
438
|
+
/** @typedef {{ source: Source, needModule: boolean, needExports: boolean, needRequire: boolean, needThisAsExports: boolean, needStrict: boolean | undefined, renderShorthand: boolean, next: ModuleFactoryCacheEntry | undefined }} ModuleFactoryCacheEntry */
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* @typedef {object} RenamedInlinedModules
|
|
442
|
+
* @property {Map<Module, Source>} sources each inlined module's rendered source, renamed where it collided
|
|
443
|
+
* @property {Map<Module, Map<string, string>>} renamedDeclarations each renamed module's declarations, original to new name
|
|
444
|
+
*/
|
|
431
445
|
|
|
432
446
|
class JavascriptModulesPlugin {
|
|
433
447
|
constructor(options = {}) {
|
|
434
448
|
this.options = options;
|
|
435
|
-
/** @type {WeakMap<Source,
|
|
449
|
+
/** @type {WeakMap<Source, ModuleFactoryCacheEntry>} */
|
|
436
450
|
this._moduleFactoryCache = new WeakMap();
|
|
451
|
+
/** @type {WeakMap<Source, Set<string>>} */
|
|
452
|
+
this._renderedFreeNamesCache = new WeakMap();
|
|
453
|
+
/** @type {WeakMap<CodeGenerationResults, Set<Source>>} */
|
|
454
|
+
this._renderedModuleFactorySources = new WeakMap();
|
|
437
455
|
}
|
|
438
456
|
|
|
439
457
|
/**
|
|
@@ -446,6 +464,9 @@ class JavascriptModulesPlugin {
|
|
|
446
464
|
// drop them when the build ends so an idle process retains no parser state
|
|
447
465
|
compiler.hooks.done.tap(PLUGIN_NAME, releaseParserCaches);
|
|
448
466
|
compiler.hooks.failed.tap(PLUGIN_NAME, releaseParserCaches);
|
|
467
|
+
compiler.hooks.afterEmit.tap(PLUGIN_NAME, (compilation) => {
|
|
468
|
+
this._releaseRenderedModuleFactorySources(compilation);
|
|
469
|
+
});
|
|
449
470
|
compiler.hooks.compilation.tap(
|
|
450
471
|
PLUGIN_NAME,
|
|
451
472
|
(compilation, { normalModuleFactory }) => {
|
|
@@ -521,7 +542,7 @@ class JavascriptModulesPlugin {
|
|
|
521
542
|
codeGenerationResults
|
|
522
543
|
} = options;
|
|
523
544
|
|
|
524
|
-
const hotUpdateChunk = chunk
|
|
545
|
+
const hotUpdateChunk = chunk.isHotUpdate() ? chunk : null;
|
|
525
546
|
const filenameTemplate =
|
|
526
547
|
JavascriptModulesPlugin.getChunkFilenameTemplate(
|
|
527
548
|
chunk,
|
|
@@ -690,16 +711,93 @@ class JavascriptModulesPlugin {
|
|
|
690
711
|
compilation.hooks.additionalTreeRuntimeRequirements.tap(
|
|
691
712
|
PLUGIN_NAME,
|
|
692
713
|
(chunk, set, { chunkGraph }) => {
|
|
693
|
-
if (
|
|
694
|
-
|
|
695
|
-
chunkGraph.hasChunkEntryDependentChunks(chunk)
|
|
696
|
-
) {
|
|
714
|
+
if (set.has(RuntimeGlobals.startupNoDefault)) return;
|
|
715
|
+
if (chunkGraph.hasChunkEntryDependentChunks(chunk)) {
|
|
697
716
|
set.add(RuntimeGlobals.onChunksLoaded);
|
|
698
717
|
set.add(RuntimeGlobals.exports);
|
|
699
718
|
set.add(RuntimeGlobals.require);
|
|
719
|
+
return;
|
|
720
|
+
}
|
|
721
|
+
const merged = mergedEntryModules(chunk, chunkGraph, compilation);
|
|
722
|
+
if (merged === undefined) return;
|
|
723
|
+
const { exports, namespace } = getMergedExports(
|
|
724
|
+
merged,
|
|
725
|
+
compilation.moduleGraph,
|
|
726
|
+
chunk.runtime
|
|
727
|
+
);
|
|
728
|
+
set.add(RuntimeGlobals.exports);
|
|
729
|
+
if (namespace) set.add(RuntimeGlobals.makeNamespaceObject);
|
|
730
|
+
if (exports.length > 0) {
|
|
731
|
+
set.add(RuntimeGlobals.definePropertyGetters);
|
|
732
|
+
set.add(RuntimeGlobals.definePropertyGettersFromArray);
|
|
700
733
|
}
|
|
701
734
|
}
|
|
702
735
|
);
|
|
736
|
+
compilation.hooks.afterChunks.tap(PLUGIN_NAME, (chunks) => {
|
|
737
|
+
if (!compilationMergesEntryExports(compilation)) return;
|
|
738
|
+
const { chunkGraph, moduleGraph, runtimeTemplate } = compilation;
|
|
739
|
+
for (const chunk of chunks) {
|
|
740
|
+
const merged = mergedEntryModules(chunk, chunkGraph, compilation);
|
|
741
|
+
if (merged === undefined) continue;
|
|
742
|
+
// Merging reads each entry back right after it ran, which
|
|
743
|
+
// only the bootstrap of the runtime-carrying chunk can do.
|
|
744
|
+
if (
|
|
745
|
+
!chunk.hasRuntime() ||
|
|
746
|
+
chunkGraph.hasChunkEntryDependentChunks(chunk) ||
|
|
747
|
+
entryStartupAwaitsChunks(chunkGraph, chunk)
|
|
748
|
+
) {
|
|
749
|
+
compilation.errors.push(
|
|
750
|
+
new UnmergeableEntryExportsError(
|
|
751
|
+
chunk,
|
|
752
|
+
"they don't all run when this chunk starts up"
|
|
753
|
+
)
|
|
754
|
+
);
|
|
755
|
+
continue;
|
|
756
|
+
}
|
|
757
|
+
// An async entry hands back a promise the merged object would
|
|
758
|
+
// read names off, so it has to be awaited before the merge.
|
|
759
|
+
if (
|
|
760
|
+
!(
|
|
761
|
+
runtimeTemplate.isModule() &&
|
|
762
|
+
runtimeTemplate.supportsTopLevelAwait()
|
|
763
|
+
) &&
|
|
764
|
+
merged.some((module) => moduleGraph.isAsync(module))
|
|
765
|
+
) {
|
|
766
|
+
compilation.errors.push(
|
|
767
|
+
new UnmergeableEntryExportsError(
|
|
768
|
+
chunk,
|
|
769
|
+
"one of them is async and this output can't await it at the top level (see 'output.environment.topLevelAwait')"
|
|
770
|
+
)
|
|
771
|
+
);
|
|
772
|
+
continue;
|
|
773
|
+
}
|
|
774
|
+
const { conflicting, unknownExports } = getMergedExports(
|
|
775
|
+
merged,
|
|
776
|
+
moduleGraph,
|
|
777
|
+
chunk.runtime
|
|
778
|
+
);
|
|
779
|
+
if (unknownExports.length > 0) {
|
|
780
|
+
compilation.errors.push(
|
|
781
|
+
new UnmergeableEntryExportsError(
|
|
782
|
+
chunk,
|
|
783
|
+
`webpack can't tell what ${unknownExports
|
|
784
|
+
.map((module) =>
|
|
785
|
+
module.readableIdentifier(
|
|
786
|
+
runtimeTemplate.requestShortener
|
|
787
|
+
)
|
|
788
|
+
)
|
|
789
|
+
.join(", ")} exports`
|
|
790
|
+
)
|
|
791
|
+
);
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
794
|
+
if (conflicting.length > 0) {
|
|
795
|
+
compilation.warnings.push(
|
|
796
|
+
new ConflictingEntryExportsWarning(chunk, conflicting)
|
|
797
|
+
);
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
});
|
|
703
801
|
compilation.hooks.executeModule.tap(PLUGIN_NAME, (options, context) => {
|
|
704
802
|
const source =
|
|
705
803
|
options.codeGenerationResult.sources.get(JAVASCRIPT_TYPE);
|
|
@@ -777,7 +875,7 @@ class JavascriptModulesPlugin {
|
|
|
777
875
|
static getChunkFilenameTemplate(chunk, outputOptions) {
|
|
778
876
|
if (chunk.filenameTemplate) {
|
|
779
877
|
return chunk.filenameTemplate;
|
|
780
|
-
} else if (chunk
|
|
878
|
+
} else if (chunk.isHotUpdate()) {
|
|
781
879
|
return outputOptions.hotUpdateChunkFilename;
|
|
782
880
|
}
|
|
783
881
|
const entryOptions = chunk.getEntryOptions();
|
|
@@ -791,6 +889,39 @@ class JavascriptModulesPlugin {
|
|
|
791
889
|
return outputOptions.chunkFilename;
|
|
792
890
|
}
|
|
793
891
|
|
|
892
|
+
/**
|
|
893
|
+
* Releases the flattened text the module factory sources memoized while the
|
|
894
|
+
* chunk assets were read. Clearing is only a hint, so a later read re-renders.
|
|
895
|
+
* @param {Compilation} compilation the compilation that emitted its assets
|
|
896
|
+
* @returns {void}
|
|
897
|
+
*/
|
|
898
|
+
_releaseRenderedModuleFactorySources(compilation) {
|
|
899
|
+
// A child compiler never inherits `afterEmit` and its assets are copied
|
|
900
|
+
// into this compilation, which keeps the child reachable through
|
|
901
|
+
// `children`, so the parent's emit is where its sources are released too.
|
|
902
|
+
for (const child of compilation.children) {
|
|
903
|
+
this._releaseRenderedModuleFactorySources(child);
|
|
904
|
+
}
|
|
905
|
+
const { codeGenerationResults } = compilation;
|
|
906
|
+
if (codeGenerationResults === undefined) return;
|
|
907
|
+
const renderedSources = this._renderedModuleFactorySources.get(
|
|
908
|
+
codeGenerationResults
|
|
909
|
+
);
|
|
910
|
+
if (renderedSources === undefined) return;
|
|
911
|
+
this._renderedModuleFactorySources.delete(codeGenerationResults);
|
|
912
|
+
// WHY: the factory sources wrap the code generation ones, so one walk with
|
|
913
|
+
// a shared `visited` clears both layers and reaches a source shared by
|
|
914
|
+
// several chunks once. Feature-detected, since `clearCache` landed in
|
|
915
|
+
// webpack-sources 3.5 and a plugin may hand us an older `Source`.
|
|
916
|
+
/** @type {WeakSet<Source>} */
|
|
917
|
+
const visited = new WeakSet();
|
|
918
|
+
for (const source of renderedSources) {
|
|
919
|
+
if (typeof source.clearCache === "function") {
|
|
920
|
+
source.clearCache(CLEAR_SOURCE_COPIES, visited);
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
}
|
|
924
|
+
|
|
794
925
|
/**
|
|
795
926
|
* Renders the newly generated source from rendering.
|
|
796
927
|
* @param {Module} module the rendered module
|
|
@@ -843,54 +974,41 @@ class JavascriptModulesPlugin {
|
|
|
843
974
|
const needStrict =
|
|
844
975
|
/** @type {BuildInfo} */
|
|
845
976
|
(module.buildInfo).strict && !strictMode;
|
|
977
|
+
const renderShorthand =
|
|
978
|
+
renderInObject === true && runtimeTemplate.supportsMethodShorthand();
|
|
846
979
|
const cacheEntry = this._moduleFactoryCache.get(
|
|
847
980
|
moduleSourcePostContent
|
|
848
981
|
);
|
|
849
|
-
|
|
850
|
-
renderInObject === true && runtimeTemplate.supportsMethodShorthand();
|
|
851
|
-
/** @type {Source} */
|
|
982
|
+
/** @type {Source | undefined} */
|
|
852
983
|
let source;
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
} else {
|
|
864
|
-
const factorySource = new ConcatSource();
|
|
865
|
-
/** @type {string[]} */
|
|
866
|
-
const args = [];
|
|
867
|
-
if (needExports || needRequire || needModule) {
|
|
868
|
-
args.push(
|
|
869
|
-
needModule
|
|
870
|
-
? module.moduleArgument
|
|
871
|
-
: `__unused_webpack_${module.moduleArgument}`
|
|
872
|
-
);
|
|
873
|
-
}
|
|
874
|
-
if (needExports || needRequire) {
|
|
875
|
-
args.push(
|
|
876
|
-
needExports
|
|
877
|
-
? module.exportsArgument
|
|
878
|
-
: `__unused_webpack_${module.exportsArgument}`
|
|
879
|
-
);
|
|
880
|
-
}
|
|
881
|
-
if (needRequire) args.push(RuntimeGlobals.require);
|
|
882
|
-
|
|
883
|
-
if (renderShorthand) {
|
|
884
|
-
// we can optimize function to methodShorthand if render module factory in object
|
|
885
|
-
factorySource.add(`(${args.join(", ")}) {\n\n`);
|
|
886
|
-
} else if (
|
|
887
|
-
!needThisAsExports &&
|
|
888
|
-
runtimeTemplate.supportsArrowFunction()
|
|
984
|
+
// The chunk renders a method shorthand where the entry-IIFE rename
|
|
985
|
+
// needs a standalone function, so a source can have both shapes.
|
|
986
|
+
for (let entry = cacheEntry; entry; entry = entry.next) {
|
|
987
|
+
if (
|
|
988
|
+
entry.needModule === needModule &&
|
|
989
|
+
entry.needExports === needExports &&
|
|
990
|
+
entry.needRequire === needRequire &&
|
|
991
|
+
entry.needThisAsExports === needThisAsExports &&
|
|
992
|
+
entry.needStrict === needStrict &&
|
|
993
|
+
entry.renderShorthand === renderShorthand
|
|
889
994
|
) {
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
factorySource.add(`/***/ (function(${args.join(", ")}) {\n\n`);
|
|
995
|
+
source = entry.source;
|
|
996
|
+
break;
|
|
893
997
|
}
|
|
998
|
+
}
|
|
999
|
+
if (source === undefined) {
|
|
1000
|
+
const factorySource = new ConcatSource();
|
|
1001
|
+
const header = runtimeTemplate.moduleFactoryFnHeader({
|
|
1002
|
+
module,
|
|
1003
|
+
needModule,
|
|
1004
|
+
needExports,
|
|
1005
|
+
needRequire,
|
|
1006
|
+
needThisAsExports,
|
|
1007
|
+
shorthand: renderShorthand
|
|
1008
|
+
});
|
|
1009
|
+
factorySource.add(
|
|
1010
|
+
renderShorthand ? `${header}\n\n` : `/***/ (${header}\n\n`
|
|
1011
|
+
);
|
|
894
1012
|
|
|
895
1013
|
if (needStrict) {
|
|
896
1014
|
factorySource.add('"use strict";\n');
|
|
@@ -905,9 +1023,23 @@ class JavascriptModulesPlugin {
|
|
|
905
1023
|
needRequire,
|
|
906
1024
|
needThisAsExports,
|
|
907
1025
|
needStrict,
|
|
908
|
-
renderShorthand
|
|
1026
|
+
renderShorthand,
|
|
1027
|
+
next: cacheEntry
|
|
909
1028
|
});
|
|
910
1029
|
}
|
|
1030
|
+
// Also on a cache hit: this compilation reads the assets again, so it
|
|
1031
|
+
// memoizes into a source an earlier one already released.
|
|
1032
|
+
let renderedSources = this._renderedModuleFactorySources.get(
|
|
1033
|
+
codeGenerationResults
|
|
1034
|
+
);
|
|
1035
|
+
if (renderedSources === undefined) {
|
|
1036
|
+
renderedSources = new Set();
|
|
1037
|
+
this._renderedModuleFactorySources.set(
|
|
1038
|
+
codeGenerationResults,
|
|
1039
|
+
renderedSources
|
|
1040
|
+
);
|
|
1041
|
+
}
|
|
1042
|
+
renderedSources.add(source);
|
|
911
1043
|
moduleSourcePostContainer = tryRunOrWebpackError(
|
|
912
1044
|
() => hooks.renderModuleContainer.call(source, module, renderContext),
|
|
913
1045
|
"JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer"
|
|
@@ -967,10 +1099,8 @@ class JavascriptModulesPlugin {
|
|
|
967
1099
|
// ESM entry chunk whose runtime lives in a separate chunk: inline the
|
|
968
1100
|
// single entry module at the top level (instead of the module registry)
|
|
969
1101
|
// so its own top-level declarations stay live ESM bindings for consumers.
|
|
970
|
-
const inlinedEntryModule =
|
|
971
|
-
renderContext
|
|
972
|
-
allModules
|
|
973
|
-
);
|
|
1102
|
+
const inlinedEntryModule =
|
|
1103
|
+
JavascriptModulesPlugin._getEsmEntryModuleToInline(renderContext);
|
|
974
1104
|
let registryModules = allModules;
|
|
975
1105
|
if (inlinedEntryModule) {
|
|
976
1106
|
const inlinedEntrySource = this.renderModule(
|
|
@@ -1036,18 +1166,20 @@ class JavascriptModulesPlugin {
|
|
|
1036
1166
|
* its exports as live ESM bindings. Only a self-contained ESM entry whose
|
|
1037
1167
|
* top-level declarations can be lifted into the chunk scope qualifies;
|
|
1038
1168
|
* otherwise `undefined` is returned and the registry path is used.
|
|
1039
|
-
*
|
|
1040
|
-
*
|
|
1169
|
+
*
|
|
1170
|
+
* Static so that a plugin can decide before the chunk is rendered what it may
|
|
1171
|
+
* leave out of the inlined entry's source and put back in the registry.
|
|
1172
|
+
* @param {Pick<RenderContext, "chunk" | "chunkGraph" | "moduleGraph" | "runtimeTemplate" | "codeGenerationResults">} context chunk, graphs and code generation results
|
|
1041
1173
|
* @returns {Module | undefined} the entry module to inline, if any
|
|
1042
1174
|
*/
|
|
1043
|
-
_getEsmEntryModuleToInline(
|
|
1175
|
+
static _getEsmEntryModuleToInline(context) {
|
|
1044
1176
|
const {
|
|
1045
1177
|
chunk,
|
|
1046
1178
|
chunkGraph,
|
|
1047
1179
|
moduleGraph,
|
|
1048
1180
|
runtimeTemplate,
|
|
1049
1181
|
codeGenerationResults
|
|
1050
|
-
} =
|
|
1182
|
+
} = context;
|
|
1051
1183
|
|
|
1052
1184
|
// Only a single ESM entry whose runtime lives in a separate chunk.
|
|
1053
1185
|
if (
|
|
@@ -1272,7 +1404,7 @@ class JavascriptModulesPlugin {
|
|
|
1272
1404
|
const startupSource = new ConcatSource();
|
|
1273
1405
|
|
|
1274
1406
|
const avoidEntryIife = compilation.options.optimization.avoidEntryIife;
|
|
1275
|
-
/** @type {
|
|
1407
|
+
/** @type {RenamedInlinedModules | false} */
|
|
1276
1408
|
let renamedInlinedModule = false;
|
|
1277
1409
|
let inlinedInIIFE = false;
|
|
1278
1410
|
|
|
@@ -1316,7 +1448,7 @@ class JavascriptModulesPlugin {
|
|
|
1316
1448
|
}
|
|
1317
1449
|
|
|
1318
1450
|
const renderedModule = renamedInlinedModule
|
|
1319
|
-
? renamedInlinedModule.get(m)
|
|
1451
|
+
? renamedInlinedModule.sources.get(m)
|
|
1320
1452
|
: this.renderModule(
|
|
1321
1453
|
m,
|
|
1322
1454
|
{
|
|
@@ -1373,7 +1505,10 @@ class JavascriptModulesPlugin {
|
|
|
1373
1505
|
...renderContext,
|
|
1374
1506
|
inlined: true,
|
|
1375
1507
|
inlinedInIIFE,
|
|
1376
|
-
needExportsDeclaration: runtimeRequirements.has(RuntimeGlobals.exports)
|
|
1508
|
+
needExportsDeclaration: runtimeRequirements.has(RuntimeGlobals.exports),
|
|
1509
|
+
renamedDeclarations: renamedInlinedModule
|
|
1510
|
+
? renamedInlinedModule.renamedDeclarations.get(lastInlinedModule)
|
|
1511
|
+
: undefined
|
|
1377
1512
|
};
|
|
1378
1513
|
let renderedStartup = hooks.renderStartup.call(
|
|
1379
1514
|
startupSource,
|
|
@@ -1435,7 +1570,8 @@ class JavascriptModulesPlugin {
|
|
|
1435
1570
|
{
|
|
1436
1571
|
...renderContext,
|
|
1437
1572
|
inlined: false,
|
|
1438
|
-
needExportsDeclaration: true
|
|
1573
|
+
needExportsDeclaration: true,
|
|
1574
|
+
exportsAwaited: bootstrap.exportsAwaited
|
|
1439
1575
|
}
|
|
1440
1576
|
),
|
|
1441
1577
|
toSource(bootstrap.afterStartup, "webpack/after-startup"),
|
|
@@ -1547,14 +1683,15 @@ class JavascriptModulesPlugin {
|
|
|
1547
1683
|
requireFunction || interceptModuleExecution || moduleUsed;
|
|
1548
1684
|
|
|
1549
1685
|
/**
|
|
1550
|
-
* @type {
|
|
1686
|
+
* @type {Bootstrap}
|
|
1551
1687
|
*/
|
|
1552
1688
|
const result = {
|
|
1553
1689
|
header: [],
|
|
1554
1690
|
beforeStartup: [],
|
|
1555
1691
|
startup: [],
|
|
1556
1692
|
afterStartup: [],
|
|
1557
|
-
allowInlineStartup: true
|
|
1693
|
+
allowInlineStartup: true,
|
|
1694
|
+
exportsAwaited: false
|
|
1558
1695
|
};
|
|
1559
1696
|
|
|
1560
1697
|
const { header: buf, startup, beforeStartup, afterStartup } = result;
|
|
@@ -1658,22 +1795,32 @@ class JavascriptModulesPlugin {
|
|
|
1658
1795
|
entryOptions && entryOptions.library !== undefined
|
|
1659
1796
|
? entryOptions.library
|
|
1660
1797
|
: runtimeTemplate.outputOptions.library;
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1798
|
+
const mergedModules = mergedEntryModulesOfLibrary(
|
|
1799
|
+
library,
|
|
1800
|
+
chunk,
|
|
1801
|
+
chunkGraph
|
|
1802
|
+
);
|
|
1803
|
+
const merge = mergedModules !== undefined;
|
|
1664
1804
|
// `await` is legal only at an ESM chunk's top level, never in the
|
|
1665
1805
|
// startup function below, and only where the target parses it.
|
|
1666
1806
|
const canAwaitEntry =
|
|
1667
1807
|
runtimeTemplate.isModule() &&
|
|
1668
1808
|
runtimeTemplate.supportsTopLevelAwait() &&
|
|
1669
|
-
!awaitedByLibrary &&
|
|
1670
1809
|
!runtimeRequirements.has(RuntimeGlobals.startup) &&
|
|
1671
1810
|
!(
|
|
1672
1811
|
runtimeRequirements.has(RuntimeGlobals.startupOnlyBefore) &&
|
|
1673
1812
|
runtimeRequirements.has(RuntimeGlobals.startupOnlyAfter)
|
|
1674
1813
|
);
|
|
1814
|
+
if (merge && result.allowInlineStartup) {
|
|
1815
|
+
buf2.push(
|
|
1816
|
+
"// The exports of the entry modules are merged so they can't be inlined"
|
|
1817
|
+
);
|
|
1818
|
+
result.allowInlineStartup = false;
|
|
1819
|
+
}
|
|
1675
1820
|
/** @type {string[]} */
|
|
1676
1821
|
const awaitedEntries = [];
|
|
1822
|
+
/** @type {Map<Module, string>} */
|
|
1823
|
+
const mergedTargets = new Map();
|
|
1677
1824
|
let i = jsEntries.length;
|
|
1678
1825
|
for (const [entryModule, entrypoint] of jsEntries) {
|
|
1679
1826
|
const chunks =
|
|
@@ -1702,6 +1849,12 @@ class JavascriptModulesPlugin {
|
|
|
1702
1849
|
buf2.push(
|
|
1703
1850
|
"// This entry module is referenced by other modules so it can't be inlined"
|
|
1704
1851
|
);
|
|
1852
|
+
// Its exports are then read off the exports object, and a property
|
|
1853
|
+
// read is not something a consumer of the bundle can drop.
|
|
1854
|
+
runtimeTemplate.analyzableBailout(
|
|
1855
|
+
entryModule,
|
|
1856
|
+
"the entry is referenced by other modules, so its exports are read off the exports object and a consumer cannot drop them"
|
|
1857
|
+
);
|
|
1705
1858
|
result.allowInlineStartup = false;
|
|
1706
1859
|
}
|
|
1707
1860
|
|
|
@@ -1785,24 +1938,32 @@ class JavascriptModulesPlugin {
|
|
|
1785
1938
|
// `onChunksLoaded` wrapper, a top-level `await` bridge or other
|
|
1786
1939
|
// codegen, so it is never declared as a constant.
|
|
1787
1940
|
const exportsDecl = runtimeTemplate.renderLet();
|
|
1941
|
+
// Merging reads every entry back, so each one needs a variable of
|
|
1942
|
+
// its own; without it only the last entry (`i === 0`) is exported.
|
|
1943
|
+
const target =
|
|
1944
|
+
i === 0 && !merge
|
|
1945
|
+
? RuntimeGlobals.exports
|
|
1946
|
+
: `${RuntimeGlobals.exports}_${i}`;
|
|
1947
|
+
if (merge) mergedTargets.set(entryModule, target);
|
|
1788
1948
|
if (chunks.length > 0) {
|
|
1789
1949
|
const awaitEntry =
|
|
1790
1950
|
canAwaitEntry && moduleGraph.isAsync(entryModule);
|
|
1791
|
-
const target =
|
|
1792
|
-
i === 0
|
|
1793
|
-
? RuntimeGlobals.exports
|
|
1794
|
-
: `${RuntimeGlobals.exports}_${i}`;
|
|
1795
1951
|
// The wrapper hands back nothing until the flush below runs the
|
|
1796
|
-
// entry, so
|
|
1797
|
-
|
|
1952
|
+
// entry, so a captured one is caught by the entry call itself.
|
|
1953
|
+
const capture = awaitEntry || merge;
|
|
1954
|
+
if (capture && target !== RuntimeGlobals.exports) {
|
|
1955
|
+
buf2.push(`${exportsDecl} ${target};`);
|
|
1956
|
+
}
|
|
1798
1957
|
const entryCall = `${RuntimeGlobals.require}(${moduleIdExpr})`;
|
|
1799
1958
|
buf2.push(
|
|
1800
|
-
`${
|
|
1801
|
-
|
|
1802
|
-
|
|
1959
|
+
`${
|
|
1960
|
+
i === 0 && !merge
|
|
1961
|
+
? `${exportsDecl} ${RuntimeGlobals.exports} = `
|
|
1962
|
+
: ""
|
|
1963
|
+
}${RuntimeGlobals.onChunksLoaded}(undefined, ${JSON.stringify(
|
|
1803
1964
|
chunks.map((c) => c.id)
|
|
1804
1965
|
)}, ${runtimeTemplate.returningFunction(
|
|
1805
|
-
|
|
1966
|
+
capture ? `(${target} = ${entryCall})` : entryCall
|
|
1806
1967
|
)})`
|
|
1807
1968
|
);
|
|
1808
1969
|
if (awaitEntry) awaitedEntries.push(target);
|
|
@@ -1811,18 +1972,14 @@ class JavascriptModulesPlugin {
|
|
|
1811
1972
|
// which orphans its rejection.
|
|
1812
1973
|
const awaitEntry =
|
|
1813
1974
|
canAwaitEntry && moduleGraph.isAsync(entryModule);
|
|
1814
|
-
const
|
|
1815
|
-
i === 0
|
|
1816
|
-
? RuntimeGlobals.exports
|
|
1817
|
-
: `${RuntimeGlobals.exports}_${i}`;
|
|
1818
|
-
const needsDecl = i === 0 || awaitEntry;
|
|
1975
|
+
const needsDecl = i === 0 || awaitEntry || merge;
|
|
1819
1976
|
buf2.push(
|
|
1820
1977
|
`${needsDecl ? `${exportsDecl} ${target} = ` : ""}${RuntimeGlobals.require}(${moduleIdExpr});`
|
|
1821
1978
|
);
|
|
1822
1979
|
if (awaitEntry) awaitedEntries.push(target);
|
|
1823
1980
|
} else {
|
|
1824
|
-
if (i === 0) {
|
|
1825
|
-
buf2.push(`${exportsDecl} ${
|
|
1981
|
+
if (i === 0 || merge) {
|
|
1982
|
+
buf2.push(`${exportsDecl} ${target} = {};`);
|
|
1826
1983
|
}
|
|
1827
1984
|
const needThisAsExports = entryRuntimeRequirements.has(
|
|
1828
1985
|
RuntimeGlobals.thisAsExports
|
|
@@ -1834,7 +1991,7 @@ class JavascriptModulesPlugin {
|
|
|
1834
1991
|
requireScopeUsed ||
|
|
1835
1992
|
entryRuntimeRequirements.has(RuntimeGlobals.exports)
|
|
1836
1993
|
) {
|
|
1837
|
-
const exportsArg = i === 0 ?
|
|
1994
|
+
const exportsArg = i === 0 || merge ? target : "{}";
|
|
1838
1995
|
args.push("0", exportsArg);
|
|
1839
1996
|
if (requireScopeUsed) {
|
|
1840
1997
|
args.push(RuntimeGlobals.require);
|
|
@@ -1846,7 +2003,7 @@ class JavascriptModulesPlugin {
|
|
|
1846
2003
|
if (needThisAsExports) {
|
|
1847
2004
|
const comma = args.length ? "," : "";
|
|
1848
2005
|
return `__webpack_modules__[${moduleIdExpr}].call(${
|
|
1849
|
-
RuntimeGlobals.exports
|
|
2006
|
+
merge ? target : RuntimeGlobals.exports
|
|
1850
2007
|
}${comma}${args.join(",")});`;
|
|
1851
2008
|
}
|
|
1852
2009
|
return `__webpack_modules__[${moduleIdExpr}](${args.join(
|
|
@@ -1859,10 +2016,43 @@ class JavascriptModulesPlugin {
|
|
|
1859
2016
|
}
|
|
1860
2017
|
if (runtimeRequirements.has(RuntimeGlobals.onChunksLoaded)) {
|
|
1861
2018
|
buf2.push(
|
|
1862
|
-
|
|
2019
|
+
merge
|
|
2020
|
+
? `${RuntimeGlobals.onChunksLoaded}();`
|
|
2021
|
+
: `${RuntimeGlobals.exports} = ${RuntimeGlobals.onChunksLoaded}(${RuntimeGlobals.exports});`
|
|
1863
2022
|
);
|
|
1864
2023
|
}
|
|
1865
2024
|
buf2.push(...renderAwaitedEntries(awaitedEntries));
|
|
2025
|
+
result.exportsAwaited = awaitedEntries.includes(RuntimeGlobals.exports);
|
|
2026
|
+
// Every entry has run by now, and the getters below read through to
|
|
2027
|
+
// whichever one provides each name.
|
|
2028
|
+
if (merge) {
|
|
2029
|
+
const { exports, namespace } = getMergedExports(
|
|
2030
|
+
/** @type {Module[]} */ (mergedModules),
|
|
2031
|
+
moduleGraph,
|
|
2032
|
+
chunk.runtime
|
|
2033
|
+
);
|
|
2034
|
+
buf2.push(
|
|
2035
|
+
`${runtimeTemplate.renderLet()} ${RuntimeGlobals.exports} = {};`
|
|
2036
|
+
);
|
|
2037
|
+
if (namespace) {
|
|
2038
|
+
buf2.push(
|
|
2039
|
+
`${RuntimeGlobals.makeNamespaceObject}(${RuntimeGlobals.exports});`
|
|
2040
|
+
);
|
|
2041
|
+
}
|
|
2042
|
+
if (exports.length > 0) {
|
|
2043
|
+
const bindings = exports.map(
|
|
2044
|
+
({ name, module, usedName }) =>
|
|
2045
|
+
`${JSON.stringify(name)}, ${runtimeTemplate.returningFunction(
|
|
2046
|
+
`${mergedTargets.get(module)}${propertyAccess([usedName])}`
|
|
2047
|
+
)}`
|
|
2048
|
+
);
|
|
2049
|
+
buf2.push(
|
|
2050
|
+
`${RuntimeGlobals.definePropertyGetters}(${
|
|
2051
|
+
RuntimeGlobals.exports
|
|
2052
|
+
}, [${bindings.join(", ")}]);`
|
|
2053
|
+
);
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
1866
2056
|
if (
|
|
1867
2057
|
runtimeRequirements.has(RuntimeGlobals.startup) ||
|
|
1868
2058
|
(runtimeRequirements.has(RuntimeGlobals.startupOnlyBefore) &&
|
|
@@ -2105,7 +2295,7 @@ class JavascriptModulesPlugin {
|
|
|
2105
2295
|
* @param {CompilationHooks} hooks hooks
|
|
2106
2296
|
* @param {boolean | undefined} allStrict allStrict
|
|
2107
2297
|
* @param {boolean} hasChunkModules hasChunkModules
|
|
2108
|
-
* @returns {
|
|
2298
|
+
* @returns {RenamedInlinedModules | false} renamed inlined modules
|
|
2109
2299
|
*/
|
|
2110
2300
|
_getRenamedInlineModule(
|
|
2111
2301
|
compilation,
|
|
@@ -2131,18 +2321,22 @@ class JavascriptModulesPlugin {
|
|
|
2131
2321
|
|
|
2132
2322
|
/** @type {Map<Module, Source>} */
|
|
2133
2323
|
const renamedInlinedModules = new Map();
|
|
2324
|
+
/** @type {Map<Module, Map<string, string>>} */
|
|
2325
|
+
const renamedDeclarations = new Map();
|
|
2134
2326
|
const { runtimeTemplate } = renderContext;
|
|
2135
2327
|
|
|
2136
|
-
/** @typedef {{ source: Source, module: Module,
|
|
2328
|
+
/** @typedef {{ source: Source, module: Module, shorthandIdentifierStarts: Set<number>, variables: Set<Variable>, through: Set<Reference>, usedInNonInlined: Set<Variable>, moduleScope: Scope }} Info */
|
|
2137
2329
|
/** @type {Map<Module, Info>} */
|
|
2138
2330
|
const inlinedModulesToInfo = new Map();
|
|
2139
2331
|
/** @type {Set<string>} */
|
|
2140
2332
|
const nonInlinedModuleThroughIdentifiers = new Set();
|
|
2141
2333
|
/** @type {Map<Module, Source>} */
|
|
2142
2334
|
const inlinedModuleSources = new Map();
|
|
2335
|
+
const { codeGenerationResults, chunk } = renderContext;
|
|
2143
2336
|
|
|
2144
2337
|
for (const m of allModules) {
|
|
2145
2338
|
const isInlinedModule = inlinedModules && inlinedModules.has(m);
|
|
2339
|
+
|
|
2146
2340
|
const moduleSource = this.renderModule(
|
|
2147
2341
|
m,
|
|
2148
2342
|
{
|
|
@@ -2160,6 +2354,47 @@ class JavascriptModulesPlugin {
|
|
|
2160
2354
|
inlinedModuleSources.set(m, moduleSource);
|
|
2161
2355
|
continue;
|
|
2162
2356
|
}
|
|
2357
|
+
// The render hooks add free names, so only the source they left behind
|
|
2358
|
+
// can be analysed; keying on it lets a rebuild skip the parse.
|
|
2359
|
+
let freeNames = this._renderedFreeNamesCache.get(moduleSource);
|
|
2360
|
+
|
|
2361
|
+
if (freeNames === undefined) {
|
|
2362
|
+
const code = /** @type {string} */ (moduleSource.source());
|
|
2363
|
+
|
|
2364
|
+
const { experiments } = compilation.options;
|
|
2365
|
+
const { ast } = JavascriptParser._parse(
|
|
2366
|
+
code,
|
|
2367
|
+
{
|
|
2368
|
+
sourceType: "auto",
|
|
2369
|
+
ranges: true,
|
|
2370
|
+
// generated code contains phase imports when the experiments are on
|
|
2371
|
+
importPhases: Boolean(
|
|
2372
|
+
experiments.deferImport || experiments.sourceImport
|
|
2373
|
+
)
|
|
2374
|
+
},
|
|
2375
|
+
JavascriptParser._getModuleParseFunction(compilation, m)
|
|
2376
|
+
);
|
|
2377
|
+
|
|
2378
|
+
const analysis = analyzeScope(ast);
|
|
2379
|
+
|
|
2380
|
+
freeNames = new Set();
|
|
2381
|
+
for (const ref of analysis.unresolvedReferences) {
|
|
2382
|
+
freeNames.add(ref.identifier.name);
|
|
2383
|
+
}
|
|
2384
|
+
this._renderedFreeNamesCache.set(moduleSource, freeNames);
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2387
|
+
for (const name of freeNames) {
|
|
2388
|
+
nonInlinedModuleThroughIdentifiers.add(name);
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
/**
|
|
2393
|
+
* @param {Module} module the inlined entry
|
|
2394
|
+
* @param {Source} moduleSource its rendered source
|
|
2395
|
+
* @returns {Info} scope information for renaming
|
|
2396
|
+
*/
|
|
2397
|
+
const getModuleInfo = (module, moduleSource) => {
|
|
2163
2398
|
const code = /** @type {string} */ (moduleSource.source());
|
|
2164
2399
|
|
|
2165
2400
|
const { experiments } = compilation.options;
|
|
@@ -2173,35 +2408,71 @@ class JavascriptModulesPlugin {
|
|
|
2173
2408
|
experiments.deferImport || experiments.sourceImport
|
|
2174
2409
|
)
|
|
2175
2410
|
},
|
|
2176
|
-
JavascriptParser._getModuleParseFunction(compilation,
|
|
2411
|
+
JavascriptParser._getModuleParseFunction(compilation, module)
|
|
2177
2412
|
);
|
|
2178
2413
|
|
|
2179
2414
|
const analysis = analyzeScope(ast);
|
|
2180
2415
|
|
|
2181
|
-
|
|
2182
|
-
|
|
2416
|
+
const moduleScope = analysis.moduleScope;
|
|
2417
|
+
return {
|
|
2418
|
+
source: moduleSource,
|
|
2419
|
+
shorthandIdentifierStarts: analysis.shorthandIdentifierStarts,
|
|
2420
|
+
module,
|
|
2421
|
+
variables: new Set(moduleScope.variables),
|
|
2422
|
+
through: new Set(analysis.unresolvedReferences),
|
|
2423
|
+
usedInNonInlined: new Set(),
|
|
2424
|
+
moduleScope
|
|
2425
|
+
};
|
|
2426
|
+
};
|
|
2427
|
+
|
|
2428
|
+
/**
|
|
2429
|
+
* @param {Info} info scope information for the entry
|
|
2430
|
+
* @param {Set<string>} usedNames names unavailable to its declarations
|
|
2431
|
+
* @returns {void}
|
|
2432
|
+
*/
|
|
2433
|
+
const renameModule = (info, usedNames) => {
|
|
2434
|
+
const source = new ReplaceSource(info.source);
|
|
2435
|
+
/** @type {Map<string, string>} */
|
|
2436
|
+
const renamed = new Map();
|
|
2437
|
+
for (const variable of info.variables) {
|
|
2438
|
+
renameInlinedModuleVariable(
|
|
2439
|
+
source,
|
|
2440
|
+
info.shorthandIdentifierStarts,
|
|
2441
|
+
variable,
|
|
2442
|
+
info.module.identifier(),
|
|
2443
|
+
info.module.readableIdentifier(runtimeTemplate.requestShortener),
|
|
2444
|
+
usedNames,
|
|
2445
|
+
renamed
|
|
2446
|
+
);
|
|
2183
2447
|
}
|
|
2184
|
-
|
|
2448
|
+
renamedInlinedModules.set(info.module, source);
|
|
2449
|
+
if (renamed.size > 0) renamedDeclarations.set(info.module, renamed);
|
|
2450
|
+
};
|
|
2185
2451
|
|
|
2186
|
-
// Codegen reports
|
|
2187
|
-
//
|
|
2188
|
-
// entries need not be parsed at all.
|
|
2452
|
+
// Codegen reports declarations and free names; only entries whose names
|
|
2453
|
+
// collide need parsing to locate their declarations and references.
|
|
2189
2454
|
fastPath: {
|
|
2190
|
-
const { codeGenerationResults, chunk } = renderContext;
|
|
2191
2455
|
/** @type {Set<string>} */
|
|
2192
2456
|
const usedNames = new Set(nonInlinedModuleThroughIdentifiers);
|
|
2193
2457
|
for (const name of RESERVED_NAMES) usedNames.add(name);
|
|
2194
|
-
/** @type {Set<string
|
|
2195
|
-
const
|
|
2196
|
-
|
|
2458
|
+
/** @type {Map<Module, Set<string>>} */
|
|
2459
|
+
const declarationsByModule = new Map();
|
|
2460
|
+
let canRenameSelectively = isMultipleEntries;
|
|
2461
|
+
for (const [m, moduleSource] of inlinedModuleSources) {
|
|
2197
2462
|
if (!codeGenerationResults.has(m, chunk.runtime)) break fastPath;
|
|
2198
2463
|
const result = codeGenerationResults.get(m, chunk.runtime);
|
|
2199
2464
|
const data = result.data;
|
|
2200
2465
|
if (!data) break fastPath;
|
|
2201
2466
|
const declarations = data.get("topLevelDeclarations");
|
|
2202
2467
|
if (!declarations) break fastPath;
|
|
2203
|
-
|
|
2468
|
+
declarationsByModule.set(m, declarations);
|
|
2204
2469
|
if (!isMultipleEntries) continue;
|
|
2470
|
+
// Mixing cached names with fresh scope analysis requires unchanged
|
|
2471
|
+
// sources and the same parser that produced the cached names.
|
|
2472
|
+
canRenameSelectively =
|
|
2473
|
+
canRenameSelectively &&
|
|
2474
|
+
result.sources.get(JAVASCRIPT_TYPE) === moduleSource &&
|
|
2475
|
+
!JavascriptParser._getModuleParseFunction(compilation, m);
|
|
2205
2476
|
// Entries share the startup scope: an entry's free names and runtime
|
|
2206
2477
|
// globals must not be shadowed by another entry's declarations.
|
|
2207
2478
|
const freeNames = data.get("freeNames");
|
|
@@ -2214,49 +2485,26 @@ class JavascriptModulesPlugin {
|
|
|
2214
2485
|
}
|
|
2215
2486
|
}
|
|
2216
2487
|
}
|
|
2217
|
-
for (const declarations of
|
|
2218
|
-
|
|
2219
|
-
|
|
2488
|
+
for (const [m, declarations] of declarationsByModule) {
|
|
2489
|
+
const moduleSource = /** @type {Source} */ (
|
|
2490
|
+
inlinedModuleSources.get(m)
|
|
2491
|
+
);
|
|
2492
|
+
if (someInIterable(declarations, (name) => usedNames.has(name))) {
|
|
2493
|
+
if (!canRenameSelectively) break fastPath;
|
|
2494
|
+
renameModule(getModuleInfo(m, moduleSource), usedNames);
|
|
2495
|
+
} else {
|
|
2496
|
+
for (const name of declarations) usedNames.add(name);
|
|
2497
|
+
renamedInlinedModules.set(m, moduleSource);
|
|
2220
2498
|
}
|
|
2221
|
-
// earlier entries' declarations join the used set so later entries
|
|
2222
|
-
// are checked against them
|
|
2223
|
-
for (const name of declarations) usedNames.add(name);
|
|
2224
|
-
}
|
|
2225
|
-
for (const [m, moduleSource] of inlinedModuleSources) {
|
|
2226
|
-
renamedInlinedModules.set(m, moduleSource);
|
|
2227
2499
|
}
|
|
2228
|
-
return
|
|
2500
|
+
return {
|
|
2501
|
+
sources: renamedInlinedModules,
|
|
2502
|
+
renamedDeclarations
|
|
2503
|
+
};
|
|
2229
2504
|
}
|
|
2230
2505
|
|
|
2231
2506
|
for (const [m, moduleSource] of inlinedModuleSources) {
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
const { experiments } = compilation.options;
|
|
2235
|
-
const { ast } = JavascriptParser._parse(
|
|
2236
|
-
code,
|
|
2237
|
-
{
|
|
2238
|
-
sourceType: "auto",
|
|
2239
|
-
ranges: true,
|
|
2240
|
-
// generated code contains phase imports when the experiments are on
|
|
2241
|
-
importPhases: Boolean(
|
|
2242
|
-
experiments.deferImport || experiments.sourceImport
|
|
2243
|
-
)
|
|
2244
|
-
},
|
|
2245
|
-
JavascriptParser._getModuleParseFunction(compilation, m)
|
|
2246
|
-
);
|
|
2247
|
-
|
|
2248
|
-
const analysis = analyzeScope(ast);
|
|
2249
|
-
|
|
2250
|
-
const moduleScope = analysis.moduleScope;
|
|
2251
|
-
inlinedModulesToInfo.set(m, {
|
|
2252
|
-
source: moduleSource,
|
|
2253
|
-
ast,
|
|
2254
|
-
module: m,
|
|
2255
|
-
variables: new Set(moduleScope.variables),
|
|
2256
|
-
through: new Set(analysis.unresolvedReferences),
|
|
2257
|
-
usedInNonInlined: new Set(),
|
|
2258
|
-
moduleScope
|
|
2259
|
-
});
|
|
2507
|
+
inlinedModulesToInfo.set(m, getModuleInfo(m, moduleSource));
|
|
2260
2508
|
}
|
|
2261
2509
|
|
|
2262
2510
|
for (const [, { variables, usedInNonInlined }] of inlinedModulesToInfo) {
|
|
@@ -2280,56 +2528,37 @@ class JavascriptModulesPlugin {
|
|
|
2280
2528
|
for (const { through } of inlinedModulesToInfo.values()) {
|
|
2281
2529
|
for (const ref of through) allUsedNames.add(ref.identifier.name);
|
|
2282
2530
|
}
|
|
2283
|
-
for (const
|
|
2284
|
-
|
|
2285
|
-
const source = new ReplaceSource(_source);
|
|
2286
|
-
for (const variable of moduleInfo.variables) {
|
|
2287
|
-
renameInlinedModuleVariable(
|
|
2288
|
-
source,
|
|
2289
|
-
ast,
|
|
2290
|
-
variable,
|
|
2291
|
-
moduleInfo.module.identifier(),
|
|
2292
|
-
m.readableIdentifier(runtimeTemplate.requestShortener),
|
|
2293
|
-
allUsedNames
|
|
2294
|
-
);
|
|
2295
|
-
}
|
|
2296
|
-
renamedInlinedModules.set(m, source);
|
|
2531
|
+
for (const moduleInfo of inlinedModulesToInfo.values()) {
|
|
2532
|
+
renameModule(moduleInfo, allUsedNames);
|
|
2297
2533
|
}
|
|
2298
|
-
return
|
|
2534
|
+
return {
|
|
2535
|
+
sources: renamedInlinedModules,
|
|
2536
|
+
renamedDeclarations
|
|
2537
|
+
};
|
|
2299
2538
|
}
|
|
2300
2539
|
|
|
2301
2540
|
for (const [m, moduleInfo] of inlinedModulesToInfo) {
|
|
2302
|
-
const {
|
|
2303
|
-
const source = new ReplaceSource(_source);
|
|
2541
|
+
const { usedInNonInlined } = moduleInfo;
|
|
2304
2542
|
if (usedInNonInlined.size === 0) {
|
|
2305
|
-
renamedInlinedModules.set(m, source);
|
|
2543
|
+
renamedInlinedModules.set(m, new ReplaceSource(moduleInfo.source));
|
|
2306
2544
|
continue;
|
|
2307
2545
|
}
|
|
2308
2546
|
|
|
2309
|
-
const info = /** @type {Info} */ (inlinedModulesToInfo.get(m));
|
|
2310
2547
|
const allUsedNames = new Set(
|
|
2311
|
-
Array.from(
|
|
2548
|
+
Array.from(moduleInfo.through, (v) => v.identifier.name)
|
|
2312
2549
|
);
|
|
2313
2550
|
|
|
2314
2551
|
for (const variable of usedInNonInlined) {
|
|
2315
2552
|
allUsedNames.add(variable.name);
|
|
2316
2553
|
}
|
|
2317
2554
|
|
|
2318
|
-
|
|
2319
|
-
renameInlinedModuleVariable(
|
|
2320
|
-
source,
|
|
2321
|
-
ast,
|
|
2322
|
-
variable,
|
|
2323
|
-
info.module.identifier(),
|
|
2324
|
-
m.readableIdentifier(runtimeTemplate.requestShortener),
|
|
2325
|
-
allUsedNames
|
|
2326
|
-
);
|
|
2327
|
-
}
|
|
2328
|
-
|
|
2329
|
-
renamedInlinedModules.set(m, source);
|
|
2555
|
+
renameModule(moduleInfo, allUsedNames);
|
|
2330
2556
|
}
|
|
2331
2557
|
|
|
2332
|
-
return
|
|
2558
|
+
return {
|
|
2559
|
+
sources: renamedInlinedModules,
|
|
2560
|
+
renamedDeclarations
|
|
2561
|
+
};
|
|
2333
2562
|
}
|
|
2334
2563
|
}
|
|
2335
2564
|
|