@depup/webpack 5.111.1-depup.2 → 5.112.0-depup.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -8
- package/changes.json +8 -16
- 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 +55 -40
- package/schemas/WebpackOptions.check.js +2 -1
- package/schemas/WebpackOptions.d.json.ts +2 -0
- package/schemas/WebpackOptions.json +294 -74
- package/schemas/plugins/BannerPlugin.check.js +2 -1
- package/schemas/plugins/BannerPlugin.json +29 -2
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -0
- package/schemas/plugins/HtmlParserOptions.check.js +2 -1
- package/schemas/plugins/IgnorePlugin.check.js +1 -0
- package/schemas/plugins/IgnorePlugin.d.json.ts +2 -0
- package/schemas/plugins/IgnorePlugin.json +1 -1
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.check.js +1 -0
- package/schemas/plugins/ManifestPlugin.json +3 -3
- package/schemas/plugins/ProgressPlugin.check.js +2 -1
- package/schemas/plugins/ProgressPlugin.json +2 -7
- package/schemas/plugins/SSRManifestPlugin.check.js +7 -0
- package/schemas/plugins/SSRManifestPlugin.json +20 -0
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +2 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +44 -12
- package/schemas/plugins/WatchIgnorePlugin.check.js +2 -1
- package/schemas/plugins/WatchIgnorePlugin.json +12 -3
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -0
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -0
- package/schemas/plugins/container/ContainerPlugin.check.js +2 -1
- package/schemas/plugins/container/ContainerPlugin.json +8 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +2 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +40 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +1 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -0
- package/schemas/plugins/css/CssParserOptions.check.js +1 -0
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllPlugin.check.js +1 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.js +2 -1
- package/schemas/plugins/dll/DllReferencePlugin.json +3 -18
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceChunkIdsPlugin.check.js +1 -0
- package/schemas/plugins/ids/OccurrenceModuleIdsPlugin.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginGenerator.check.js +1 -0
- package/schemas/plugins/json/JsonModulesPluginParser.check.js +1 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -0
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MergeDuplicateChunksPlugin.check.js +1 -0
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -0
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -0
- package/schemas/plugins/schemes/VirtualUrlPlugin.check.js +1 -0
- package/schemas/plugins/sharing/ConsumeSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ConsumeSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/ProvideSharedPlugin.check.js +2 -1
- package/schemas/plugins/sharing/ProvideSharedPlugin.json +32 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +2 -1
- package/schemas/plugins/sharing/SharePlugin.json +32 -0
- package/types.d.ts +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
|
@@ -11,26 +11,19 @@ const {
|
|
|
11
11
|
ConcatSource,
|
|
12
12
|
ReplaceSource
|
|
13
13
|
} = require("webpack-sources");
|
|
14
|
-
const ConcatenationScope = require("../ConcatenationScope");
|
|
15
|
-
const Dependency = require("../Dependency");
|
|
16
|
-
const { UsageState } = require("../ExportsInfo");
|
|
17
|
-
const ExternalModule = require("../ExternalModule");
|
|
18
|
-
const Module = require("../Module");
|
|
19
|
-
const {
|
|
20
|
-
JAVASCRIPT_TYPE,
|
|
21
|
-
JAVASCRIPT_TYPES
|
|
22
|
-
} = require("../ModuleSourceTypeConstants");
|
|
23
|
-
const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants");
|
|
24
|
-
const NormalModule = require("../NormalModule");
|
|
25
|
-
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
26
|
-
const Template = require("../Template");
|
|
27
14
|
const { DEFAULTS } = require("../config/defaults");
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
15
|
+
const { ImportPhaseUtils } = require("../dependencies/core/ImportPhase");
|
|
16
|
+
const Dependency = require("../graph/Dependency");
|
|
17
|
+
const { UsageState } = require("../graph/ExportsInfo");
|
|
18
|
+
const isDependencyKind = require("../graph/isDependencyKind");
|
|
32
19
|
const JavascriptParser = require("../javascript/JavascriptParser");
|
|
33
20
|
const analyzeScope = require("../javascript/ScopeAnalyzer");
|
|
21
|
+
const Module = require("../module/Module");
|
|
22
|
+
const {
|
|
23
|
+
JAVASCRIPT_TYPE,
|
|
24
|
+
JAVASCRIPT_TYPES
|
|
25
|
+
} = require("../module/ModuleSourceTypeConstants");
|
|
26
|
+
const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../module/ModuleTypeConstants");
|
|
34
27
|
const {
|
|
35
28
|
getDeferredCycleModuleIds,
|
|
36
29
|
getDeferredCycleModules,
|
|
@@ -38,6 +31,8 @@ const {
|
|
|
38
31
|
getMakeDeferredNamespaceModeFromExportsType,
|
|
39
32
|
getOptimizedDeferredModule
|
|
40
33
|
} = require("../runtime/MakeDeferredNamespaceObjectRuntime");
|
|
34
|
+
const RuntimeGlobals = require("../runtime/RuntimeGlobals");
|
|
35
|
+
const Template = require("../template/Template");
|
|
41
36
|
const { equals } = require("../util/ArrayHelpers");
|
|
42
37
|
const LazySet = require("../util/LazySet");
|
|
43
38
|
const { getBuildDiagnostics } = require("../util/buildDiagnostics");
|
|
@@ -50,7 +45,6 @@ const {
|
|
|
50
45
|
addScopeSymbols,
|
|
51
46
|
findNewName,
|
|
52
47
|
getAllReferences,
|
|
53
|
-
getPathInAst,
|
|
54
48
|
getUsedNamesInScopeInfo,
|
|
55
49
|
isCommonJsConcatenationEnabled
|
|
56
50
|
} = require("../util/concatenate");
|
|
@@ -67,7 +61,8 @@ const {
|
|
|
67
61
|
runtimeConditionToString,
|
|
68
62
|
subtractRuntimeCondition
|
|
69
63
|
} = require("../util/runtime");
|
|
70
|
-
const
|
|
64
|
+
const ConcatenationScope = require("./ConcatenationScope");
|
|
65
|
+
const { isInlinedUsedName } = require("./InlineExports");
|
|
71
66
|
|
|
72
67
|
/** @import { Source } from "webpack-sources" */
|
|
73
68
|
/**
|
|
@@ -75,13 +70,13 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
75
70
|
* WebpackOptionsNormalizedWithDefaults as WebpackOptions
|
|
76
71
|
* } from "../config/defaults"
|
|
77
72
|
*/
|
|
78
|
-
/** @import ChunkGraph from "../ChunkGraph" */
|
|
79
|
-
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
73
|
+
/** @import ChunkGraph from "../graph/ChunkGraph" */
|
|
74
|
+
/** @import CodeGenerationResults from "../module/CodeGenerationResults" */
|
|
80
75
|
/** @import Compilation, { FileSystemDependencies } from "../Compilation" */
|
|
81
|
-
/** @import { UpdateHashContext } from "../Dependency" */
|
|
82
|
-
/** @import
|
|
83
|
-
/** @import DependencyTemplates from "../DependencyTemplates" */
|
|
84
|
-
/** @import { ExportInfo } from "../ExportsInfo" */
|
|
76
|
+
/** @import { UpdateHashContext } from "../graph/Dependency" */
|
|
77
|
+
/** @import ESMImportDependency from "../dependencies/esm/ESMImportDependency" */
|
|
78
|
+
/** @import DependencyTemplates from "../template/DependencyTemplates" */
|
|
79
|
+
/** @import { ExportInfo } from "../graph/ExportsInfo" */
|
|
85
80
|
/**
|
|
86
81
|
* @import {
|
|
87
82
|
* BuildCallback,
|
|
@@ -96,18 +91,19 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
96
91
|
* NameForCondition,
|
|
97
92
|
* ReadOnlyRuntimeRequirements,
|
|
98
93
|
* RuntimeRequirements,
|
|
99
|
-
* SourceTypes
|
|
100
|
-
*
|
|
94
|
+
* SourceTypes,
|
|
95
|
+
* ModuleKinds
|
|
96
|
+
* } from "../module/Module"
|
|
101
97
|
*/
|
|
102
|
-
/** @import ModuleGraph from "../ModuleGraph" */
|
|
98
|
+
/** @import ModuleGraph from "../graph/ModuleGraph" */
|
|
103
99
|
/**
|
|
104
100
|
* @import ModuleGraphConnection, {
|
|
105
101
|
* ConnectionState
|
|
106
|
-
* } from "../ModuleGraphConnection"
|
|
102
|
+
* } from "../graph/ModuleGraphConnection"
|
|
107
103
|
*/
|
|
108
|
-
/** @import RequestShortener from "../RequestShortener" */
|
|
109
|
-
/** @import { ResolverWithOptions } from "../ResolverFactory" */
|
|
110
|
-
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
104
|
+
/** @import RequestShortener from "../util/RequestShortener" */
|
|
105
|
+
/** @import { ResolverWithOptions } from "../resolve/ResolverFactory" */
|
|
106
|
+
/** @import RuntimeTemplate from "../template/RuntimeTemplate" */
|
|
111
107
|
/**
|
|
112
108
|
* @import {
|
|
113
109
|
* JavascriptModuleBuildInfo,
|
|
@@ -130,12 +126,12 @@ const { InlinedUsedName } = require("./InlineExports");
|
|
|
130
126
|
*/
|
|
131
127
|
/** @import Hash, { HashFunction } from "../util/Hash" */
|
|
132
128
|
/** @import { UsedNames, UsedNamesInScopeInfo } from "../util/concatenate" */
|
|
133
|
-
/** @import { InputFileSystem } from "../
|
|
129
|
+
/** @import { InputFileSystem } from "../fs/fs" */
|
|
134
130
|
/** @import { AssociatedObjectForCache } from "../util/identifier" */
|
|
135
131
|
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
136
132
|
/**
|
|
137
133
|
* @template T
|
|
138
|
-
* @typedef {import("../InitFragment")<T>} InitFragment
|
|
134
|
+
* @typedef {import("../template/InitFragment")<T>} InitFragment
|
|
139
135
|
*/
|
|
140
136
|
|
|
141
137
|
/**
|
|
@@ -206,7 +202,7 @@ const findIdentifiers = (source) => {
|
|
|
206
202
|
* @property {boolean} eager a wrapped body reached by an eager import edge, so its accessor is called at its own slot in evaluation order
|
|
207
203
|
* @property {Module} module
|
|
208
204
|
* @property {number} index
|
|
209
|
-
* @property {
|
|
205
|
+
* @property {Set<number> | undefined} shorthandIdentifierStarts where each shorthand property's identifier starts
|
|
210
206
|
* @property {Source | undefined} internalSource
|
|
211
207
|
* @property {ReplaceSource | undefined} source
|
|
212
208
|
* @property {InitFragment<ChunkRenderContext>[]=} chunkInitFragments
|
|
@@ -303,6 +299,7 @@ const compareNumbers = (a, b) => {
|
|
|
303
299
|
|
|
304
300
|
const bySourceOrder = createComparator("sourceOrder", compareNumbers);
|
|
305
301
|
const byRangeStart = createComparator("rangeStart", compareNumbers);
|
|
302
|
+
const byDependencyIndex = createComparator("dependencyIndex", compareNumbers);
|
|
306
303
|
|
|
307
304
|
/**
|
|
308
305
|
* @param {Iterable<string>} iterable iterable object
|
|
@@ -357,7 +354,7 @@ const subtractNonDeferAccess = (a, b) => a && !b;
|
|
|
357
354
|
* @returns {boolean} true, when the module renders wrapped
|
|
358
355
|
*/
|
|
359
356
|
const needWrapped = (module) =>
|
|
360
|
-
module
|
|
357
|
+
module.is("normal") &&
|
|
361
358
|
module.type.startsWith("javascript/") &&
|
|
362
359
|
module.buildMeta !== undefined &&
|
|
363
360
|
module.buildMeta.exportsType !== "namespace";
|
|
@@ -367,11 +364,14 @@ const needWrapped = (module) =>
|
|
|
367
364
|
* @param {ConcatenationEntry} entry a member of the concatenation
|
|
368
365
|
* @returns {boolean} true, when it may be wrapped
|
|
369
366
|
*/
|
|
370
|
-
const entryCanBeWrapped = (entry) =>
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
(entry.module
|
|
374
|
-
entry.module.
|
|
367
|
+
const entryCanBeWrapped = (entry) => {
|
|
368
|
+
// TODO in the next major release: call it directly. A module built against an older webpack
|
|
369
|
+
// extends a base class without it, so fall back to the check this replaced.
|
|
370
|
+
if (typeof entry.module.canBeWrappedInConcatenation !== "function") {
|
|
371
|
+
return !entry.module.type.startsWith("css/");
|
|
372
|
+
}
|
|
373
|
+
return entry.module.canBeWrappedInConcatenation();
|
|
374
|
+
};
|
|
375
375
|
|
|
376
376
|
/** @typedef {Set<ConcatenatedModuleInfo>} NeededNamespaceObjects */
|
|
377
377
|
|
|
@@ -756,7 +756,7 @@ const getFinalBinding = (
|
|
|
756
756
|
exportName
|
|
757
757
|
};
|
|
758
758
|
}
|
|
759
|
-
if (usedName
|
|
759
|
+
if (isInlinedUsedName(usedName)) {
|
|
760
760
|
return {
|
|
761
761
|
info,
|
|
762
762
|
// Render the inlined literal only, not its property suffix: that
|
|
@@ -798,7 +798,7 @@ const getFinalBinding = (
|
|
|
798
798
|
const usedName = moduleGraph
|
|
799
799
|
.getExportsInfo(target.module)
|
|
800
800
|
.getUsedName([...target.export, ...exportName.slice(1)], runtime);
|
|
801
|
-
if (usedName
|
|
801
|
+
if (isInlinedUsedName(usedName)) {
|
|
802
802
|
return {
|
|
803
803
|
info,
|
|
804
804
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -821,9 +821,16 @@ const getFinalBinding = (
|
|
|
821
821
|
` * ${info.type} ${m.readableIdentifier(requestShortener)}`
|
|
822
822
|
).join("\n")}`
|
|
823
823
|
);
|
|
824
|
-
}
|
|
825
|
-
if (reexport) {
|
|
824
|
+
} else if (reexport) {
|
|
826
825
|
const refInfo = moduleToInfoMap.get(reexport.module);
|
|
826
|
+
// a CommonJS `exports.x = require()` re-export keeps raw exports semantics
|
|
827
|
+
const moduleExportsAccess =
|
|
828
|
+
reexport.connection.dependency !== null &&
|
|
829
|
+
isDependencyKind(
|
|
830
|
+
reexport.connection.dependency,
|
|
831
|
+
"commonjs-export-require"
|
|
832
|
+
);
|
|
833
|
+
|
|
827
834
|
return getFinalBinding(
|
|
828
835
|
moduleGraph,
|
|
829
836
|
/** @type {ModuleInfo} */ (refInfo),
|
|
@@ -840,7 +847,7 @@ const getFinalBinding = (
|
|
|
840
847
|
/** @type {BuildMeta} */
|
|
841
848
|
(info.module.buildMeta).strictHarmonyModule,
|
|
842
849
|
asiSafe,
|
|
843
|
-
|
|
850
|
+
moduleExportsAccess,
|
|
844
851
|
alreadyVisited
|
|
845
852
|
);
|
|
846
853
|
}
|
|
@@ -858,7 +865,7 @@ const getFinalBinding = (
|
|
|
858
865
|
}
|
|
859
866
|
// an inlined export never reaches the exports object, so render the
|
|
860
867
|
// literal instead of reading the namespace
|
|
861
|
-
if (usedName
|
|
868
|
+
if (isInlinedUsedName(usedName)) {
|
|
862
869
|
return {
|
|
863
870
|
info,
|
|
864
871
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -895,7 +902,7 @@ const getFinalBinding = (
|
|
|
895
902
|
exportName
|
|
896
903
|
};
|
|
897
904
|
}
|
|
898
|
-
if (used
|
|
905
|
+
if (isInlinedUsedName(used)) {
|
|
899
906
|
return {
|
|
900
907
|
info,
|
|
901
908
|
// Literal only; suffix is appended once via `ids` (see directExport branch).
|
|
@@ -1130,6 +1137,22 @@ class ConcatenatedModule extends Module {
|
|
|
1130
1137
|
return [...this._modules];
|
|
1131
1138
|
}
|
|
1132
1139
|
|
|
1140
|
+
/**
|
|
1141
|
+
* Returns the module this one was built around: itself, or the root of a scope-hoisted concatenation.
|
|
1142
|
+
* @returns {Module} the root module
|
|
1143
|
+
*/
|
|
1144
|
+
getRootModule() {
|
|
1145
|
+
return this.rootModule;
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* Returns the modules this one was built from: itself, or every module merged by scope hoisting.
|
|
1150
|
+
* @returns {Iterable<Module>} the source modules (do not mutate)
|
|
1151
|
+
*/
|
|
1152
|
+
getSourceModules() {
|
|
1153
|
+
return this._modules;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1133
1156
|
/**
|
|
1134
1157
|
* Returns the unique identifier used to reference this module.
|
|
1135
1158
|
* @returns {string} a unique identifier of the module
|
|
@@ -1368,8 +1391,13 @@ class ConcatenatedModule extends Module {
|
|
|
1368
1391
|
connections.push(c);
|
|
1369
1392
|
}
|
|
1370
1393
|
}
|
|
1394
|
+
/** @type {Map<Dependency, number>} */
|
|
1395
|
+
const dependencyIndices = new Map();
|
|
1396
|
+
for (let i = 0; i < module.dependencies.length; i++) {
|
|
1397
|
+
dependencyIndices.set(module.dependencies[i], i);
|
|
1398
|
+
}
|
|
1371
1399
|
/**
|
|
1372
|
-
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, defer?: boolean }[]}
|
|
1400
|
+
* @type {{ connection: ModuleGraphConnection, sourceOrder: number, rangeStart: number | undefined, dependencyIndex: number, defer?: boolean }[]}
|
|
1373
1401
|
*/
|
|
1374
1402
|
const references = connections
|
|
1375
1403
|
.filter((connection) => {
|
|
@@ -1396,8 +1424,9 @@ class ConcatenatedModule extends Module {
|
|
|
1396
1424
|
})
|
|
1397
1425
|
.map((connection) => {
|
|
1398
1426
|
const dep =
|
|
1399
|
-
/** @type {
|
|
1427
|
+
/** @type {ESMImportDependency} */
|
|
1400
1428
|
(connection.dependency);
|
|
1429
|
+
const dependencyIndex = dependencyIndices.get(dep);
|
|
1401
1430
|
return {
|
|
1402
1431
|
connection,
|
|
1403
1432
|
// A require() edge carries no sourceOrder, and Infinity sorts it
|
|
@@ -1406,6 +1435,8 @@ class ConcatenatedModule extends Module {
|
|
|
1406
1435
|
sourceOrder:
|
|
1407
1436
|
typeof dep.sourceOrder === "number" ? dep.sourceOrder : Infinity,
|
|
1408
1437
|
rangeStart: dep.range && dep.range[0],
|
|
1438
|
+
dependencyIndex:
|
|
1439
|
+
dependencyIndex === undefined ? Infinity : dependencyIndex,
|
|
1409
1440
|
defer: ImportPhaseUtils.isDefer(dep.phase)
|
|
1410
1441
|
};
|
|
1411
1442
|
});
|
|
@@ -1424,8 +1455,11 @@ class ConcatenatedModule extends Module {
|
|
|
1424
1455
|
* If there is no reexport, we have the same source.
|
|
1425
1456
|
* If there is reexport, but module has side effects, this will lead to reexport module only.
|
|
1426
1457
|
* If there is side-effects-free reexport, we can get simple deterministic result with range start comparison.
|
|
1458
|
+
* Re-exports of one statement share sourceOrder and have no range, so the dependency index breaks the tie.
|
|
1427
1459
|
*/
|
|
1428
|
-
references.sort(
|
|
1460
|
+
references.sort(
|
|
1461
|
+
concatComparators(bySourceOrder, byRangeStart, byDependencyIndex)
|
|
1462
|
+
);
|
|
1429
1463
|
/** @type {Map<Module, { connection: ModuleGraphConnection, runtimeCondition: RuntimeSpec | true, nonDeferAccess: NonDeferAccess }>} */
|
|
1430
1464
|
const referencesMap = new Map();
|
|
1431
1465
|
/** @type {Module[] | undefined} */
|
|
@@ -1439,12 +1473,11 @@ class ConcatenatedModule extends Module {
|
|
|
1439
1473
|
const module = connection.module;
|
|
1440
1474
|
if (targets === undefined) targets = [module];
|
|
1441
1475
|
else if (!targets.includes(module)) targets.push(module);
|
|
1476
|
+
const dependency = connection.dependency;
|
|
1442
1477
|
if (
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
CommonJsExportRequireDependency
|
|
1447
|
-
].some((Dep) => connection.dependency instanceof Dep)
|
|
1478
|
+
dependency !== null &&
|
|
1479
|
+
(isDependencyKind(dependency, "commonjs-require") ||
|
|
1480
|
+
isDependencyKind(dependency, "commonjs-export-require"))
|
|
1448
1481
|
) {
|
|
1449
1482
|
wrappedModules.add(module);
|
|
1450
1483
|
}
|
|
@@ -1708,7 +1741,7 @@ class ConcatenatedModule extends Module {
|
|
|
1708
1741
|
// | (concatenated [+wrapped] | external | reference)
|
|
1709
1742
|
// v
|
|
1710
1743
|
// [1] ANALYSE — inner codeGeneration() per module, into a ConcatenationScope
|
|
1711
|
-
// | plain -> ReplaceSource +
|
|
1744
|
+
// | plain -> ReplaceSource + scope analysis
|
|
1712
1745
|
// | wrapped -> ReplaceSource only, body kept verbatim
|
|
1713
1746
|
// | external -> nothing yet, rendered as a require() below
|
|
1714
1747
|
// [2] RESERVE — free globals of the analysed bodies enter allUsedNames, so
|
|
@@ -1718,7 +1751,7 @@ class ConcatenatedModule extends Module {
|
|
|
1718
1751
|
// | the generated names allocated: wrapper accessor, namespace object,
|
|
1719
1752
|
// | interop helpers, external import variable
|
|
1720
1753
|
// [4] LINK — __WEBPACK_MODULE_REFERENCE__ tokens replaced by their final
|
|
1721
|
-
// | binding; through the
|
|
1754
|
+
// | binding; through the scopes for analysed bodies, textually for wrapped
|
|
1722
1755
|
// [5] COLLECT EXPORTS — root exports split into used / unused / inlined
|
|
1723
1756
|
// v
|
|
1724
1757
|
// ---- from here on everything is appended to the result ConcatSource ----
|
|
@@ -1797,8 +1830,8 @@ class ConcatenatedModule extends Module {
|
|
|
1797
1830
|
/** @type {Set<ConcatenatedModuleInfo | ExternalModuleInfo>} */
|
|
1798
1831
|
const neededEscapeNamespaceObjects = new Set();
|
|
1799
1832
|
|
|
1800
|
-
// #region [1] ANALYSE: run each inner module's own codeGeneration
|
|
1801
|
-
// non-wrapped
|
|
1833
|
+
// #region [1] ANALYSE: run each inner module's own codeGeneration and
|
|
1834
|
+
// scope-analyse the body; a non-wrapped one keeps its scopes for [3]
|
|
1802
1835
|
for (const info of moduleToInfoMap.values()) {
|
|
1803
1836
|
this._analyseModule(
|
|
1804
1837
|
moduleToInfoMap,
|
|
@@ -1862,7 +1895,7 @@ class ConcatenatedModule extends Module {
|
|
|
1862
1895
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
1863
1896
|
if (exportInfo.provided === false) continue;
|
|
1864
1897
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
1865
|
-
if (!usedName || usedName
|
|
1898
|
+
if (!usedName || isInlinedUsedName(usedName)) continue;
|
|
1866
1899
|
if (usedName[usedName.length - 1] !== exportInfo.name) {
|
|
1867
1900
|
mangled = true;
|
|
1868
1901
|
break;
|
|
@@ -1895,8 +1928,18 @@ class ConcatenatedModule extends Module {
|
|
|
1895
1928
|
)) {
|
|
1896
1929
|
allUsedNames.add(name);
|
|
1897
1930
|
}
|
|
1898
|
-
//
|
|
1899
|
-
//
|
|
1931
|
+
// only its free globals reach freeNames; the reference tokens among
|
|
1932
|
+
// them are resolved textually below and patched the same way in [4]
|
|
1933
|
+
for (const reference of /** @type {Reference[]} */ (
|
|
1934
|
+
info.unresolvedReferences
|
|
1935
|
+
)) {
|
|
1936
|
+
const name = reference.identifier.name;
|
|
1937
|
+
if (!ConcatenationScope.isModuleReference(name)) {
|
|
1938
|
+
freeNames.add(name);
|
|
1939
|
+
}
|
|
1940
|
+
}
|
|
1941
|
+
// A wrapped body's references are found textually, as [4] patches
|
|
1942
|
+
// them. They still have to be resolved here: binding one is what
|
|
1900
1943
|
// flags the interop objects it needs, and [3] allocates their names.
|
|
1901
1944
|
/** @type {Set<string>} */
|
|
1902
1945
|
const visitedReferences = new Set();
|
|
@@ -2132,26 +2175,14 @@ class ConcatenatedModule extends Module {
|
|
|
2132
2175
|
for (const identifier of variable.identifiers) {
|
|
2133
2176
|
allIdentifiers.add(identifier);
|
|
2134
2177
|
}
|
|
2178
|
+
const shorthandStarts =
|
|
2179
|
+
/** @type {NonNullable<ConcatenatedModuleInfo["shorthandIdentifierStarts"]>} */
|
|
2180
|
+
(info.shorthandIdentifierStarts);
|
|
2135
2181
|
for (const identifier of allIdentifiers) {
|
|
2136
2182
|
const r = /** @type {Range} */ (identifier.range);
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
identifier
|
|
2141
|
-
);
|
|
2142
|
-
if (path && path.length > 1) {
|
|
2143
|
-
const maybeProperty =
|
|
2144
|
-
path[1].type === "AssignmentPattern" &&
|
|
2145
|
-
path[1].left === path[0]
|
|
2146
|
-
? path[2]
|
|
2147
|
-
: path[1];
|
|
2148
|
-
if (
|
|
2149
|
-
maybeProperty.type === "Property" &&
|
|
2150
|
-
maybeProperty.shorthand
|
|
2151
|
-
) {
|
|
2152
|
-
source.insert(r[1], `: ${newName}`);
|
|
2153
|
-
continue;
|
|
2154
|
-
}
|
|
2183
|
+
if (shorthandStarts.has(r[0])) {
|
|
2184
|
+
source.insert(r[1], `: ${newName}`);
|
|
2185
|
+
continue;
|
|
2155
2186
|
}
|
|
2156
2187
|
source.replace(r[0], r[1] - 1, newName);
|
|
2157
2188
|
}
|
|
@@ -2358,8 +2389,8 @@ class ConcatenatedModule extends Module {
|
|
|
2358
2389
|
}
|
|
2359
2390
|
}
|
|
2360
2391
|
} else {
|
|
2361
|
-
//
|
|
2362
|
-
//
|
|
2392
|
+
// A wrapped body's reference tokens are found textually rather than
|
|
2393
|
+
// in its AST. [2] scanned the same source, so this reuses its result.
|
|
2363
2394
|
/** @type {Map<string, string>} */
|
|
2364
2395
|
const finalNames = new Map();
|
|
2365
2396
|
const source = /** @type {ReplaceSource} */ (info.source);
|
|
@@ -2442,7 +2473,7 @@ class ConcatenatedModule extends Module {
|
|
|
2442
2473
|
unusedExports.add(name);
|
|
2443
2474
|
continue;
|
|
2444
2475
|
}
|
|
2445
|
-
if (used
|
|
2476
|
+
if (isInlinedUsedName(used)) {
|
|
2446
2477
|
inlinedExports.add(name);
|
|
2447
2478
|
continue;
|
|
2448
2479
|
}
|
|
@@ -2565,7 +2596,7 @@ class ConcatenatedModule extends Module {
|
|
|
2565
2596
|
if (exportInfo.provided === false) continue;
|
|
2566
2597
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2567
2598
|
if (!usedName) continue;
|
|
2568
|
-
if (usedName
|
|
2599
|
+
if (isInlinedUsedName(usedName)) {
|
|
2569
2600
|
nsObj.push(
|
|
2570
2601
|
`\n ${propertyName(
|
|
2571
2602
|
exportInfo.name
|
|
@@ -2646,7 +2677,7 @@ ${defineGetters}`
|
|
|
2646
2677
|
for (const exportInfo of exportsInfo.orderedExports) {
|
|
2647
2678
|
if (exportInfo.provided === false) continue;
|
|
2648
2679
|
const usedName = exportInfo.getUsedName(undefined, runtime);
|
|
2649
|
-
if (usedName && !(usedName
|
|
2680
|
+
if (usedName && !isInlinedUsedName(usedName)) {
|
|
2650
2681
|
const finalName = getFinalName(
|
|
2651
2682
|
moduleGraph,
|
|
2652
2683
|
info,
|
|
@@ -2716,14 +2747,26 @@ ${defineGetters}`
|
|
|
2716
2747
|
for (const info of wrappedInfos) {
|
|
2717
2748
|
if (info.type === "concatenated") {
|
|
2718
2749
|
runtimeRequirements.add(RuntimeGlobals.concatenationWrap);
|
|
2750
|
+
const bodyRuntimeRequirements =
|
|
2751
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
2752
|
+
(info.runtimeRequirements);
|
|
2719
2753
|
result.add(
|
|
2720
2754
|
`\n// MODULE: ${info.module.readableIdentifier(
|
|
2721
2755
|
requestShortener
|
|
2722
2756
|
)}\nvar ${info.namespaceFnName} = /*#__PURE__*/${
|
|
2723
2757
|
RuntimeGlobals.concatenationWrap
|
|
2724
|
-
}(
|
|
2725
|
-
info.module
|
|
2726
|
-
|
|
2758
|
+
}(${runtimeTemplate.moduleFactoryFnHeader({
|
|
2759
|
+
module: info.module,
|
|
2760
|
+
// the trailing `module.exports` assignment below reads it
|
|
2761
|
+
needModule:
|
|
2762
|
+
Boolean(info.namespaceExportSymbol) ||
|
|
2763
|
+
bodyRuntimeRequirements.has(RuntimeGlobals.module),
|
|
2764
|
+
needExports: bodyRuntimeRequirements.has(RuntimeGlobals.exports),
|
|
2765
|
+
needRequire: false,
|
|
2766
|
+
needThisAsExports: bodyRuntimeRequirements.has(
|
|
2767
|
+
RuntimeGlobals.thisAsExports
|
|
2768
|
+
)
|
|
2769
|
+
})}\n`
|
|
2727
2770
|
);
|
|
2728
2771
|
result.add(/** @type {ReplaceSource} */ (info.source));
|
|
2729
2772
|
// A generated body binds its value to a local rather than writing
|
|
@@ -2810,7 +2853,7 @@ ${defineGetters}`
|
|
|
2810
2853
|
result.add(
|
|
2811
2854
|
`\n// DEFERRED EXTERNAL MODULE: ${info.module.readableIdentifier(
|
|
2812
2855
|
requestShortener
|
|
2813
|
-
)}\nvar ${info.deferredName} = ${loader};`
|
|
2856
|
+
)}\nvar ${info.deferredName} = ${runtimeTemplate.sideEffectsAnnotation()}${loader};`
|
|
2814
2857
|
);
|
|
2815
2858
|
if (info.deferredNamespaceObjectUsed) {
|
|
2816
2859
|
runtimeRequirements.add(RuntimeGlobals.makeDeferredNamespaceObject);
|
|
@@ -2924,7 +2967,10 @@ ${defineGetters}`
|
|
|
2924
2967
|
// External module bindings may be wrapped in
|
|
2925
2968
|
// runtime-condition `if` blocks but referenced outside,
|
|
2926
2969
|
// so they must remain function-scoped (`var`).
|
|
2927
|
-
const required =
|
|
2970
|
+
const required = `${runtimeTemplate.moduleSideEffectsAnnotation(
|
|
2971
|
+
info.module,
|
|
2972
|
+
moduleGraph
|
|
2973
|
+
)}__webpack_require__(${moduleId})`;
|
|
2928
2974
|
|
|
2929
2975
|
// The wrapping happens per reference, so only the helper has
|
|
2930
2976
|
// to be declared here.
|
|
@@ -3058,123 +3104,92 @@ ${defineGetters}`
|
|
|
3058
3104
|
codeGenerationResults,
|
|
3059
3105
|
usedNames
|
|
3060
3106
|
) {
|
|
3061
|
-
if (info.type
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
usedNames
|
|
3071
|
-
);
|
|
3072
|
-
info.concatenationScope = concatenationScope;
|
|
3073
|
-
const codeGenResult = m.codeGeneration({
|
|
3074
|
-
dependencyTemplates,
|
|
3075
|
-
runtimeTemplate,
|
|
3076
|
-
moduleGraph,
|
|
3077
|
-
chunkGraph,
|
|
3078
|
-
runtime,
|
|
3079
|
-
runtimes,
|
|
3080
|
-
concatenationScope,
|
|
3081
|
-
codeGenerationResults,
|
|
3082
|
-
sourceTypes: JAVASCRIPT_TYPES
|
|
3083
|
-
});
|
|
3084
|
-
const source =
|
|
3085
|
-
/** @type {Source} */
|
|
3086
|
-
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3087
|
-
const data = codeGenResult.data;
|
|
3088
|
-
info.runtimeRequirements =
|
|
3089
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3090
|
-
(codeGenResult.runtimeRequirements);
|
|
3091
|
-
info.internalSource = source;
|
|
3092
|
-
info.source = new ReplaceSource(source);
|
|
3093
|
-
info.chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3094
|
-
} else {
|
|
3095
|
-
try {
|
|
3096
|
-
// Create a concatenation scope to track and capture information
|
|
3097
|
-
const concatenationScope = new ConcatenationScope(
|
|
3098
|
-
modulesMap,
|
|
3099
|
-
info,
|
|
3100
|
-
usedNames
|
|
3101
|
-
);
|
|
3107
|
+
if (info.type !== "concatenated") return;
|
|
3108
|
+
const m = info.module;
|
|
3109
|
+
try {
|
|
3110
|
+
// Create a concatenation scope to track and capture information
|
|
3111
|
+
const concatenationScope = new ConcatenationScope(
|
|
3112
|
+
modulesMap,
|
|
3113
|
+
info,
|
|
3114
|
+
usedNames
|
|
3115
|
+
);
|
|
3102
3116
|
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
}
|
|
3156
|
-
throw err;
|
|
3157
|
-
}
|
|
3158
|
-
const analysis = analyzeScope(ast);
|
|
3159
|
-
const resultSource = new ReplaceSource(source);
|
|
3160
|
-
info.runtimeRequirements =
|
|
3161
|
-
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3162
|
-
(codeGenResult.runtimeRequirements);
|
|
3163
|
-
info.ast = ast;
|
|
3164
|
-
info.internalSource = source;
|
|
3165
|
-
info.source = resultSource;
|
|
3166
|
-
info.chunkInitFragments = chunkInitFragments;
|
|
3167
|
-
info.globalScope = analysis.globalScope;
|
|
3168
|
-
info.moduleScope = analysis.moduleScope;
|
|
3169
|
-
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3170
|
-
info.concatenationScope = concatenationScope;
|
|
3171
|
-
} catch (err) {
|
|
3172
|
-
/** @type {Error} */
|
|
3173
|
-
(err).message +=
|
|
3174
|
-
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3175
|
-
throw err;
|
|
3117
|
+
// Not cached: Compilation memoizes the outer codeGeneration per
|
|
3118
|
+
// (module, runtime), so inner generation never recomputes usefully.
|
|
3119
|
+
const codeGenResult = m.codeGeneration({
|
|
3120
|
+
dependencyTemplates,
|
|
3121
|
+
runtimeTemplate,
|
|
3122
|
+
moduleGraph,
|
|
3123
|
+
chunkGraph,
|
|
3124
|
+
runtime,
|
|
3125
|
+
runtimes,
|
|
3126
|
+
concatenationScope,
|
|
3127
|
+
codeGenerationResults,
|
|
3128
|
+
sourceTypes: JAVASCRIPT_TYPES
|
|
3129
|
+
});
|
|
3130
|
+
const source =
|
|
3131
|
+
/** @type {Source} */
|
|
3132
|
+
(codeGenResult.sources.get(JAVASCRIPT_TYPE));
|
|
3133
|
+
const data = codeGenResult.data;
|
|
3134
|
+
const chunkInitFragments = data && data.get("chunkInitFragments");
|
|
3135
|
+
const code = source.source().toString();
|
|
3136
|
+
|
|
3137
|
+
/** @type {Program} */
|
|
3138
|
+
let ast;
|
|
3139
|
+
|
|
3140
|
+
try {
|
|
3141
|
+
const { experiments } = this.compilation.options;
|
|
3142
|
+
|
|
3143
|
+
({ ast } = JavascriptParser._parse(
|
|
3144
|
+
code,
|
|
3145
|
+
{
|
|
3146
|
+
// a wrapped CommonJS body may `return` at its top level
|
|
3147
|
+
sourceType: info.wrapped ? "auto" : "module",
|
|
3148
|
+
ranges: true,
|
|
3149
|
+
// generated code contains phase imports when the experiments are on
|
|
3150
|
+
importPhases: Boolean(
|
|
3151
|
+
experiments.deferImport || experiments.sourceImport
|
|
3152
|
+
)
|
|
3153
|
+
},
|
|
3154
|
+
JavascriptParser._getModuleParseFunction(this.compilation, m)
|
|
3155
|
+
));
|
|
3156
|
+
} catch (_err) {
|
|
3157
|
+
const err =
|
|
3158
|
+
/** @type {Error & { loc?: { line: number, column: number } }} */
|
|
3159
|
+
(_err);
|
|
3160
|
+
if (
|
|
3161
|
+
err.loc &&
|
|
3162
|
+
typeof err.loc === "object" &&
|
|
3163
|
+
typeof err.loc.line === "number"
|
|
3164
|
+
) {
|
|
3165
|
+
const lineNumber = err.loc.line;
|
|
3166
|
+
const lines = code.split("\n");
|
|
3167
|
+
err.message += `\n| ${lines
|
|
3168
|
+
.slice(Math.max(0, lineNumber - 3), lineNumber + 2)
|
|
3169
|
+
.join("\n| ")}`;
|
|
3176
3170
|
}
|
|
3171
|
+
throw err;
|
|
3177
3172
|
}
|
|
3173
|
+
const analysis = analyzeScope(ast);
|
|
3174
|
+
info.runtimeRequirements =
|
|
3175
|
+
/** @type {ReadOnlyRuntimeRequirements} */
|
|
3176
|
+
(codeGenResult.runtimeRequirements);
|
|
3177
|
+
info.internalSource = source;
|
|
3178
|
+
info.source = new ReplaceSource(source);
|
|
3179
|
+
info.chunkInitFragments = chunkInitFragments;
|
|
3180
|
+
info.unresolvedReferences = analysis.unresolvedReferences;
|
|
3181
|
+
info.concatenationScope = concatenationScope;
|
|
3182
|
+
// the wrapper isolates the body's declarations, so [3] renames nothing in
|
|
3183
|
+
// it and its scopes are not kept; [2] claims its identifiers textually
|
|
3184
|
+
if (info.wrapped) return;
|
|
3185
|
+
info.shorthandIdentifierStarts = analysis.shorthandIdentifierStarts;
|
|
3186
|
+
info.globalScope = analysis.globalScope;
|
|
3187
|
+
info.moduleScope = analysis.moduleScope;
|
|
3188
|
+
} catch (err) {
|
|
3189
|
+
/** @type {Error} */
|
|
3190
|
+
(err).message +=
|
|
3191
|
+
`\nwhile analyzing module ${m.identifier()} for concatenation`;
|
|
3192
|
+
throw err;
|
|
3178
3193
|
}
|
|
3179
3194
|
}
|
|
3180
3195
|
|
|
@@ -3204,7 +3219,7 @@ ${defineGetters}`
|
|
|
3204
3219
|
module: info.module,
|
|
3205
3220
|
index,
|
|
3206
3221
|
namespaceFnName: undefined,
|
|
3207
|
-
|
|
3222
|
+
shorthandIdentifierStarts: undefined,
|
|
3208
3223
|
chunkInitFragments: undefined,
|
|
3209
3224
|
internalSource: undefined,
|
|
3210
3225
|
runtimeRequirements: undefined,
|
|
@@ -3321,13 +3336,10 @@ ${defineGetters}`
|
|
|
3321
3336
|
* @returns {ConcatenatedModule} ConcatenatedModule
|
|
3322
3337
|
*/
|
|
3323
3338
|
static deserialize(context) {
|
|
3324
|
-
const obj = new ConcatenatedModule(
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
runtime: undefined,
|
|
3329
|
-
compilation: /** @type {EXPECTED_ANY} */ (undefined)
|
|
3330
|
-
});
|
|
3339
|
+
const obj = new ConcatenatedModule(
|
|
3340
|
+
// every field is restored by `deserialize` and `updateCacheModule`
|
|
3341
|
+
/** @type {ConstructorParameters<typeof ConcatenatedModule>[0]} */ ({})
|
|
3342
|
+
);
|
|
3331
3343
|
obj.deserialize(context);
|
|
3332
3344
|
return obj;
|
|
3333
3345
|
}
|
|
@@ -3345,6 +3357,9 @@ ConcatenatedModule.getCompilationHooks = createHooksRegistry(
|
|
|
3345
3357
|
|
|
3346
3358
|
makeSerializable(ConcatenatedModule, "webpack/lib/optimize/ConcatenatedModule");
|
|
3347
3359
|
|
|
3360
|
+
/** @type {Set<keyof ModuleKinds>} */
|
|
3361
|
+
ConcatenatedModule.KINDS = new Set([...Module.KINDS, "concatenated"]);
|
|
3362
|
+
|
|
3348
3363
|
/** @type {WeakMap<Compilation, WeakMap<Module, ConcatenatedModule>>} */
|
|
3349
3364
|
const absorbedBy = new WeakMap();
|
|
3350
3365
|
|
|
@@ -3361,7 +3376,7 @@ ConcatenatedModule.getChunkGraphModule = (compilation, module) => {
|
|
|
3361
3376
|
if (map === undefined) {
|
|
3362
3377
|
map = new WeakMap();
|
|
3363
3378
|
for (const candidate of compilation.modules) {
|
|
3364
|
-
if (candidate
|
|
3379
|
+
if (candidate.is("concatenated")) {
|
|
3365
3380
|
for (const inner of candidate._modules) {
|
|
3366
3381
|
map.set(inner, candidate);
|
|
3367
3382
|
}
|